package io.swagger.converter; import io.swagger.models.Format; import io.swagger.models.ParamType; import io.swagger.models.parameters.Parameter; import io.swagger.models.parameters.QueryParameter; import io.swagger.models.properties.Property; import io.swagger.parser.SwaggerCompatConverter; import org.testng.annotations.Test; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertNotNull; import static org.testng.Assert.assertNull; import static org.testng.Assert.assertTrue; public class QueryParameterConverterTest { SwaggerCompatConverter converter = new SwaggerCompatConverter(); @Test public void convertStringQueryParameter() throws Exception { io.swagger.models.apideclaration.Parameter param = new io.swagger.models.apideclaration.Parameter(); param.setParamType(ParamType.QUERY); param.setDescription("a string query param"); param.setRequired(false); param.setAllowMultiple(false); param.setType("string"); Parameter converted = converter.convertParameter(param); assertTrue(converted.getClass().equals(QueryParameter.class)); QueryParameter qp = (QueryParameter) converted; assertEquals(param.getType(), qp.getType()); assertEquals(param.getDescription(), qp.getDescription()); assertEquals((Boolean) param.getRequired(), (Boolean) qp.getRequired()); assertNull(qp.getCollectionFormat()); } @Test public void convertDateQueryParameter() throws Exception { io.swagger.models.apideclaration.Parameter param = new io.swagger.models.apideclaration.Parameter(); param.setParamType(ParamType.QUERY); param.setDescription("a string query param"); param.setRequired(false); param.setAllowMultiple(false); param.setType("string"); param.setFormat(Format.DATE_TIME); Parameter converted = converter.convertParameter(param); assertTrue(converted.getClass().equals(QueryParameter.class)); QueryParameter qp = (QueryParameter) converted; assertEquals(param.getType(), qp.getType()); assertEquals(qp.getFormat(), "date-time"); assertEquals(param.getDescription(), qp.getDescription()); assertEquals((Boolean) param.getRequired(), (Boolean) qp.getRequired()); assertNull(qp.getCollectionFormat()); } @Test public void convertIntegerQueryParameter() throws Exception { io.swagger.models.apideclaration.Parameter param = new io.swagger.models.apideclaration.Parameter(); param.setParamType(ParamType.QUERY); param.setDescription("a string query param"); param.setRequired(false); param.setAllowMultiple(false); param.setType("integer"); param.setFormat(Format.INT32); Parameter converted = converter.convertParameter(param); assertTrue(converted.getClass().equals(QueryParameter.class)); QueryParameter qp = (QueryParameter) converted; assertEquals(param.getType(), qp.getType()); assertEquals(qp.getFormat(), "int32"); assertEquals(param.getDescription(), qp.getDescription()); assertEquals((Boolean) param.getRequired(), (Boolean) qp.getRequired()); assertNull(qp.getCollectionFormat()); } @Test public void convertStringArrayQueryParameter() throws Exception { io.swagger.models.apideclaration.Parameter param = new io.swagger.models.apideclaration.Parameter(); param.setParamType(ParamType.QUERY); param.setDescription("a string array query param"); param.setRequired(false); param.setAllowMultiple(true); param.setType("string"); Parameter converted = converter.convertParameter(param); assertTrue(converted.getClass().equals(QueryParameter.class)); QueryParameter qp = (QueryParameter) converted; assertEquals(qp.getType(), "array"); assertEquals(param.getDescription(), qp.getDescription()); assertNotNull(qp.getItems()); Property items = qp.getItems(); assertEquals(items.getType(), "string"); assertEquals((Boolean) param.getRequired(), (Boolean) qp.getRequired()); assertEquals(qp.getCollectionFormat(), "csv"); } }