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");
}
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"));
}
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());
}
}
}
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);
}
}
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\"}");
}
Aggregations