File tree Expand file tree Collapse file tree
main/java/com/retailsvc/http/spec/schema
test/java/com/retailsvc/http/spec/schema Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ package com .retailsvc .http .spec .schema ;
2+
3+ public enum TypeName {
4+ STRING ,
5+ NUMBER ,
6+ INTEGER ,
7+ BOOLEAN ,
8+ OBJECT ,
9+ ARRAY ,
10+ NULL ;
11+
12+ public static TypeName fromJsonSchema (String name ) {
13+ return switch (name ) {
14+ case "string" -> STRING ;
15+ case "number" -> NUMBER ;
16+ case "integer" -> INTEGER ;
17+ case "boolean" -> BOOLEAN ;
18+ case "object" -> OBJECT ;
19+ case "array" -> ARRAY ;
20+ case "null" -> NULL ;
21+ default -> throw new IllegalArgumentException ("unknown JSON Schema type: " + name );
22+ };
23+ }
24+ }
Original file line number Diff line number Diff line change 1+ package com .retailsvc .http .spec .schema ;
2+
3+ import static org .assertj .core .api .Assertions .assertThat ;
4+ import static org .junit .jupiter .api .Assertions .assertThrows ;
5+
6+ import org .junit .jupiter .api .Test ;
7+
8+ class TypeNameTest {
9+ @ Test
10+ void parsesAllSevenJsonSchemaTypes () {
11+ assertThat (TypeName .fromJsonSchema ("string" )).isEqualTo (TypeName .STRING );
12+ assertThat (TypeName .fromJsonSchema ("number" )).isEqualTo (TypeName .NUMBER );
13+ assertThat (TypeName .fromJsonSchema ("integer" )).isEqualTo (TypeName .INTEGER );
14+ assertThat (TypeName .fromJsonSchema ("boolean" )).isEqualTo (TypeName .BOOLEAN );
15+ assertThat (TypeName .fromJsonSchema ("object" )).isEqualTo (TypeName .OBJECT );
16+ assertThat (TypeName .fromJsonSchema ("array" )).isEqualTo (TypeName .ARRAY );
17+ assertThat (TypeName .fromJsonSchema ("null" )).isEqualTo (TypeName .NULL );
18+ }
19+
20+ @ Test
21+ void unknownTypeNameThrows () {
22+ assertThrows (IllegalArgumentException .class , () -> TypeName .fromJsonSchema ("widget" ));
23+ }
24+ }
You can’t perform that action at this time.
0 commit comments