Ticket2992Test.java
package io.swagger.v3.core.resolving;
import io.swagger.v3.core.converter.AnnotatedType;
import io.swagger.v3.core.converter.ModelConverterContextImpl;
import io.swagger.v3.core.jackson.ModelResolver;
import io.swagger.v3.core.matchers.SerializationMatchers;
import io.swagger.v3.core.resolving.resources.TestObject2992;
import io.swagger.v3.core.util.PrimitiveType;
import io.swagger.v3.oas.models.media.Schema;
import org.testng.annotations.Test;
import java.util.Map;
public class Ticket2992Test extends SwaggerTestBase {
@Test
public void testLocalTime() throws Exception {
final ModelResolver modelResolver = new ModelResolver(mapper());
ModelConverterContextImpl context = new ModelConverterContextImpl(modelResolver);
Schema model = context
.resolve(new AnnotatedType(TestObject2992.class));
SerializationMatchers.assertEqualsToYaml(context.getDefinedModels(), "TestObject2992:\n" +
" type: object\n" +
" properties:\n" +
" name:\n" +
" type: string\n" +
" a:\n" +
" type: string\n" +
" format: time-local\n" +
" b:\n" +
" type: string\n" +
" format: time-local\n" +
" c:\n" +
" type: string\n" +
" format: time-local\n" +
" d:\n" +
" type: string\n" +
" format: date-time\n" +
" e:\n" +
" type: string\n" +
" format: date-time\n" +
" f:\n" +
" type: string\n" +
" format: date-time");
// Save current state so other tests are not affected by the static customClasses map
final Map<String, PrimitiveType> custom = PrimitiveType.customClasses();
final PrimitiveType previous = custom.get("java.time.LocalTime");
PrimitiveType.enablePartialTime();
try {
context = new ModelConverterContextImpl(modelResolver);
context
.resolve(new AnnotatedType(TestObject2992.class));
SerializationMatchers.assertEqualsToYaml(context.getDefinedModels(), "TestObject2992:\n" +
" type: object\n" +
" properties:\n" +
" name:\n" +
" type: string\n" +
" a:\n" +
" type: string\n" +
" format: partial-time\n" +
" b:\n" +
" type: string\n" +
" format: partial-time\n" +
" c:\n" +
" type: string\n" +
" format: partial-time\n" +
" d:\n" +
" type: string\n" +
" format: date-time\n" +
" e:\n" +
" type: string\n" +
" format: date-time\n" +
" f:\n" +
" type: string\n" +
" format: date-time");
} finally {
// Restore previous state so subsequent tests are not affected
if (previous == null) custom.remove("java.time.LocalTime");
else custom.put("java.time.LocalTime", previous);
}
}
}