Search in sources :

Example 1 with XML

use of io.swagger.v3.oas.models.media.XML in project swagger-core by swagger-api.

the class XmlModelTest method deserializeModel.

@Test(description = "it should deserialize a model")
public void deserializeModel() throws IOException {
    final String yaml = "---\n" + "type: \"object\"\n" + "properties:\n" + "  id:\n" + "    type: \"string\"\n" + "    xml:\n" + "      attribute: true\n" + "  name:\n" + "    type: \"string\"\n" + "    xml:\n" + "      name: \"renamed\"\n" + "  list:\n" + "    type: \"array\"\n" + "    items:\n" + "      type: \"string\"\n" + "  wrappedList:\n" + "    type: \"array\"\n" + "    xml:\n" + "      name: \"wrappedListItems\"\n" + "      wrapped: true\n" + "    items:\n" + "      type: \"string\"\n" + "  forcedElement:\n" + "    type: \"array\"\n" + "    items:\n" + "      type: \"string\"\n" + "xml:\n" + "  name: \"rootName\"";
    final Schema model = Yaml.mapper().readValue(yaml, Schema.class);
    final Schema wrappedList = (Schema) model.getProperties().get("wrappedList");
    assertNotNull(wrappedList);
    assertNotNull(wrappedList.getXml());
    assertEquals(wrappedList.getXml().getName(), "wrappedListItems");
}
Also used : Schema(io.swagger.v3.oas.models.media.Schema) Test(org.testng.annotations.Test)

Example 2 with XML

use of io.swagger.v3.oas.models.media.XML in project swagger-core by swagger-api.

the class XMLInfoTest method testReadingXmlAccessorTypeNone.

@Test
public void testReadingXmlAccessorTypeNone() throws Exception {
    final ModelConverter mr = modelResolver();
    final Schema model = mr.resolve(new AnnotatedType(XmlDecoratedBeanXmlAccessorNone.class), new ModelConverterContextImpl(mr), null);
    final XML xml = model.getXml();
    assertNotNull(xml);
    assertEquals(xml.getName(), "xmlDecoratedBean");
    final Schema property = (Schema) model.getProperties().get("a");
    assertNotNull(property);
    assertNull(model.getProperties().get("b"));
    assertNotNull(model.getProperties().get("c"));
    assertNotNull(model.getProperties().get("d"));
    assertNotNull(model.getProperties().get("e"));
    assertNotNull(model.getProperties().get("f"));
}
Also used : AnnotatedType(io.swagger.v3.core.converter.AnnotatedType) XML(io.swagger.v3.oas.models.media.XML) ArraySchema(io.swagger.v3.oas.models.media.ArraySchema) Schema(io.swagger.v3.oas.models.media.Schema) ModelConverter(io.swagger.v3.core.converter.ModelConverter) ModelConverterContextImpl(io.swagger.v3.core.converter.ModelConverterContextImpl) Test(org.testng.annotations.Test)

Example 3 with XML

use of io.swagger.v3.oas.models.media.XML in project swagger-core by swagger-api.

the class JAXBAnnotationsHelper method applyElement.

/**
 * Puts definitions for XML wrapper.
 *
 * @param wrapper   XmlElementWrapper
 * @param property property instance to be updated
 */
private static void applyElement(XmlElementWrapper wrapper, Schema property) {
    if (wrapper != null) {
        final XML xml = getXml(property);
        xml.setWrapped(true);
        // No need to set the xml name if the name provided by xmlelementwrapper annotation is ##default or equal to the property name | https://github.com/swagger-api/swagger-core/pull/2050
        if (!JAXB_DEFAULT.equals(wrapper.name()) && !wrapper.name().isEmpty() && !wrapper.name().equals(property.getName())) {
            xml.setName(wrapper.name());
        }
    }
}
Also used : XML(io.swagger.v3.oas.models.media.XML)

Example 4 with XML

use of io.swagger.v3.oas.models.media.XML in project swagger-core by swagger-api.

the class JAXBAnnotationsHelper method applyAttribute.

/**
 * Puts definitions for XML attribute.
 *
 * @param attribute   XmlAttribute
 * @param property property instance to be updated
 */
private static void applyAttribute(XmlAttribute attribute, Schema property) {
    if (attribute != null) {
        final XML xml = getXml(property);
        xml.setAttribute(true);
        setName(attribute.namespace(), attribute.name(), property);
    }
}
Also used : XML(io.swagger.v3.oas.models.media.XML)

Example 5 with XML

use of io.swagger.v3.oas.models.media.XML in project swagger-core by swagger-api.

the class ModelSerializerTest method shouldNotCreateXmlObjectForRef.

@Test(description = "it should not create an xml object for $ref")
public void shouldNotCreateXmlObjectForRef() throws IOException {
    final Schema model = new Schema().$ref("Monster");
    model.setDescription("oops");
    model.setExternalDocs(new ExternalDocumentation().description("external docs").url("http://swagger.io"));
    assertEquals(Json.mapper().writeValueAsString(model), "{\"$ref\":\"#/components/schemas/Monster\"}");
}
Also used : ExternalDocumentation(io.swagger.v3.oas.models.ExternalDocumentation) DateSchema(io.swagger.v3.oas.models.media.DateSchema) ArraySchema(io.swagger.v3.oas.models.media.ArraySchema) DateTimeSchema(io.swagger.v3.oas.models.media.DateTimeSchema) Schema(io.swagger.v3.oas.models.media.Schema) IntegerSchema(io.swagger.v3.oas.models.media.IntegerSchema) StringSchema(io.swagger.v3.oas.models.media.StringSchema) Test(org.testng.annotations.Test)

Aggregations

Test (org.testng.annotations.Test)15 Schema (io.swagger.v3.oas.models.media.Schema)14 XML (io.swagger.v3.oas.models.media.XML)10 ArraySchema (io.swagger.v3.oas.models.media.ArraySchema)8 AnnotatedType (io.swagger.v3.core.converter.AnnotatedType)6 IntegerSchema (io.swagger.v3.oas.models.media.IntegerSchema)5 ModelConverter (io.swagger.v3.core.converter.ModelConverter)4 ModelConverterContextImpl (io.swagger.v3.core.converter.ModelConverterContextImpl)4 OpenAPI (io.swagger.v3.oas.models.OpenAPI)4 Components (io.swagger.v3.oas.models.Components)3 StringSchema (io.swagger.v3.oas.models.media.StringSchema)3 NamedType (com.fasterxml.jackson.databind.jsontype.NamedType)2 ComposedSchema (io.swagger.v3.oas.models.media.ComposedSchema)2 MapSchema (io.swagger.v3.oas.models.media.MapSchema)2 NumberSchema (io.swagger.v3.oas.models.media.NumberSchema)2 ObjectSchema (io.swagger.v3.oas.models.media.ObjectSchema)2 UUIDSchema (io.swagger.v3.oas.models.media.UUIDSchema)2 Map (java.util.Map)2 JsonIdentityInfo (com.fasterxml.jackson.annotation.JsonIdentityInfo)1 JsonIdentityReference (com.fasterxml.jackson.annotation.JsonIdentityReference)1