|
| 1 | +package com.retailsvc.http.spec.schema; |
| 2 | + |
| 3 | +import static org.assertj.core.api.Assertions.assertThat; |
| 4 | + |
| 5 | +import java.util.List; |
| 6 | +import java.util.Set; |
| 7 | +import org.junit.jupiter.api.Test; |
| 8 | + |
| 9 | +class PrimitiveSchemasTest { |
| 10 | + @Test |
| 11 | + void stringSchemaCarriesAllStringFields() { |
| 12 | + StringSchema s = |
| 13 | + new StringSchema(Set.of(TypeName.STRING), "^x.*$", 1, 64, "uuid", List.of("a", "b")); |
| 14 | + assertThat(s.pattern()).isEqualTo("^x.*$"); |
| 15 | + assertThat(s.minLength()).isEqualTo(1); |
| 16 | + assertThat(s.maxLength()).isEqualTo(64); |
| 17 | + assertThat(s.format()).isEqualTo("uuid"); |
| 18 | + assertThat(s.enumValues()).containsExactly("a", "b"); |
| 19 | + } |
| 20 | + |
| 21 | + @Test |
| 22 | + void numberSchemaCarriesAllNumericConstraints() { |
| 23 | + NumberSchema n = new NumberSchema(Set.of(TypeName.NUMBER), 0, 100, null, 100, 5, "double"); |
| 24 | + assertThat(n.minimum()).isEqualTo(0); |
| 25 | + assertThat(n.maximum()).isEqualTo(100); |
| 26 | + assertThat(n.exclusiveMaximum()).isEqualTo(100); |
| 27 | + assertThat(n.multipleOf()).isEqualTo(5); |
| 28 | + } |
| 29 | + |
| 30 | + @Test |
| 31 | + void integerSchemaUsesLongConstraints() { |
| 32 | + IntegerSchema i = |
| 33 | + new IntegerSchema(Set.of(TypeName.INTEGER), 1L, 2_000_000_000L, null, null, null, "int64"); |
| 34 | + assertThat(i.maximum()).isEqualTo(2_000_000_000L); |
| 35 | + assertThat(i.format()).isEqualTo("int64"); |
| 36 | + } |
| 37 | + |
| 38 | + @Test |
| 39 | + void nullSchemaTypesIsAlwaysNull() { |
| 40 | + assertThat(new NullSchema().types()).containsExactly(TypeName.NULL); |
| 41 | + } |
| 42 | + |
| 43 | + @Test |
| 44 | + void refSchemaTypesIsEmpty() { |
| 45 | + RefSchema r = new RefSchema("#/components/schemas/User"); |
| 46 | + assertThat(r.pointer()).isEqualTo("#/components/schemas/User"); |
| 47 | + assertThat(r.types()).isEmpty(); |
| 48 | + } |
| 49 | +} |
0 commit comments