public void TestNullable() { Assert.AreEqual("integer?", SwaggerSpec.GetDataTypeName(typeof(int?))); Assert.AreEqual("integer?", SwaggerSpec.GetDataTypeName(typeof(Nullable <int>))); Assert.AreEqual("MockEnum1?", SwaggerSpec.GetDataTypeName(typeof(Nullable <MockEnum1>))); Assert.AreEqual("MockStruct1?", SwaggerSpec.GetDataTypeName(typeof(Nullable <MockStruct1>))); }
private static void ApiSpec(SwaggerSpec swaggerSpec, string resourcePath, string apiPath, Action <ApiSpec> applyAssertions) { var apiSpec = swaggerSpec.Declarations[resourcePath].Apis .Single(api => api.Path == apiPath); applyAssertions(apiSpec); }
private object ConvertProperty(Type type) { if (SwaggerSpec.IsEnumerable(type)) { var typeArg = SwaggerSpec.GetEnumerableType(type); if (SwaggerSpec.IsBasicObject(typeArg)) { return(new ArrayProperty("type", SwaggerSpec.GetDataTypeName(typeArg))); } Add(typeArg); return(new ArrayProperty("$ref", typeArg.Name)); } if (type.IsEnum) { return(new Dictionary <string, object> { { "type", "string" }, { "enum", Enum.GetNames(type) } }); } if (!SwaggerSpec.IsBasicObject(type)) { Add(type); return(new Dictionary <string, object> { { "$ref", type.Name } }); } return(new Dictionary <string, object> { { "type", SwaggerSpec.GetDataTypeName(type) } }); }
private static void OperationSpec(SwaggerSpec swaggerSpec, string resourcePath, string apiPath, int index, string httpMethod, Action <OperationSpec> applyAssertions) { var apiSpec = swaggerSpec.Declarations[resourcePath].Apis .Single(api => api.Path == apiPath); OperationSpec(apiSpec, httpMethod, index, applyAssertions); }
public void TestContainers() { Assert.AreEqual("array[object]", SwaggerSpec.GetDataTypeName(typeof(List <object>))); Assert.AreEqual("array[MockClass1]", SwaggerSpec.GetDataTypeName(typeof(List <MockClass1>))); Assert.AreEqual("array[object]", SwaggerSpec.GetDataTypeName(typeof(IEnumerable))); Assert.AreEqual("array[MockClass1]", SwaggerSpec.GetDataTypeName(typeof(IEnumerable <MockClass1>))); Assert.AreEqual("array[object]", SwaggerSpec.GetDataTypeName(typeof(Collection <object>))); Assert.AreEqual("array[MockClass1]", SwaggerSpec.GetDataTypeName(typeof(Collection <MockClass1>))); }
/// <summary> /// Add a type to be displayed /// </summary> /// <param name="type">Type to add</param> public void Add(Type type) { if (SwaggerSpec.IsEnumerable(type)) { //Don't bother adding an Enumerable type, just add what it is of InnerAdd(SwaggerSpec.GetEnumerableType(type)); } else if (!SwaggerSpec.IsBasicObject(type)) { InnerAdd(type); } }
public SwaggerSpec SwaggerSpec() { lock (SyncRoot) { if (_swaggerSpec == null) { var swaggerGenerator = new SwaggerGenerator(); var apiExplorer = GlobalConfiguration.Configuration.Services.GetApiExplorer(); _swaggerSpec = swaggerGenerator.ApiExplorerToSwaggerSpec(apiExplorer); } } return(_swaggerSpec); }
public void TestNonGenericTypes() { Assert.AreEqual("boolean", SwaggerSpec.GetDataTypeName(typeof(bool))); Assert.AreEqual("byte", SwaggerSpec.GetDataTypeName(typeof(byte))); Assert.AreEqual("integer", SwaggerSpec.GetDataTypeName(typeof(int))); Assert.AreEqual("long", SwaggerSpec.GetDataTypeName(typeof(long))); Assert.AreEqual("float", SwaggerSpec.GetDataTypeName(typeof(float))); Assert.AreEqual("double", SwaggerSpec.GetDataTypeName(typeof(double))); Assert.AreEqual("Date", SwaggerSpec.GetDataTypeName(typeof(DateTime))); Assert.AreEqual("string", SwaggerSpec.GetDataTypeName(typeof(char))); Assert.AreEqual("string", SwaggerSpec.GetDataTypeName(typeof(string))); Assert.AreEqual("object", SwaggerSpec.GetDataTypeName(typeof(object))); Assert.AreEqual("MockEnum1", SwaggerSpec.GetDataTypeName(typeof(MockEnum1))); Assert.AreEqual("MockStruct1", SwaggerSpec.GetDataTypeName(typeof(MockStruct1))); Assert.AreEqual("MockClass1", SwaggerSpec.GetDataTypeName(typeof(MockClass1))); }
private static void ApiDeclaration(SwaggerSpec swaggerSpec, string resourcePath, Action <ApiDeclaration> applyAssertions) { var declaration = swaggerSpec.Declarations[resourcePath]; applyAssertions(declaration); }
public void TestGenericTypes() { Assert.AreEqual("MockClass2[MockClass1]", SwaggerSpec.GetDataTypeName(typeof(MockClass2 <MockClass1>))); Assert.AreEqual("MockClass2[MockStruct1, MockClass1]", SwaggerSpec.GetDataTypeName(typeof(MockClass2 <MockStruct1, MockClass1>))); Assert.AreEqual("MockClass2[MockClass2[MockStruct1], MockClass1]", SwaggerSpec.GetDataTypeName(typeof(MockClass2 <MockClass2 <MockStruct1>, MockClass1>))); }