public void DecorateClassTestEdgeCases() { var implDetails = new Dictionary <JsonSchema, SchemaImplementationDetails>(); var decorator = new ArraySchemaDecorator(); var internalClassProvider = new ObjectInternalClassProvider(); CodeTypeDeclaration declaration = null; var schema = new MockSchema(); schema.Name = "test"; schema.SchemaDetails = null; Assert.Throws( typeof(ArgumentNullException), () => decorator.DecorateClass(new CodeTypeDeclaration(), schema, implDetails, internalClassProvider)); schema.SchemaDetails = new JsonSchema(); schema.SchemaDetails.Type = JsonSchemaType.Float; Assert.DoesNotThrow( () => decorator.DecorateClass( declaration = new CodeTypeDeclaration(), schema, implDetails, internalClassProvider)); Assert.That(declaration.BaseTypes.Count, Is.EqualTo(0)); schema.SchemaDetails.Type = JsonSchemaType.Array; schema.SchemaDetails.Items = new List <JsonSchema>(); schema.SchemaDetails.Items.Add(new JsonSchema()); schema.SchemaDetails.Items.Add(new JsonSchema()); Assert.DoesNotThrow( () => decorator.DecorateClass( declaration = new CodeTypeDeclaration(), schema, implDetails, internalClassProvider)); Assert.That(declaration.BaseTypes.Count, Is.EqualTo(0)); }
public void DecorateClassGenerationTest() { var implDetails = new Dictionary <JsonSchema, SchemaImplementationDetails>(); var decorator = new ArraySchemaDecorator(); var internalClassProvider = new ObjectInternalClassProvider(); var decl = new CodeTypeDeclaration(); var schema = new MockSchema(); schema.Name = "test"; schema.SchemaDetails = new JsonSchema(); schema.SchemaDetails.Type = JsonSchemaType.Array; schema.SchemaDetails.Items = new List <JsonSchema>(); schema.SchemaDetails.Items.Clear(); schema.SchemaDetails.Items.Add( new JsonSchema { Description = "Test", Id = "TestSchema", Type = JsonSchemaType.Object }); implDetails.Add(schema.SchemaDetails, new SchemaImplementationDetails()); implDetails.Add(schema.SchemaDetails.Items[0], new SchemaImplementationDetails()); Assert.DoesNotThrow(() => decorator.DecorateClass(decl, schema, implDetails, internalClassProvider)); Assert.That(decl.BaseTypes.Count, Is.EqualTo(1)); Assert.That(decl.BaseTypes[0].BaseType, Is.EqualTo(typeof(List <>).FullName)); // Subtype will only be created later on by the NestedClassGenerator, // and therefore cannot be tested here }
public void DecorateClassTest() { var implDetails = new Dictionary <JsonSchema, SchemaImplementationDetails>(); var decorator = new ArraySchemaDecorator(); var declaration = new CodeTypeDeclaration(); var schema = new MockSchema { SchemaDetails = new JsonSchema() }; var internalClassProvider = new ObjectInternalClassProvider(); Assert.Throws( typeof(ArgumentNullException), () => decorator.DecorateClass(null, schema, implDetails, internalClassProvider)); Assert.Throws( typeof(ArgumentNullException), () => decorator.DecorateClass(declaration, null, implDetails, internalClassProvider)); Assert.Throws( typeof(ArgumentNullException), () => decorator.DecorateClass(declaration, schema, null, internalClassProvider)); Assert.Throws( typeof(ArgumentNullException), () => decorator.DecorateClass(declaration, schema, implDetails, null)); decorator.DecorateClass(declaration, schema, implDetails, internalClassProvider); }