public void GenerateAllPropertiesTest() { var implDetails = new Dictionary<JsonSchema, SchemaImplementationDetails>(); var schema = new MockSchema(); var internalClassProvider = new ObjectInternalClassProvider(); schema.SchemaDetails = new JsonSchema(); schema.SchemaDetails.Type = JsonSchemaType.Object; schema.SchemaDetails.Properties = new Dictionary<string, JsonSchema>(); implDetails.Add(schema.SchemaDetails, new SchemaImplementationDetails()); string name = "test"; foreach (var pair in StandardPropertyFieldDecoratorTest.NamesToType) { JsonSchema property = new JsonSchema(); property.Type = pair.Value; property.Id = pair.Key; property.Description = StandardPropertyFieldDecoratorTest.NamesToDescription[pair.Key]; schema.SchemaDetails.Properties.Add(pair.Key, property); implDetails.Add(property, new SchemaImplementationDetails()); } var decorator = new StandardPropertyDecorator(); IList<CodeMemberProperty> generatedProperties = decorator.GenerateAllProperties( name, schema.SchemaDetails, implDetails, internalClassProvider); Assert.NotNull(generatedProperties); Assert.AreEqual(StandardPropertyFieldDecoratorTest.NamesToType.Count, generatedProperties.Count); foreach (var field in generatedProperties) { Assert.That( StandardPropertyFieldDecoratorTest.NamesToType.ContainsKey(field.Name.ToLower()), "field name was not present in namesToType " + field.Name); } int item = 0; foreach (var pair in StandardPropertyFieldDecoratorTest.NamesToType) { var field = generatedProperties[item++]; Assert.AreEqual( pair.Key, field.Name.ToLower(), string.Format("Name different for expected at index {0}", item - 1)); Assert.AreEqual( SchemaDecoratorUtil.GetCodeType(new JsonSchema { Type = pair.Value }, null, internalClassProvider) .BaseType, field.Type.BaseType); } }
public void GenerateAllPropertiesTestEdgeCases() { var implDetails = new Dictionary<JsonSchema, SchemaImplementationDetails>(); var decorator = new StandardPropertyDecorator(); var internalClassProvider = new ObjectInternalClassProvider(); string name = "test"; Assert.Throws( typeof(ArgumentNullException), () => decorator.GenerateAllProperties(name, null, implDetails, internalClassProvider)); var schema = new MockSchema(); schema.Name = "test"; schema.SchemaDetails = null; Assert.Throws( typeof(ArgumentNullException), () => decorator.GenerateAllProperties(name, schema.SchemaDetails, implDetails, internalClassProvider)); schema.SchemaDetails = new JsonSchema(); schema.SchemaDetails.Properties = null; Assert.Throws( typeof(ArgumentNullException), () => decorator.GenerateAllProperties(null, schema.SchemaDetails, implDetails, internalClassProvider)); var expectedEmpty = decorator.GenerateAllProperties( name, schema.SchemaDetails, implDetails, internalClassProvider); Assert.IsNotNull(expectedEmpty); Assert.AreEqual(0, expectedEmpty.Count); }