1#![forbid(unsafe_code)]
2
3pub const COMMONMETA_SCHEMA_V1_0RC1: &str =
5 include_str!("../schemas/commonmeta_v1.0rc1.json");
6
7pub const COMMONMETA_SCHEMA_V1_0RC2: &str =
9 include_str!("../schemas/commonmeta_v1.0rc2.json");
10
11pub const COMMONMETA_FIXTURE_JOURNAL_ARTICLE: &str =
13 include_str!("../fixtures/commonmeta/journal_article.json");
14
15pub fn schema(version: &str) -> Option<&'static str> {
19 match version {
20 "1.0rc1" => Some(COMMONMETA_SCHEMA_V1_0RC1),
21 "1.0rc2" => Some(COMMONMETA_SCHEMA_V1_0RC2),
22 _ => None,
23 }
24}
25
26pub fn fixture(name: &str) -> Option<&'static str> {
30 match name {
31 "journal_article" => Some(COMMONMETA_FIXTURE_JOURNAL_ARTICLE),
32 _ => None,
33 }
34}
35
36#[cfg(test)]
37mod tests {
38 use super::{fixture, schema};
39
40 #[test]
41 fn known_version_is_available() {
42 assert!(schema("1.0rc1").is_some());
43 assert!(schema("1.0rc2").is_some());
44 }
45
46 #[test]
47 fn unknown_version_is_none() {
48 assert!(schema("nope").is_none());
49 }
50
51 #[test]
52 fn known_fixture_is_available() {
53 assert!(fixture("journal_article").is_some());
54 }
55
56 #[test]
57 fn unknown_fixture_is_none() {
58 assert!(fixture("nope").is_none());
59 }
60}