public void GenerateAllFieldsTest() { var implDetails = new Dictionary<JsonSchema, SchemaImplementationDetails>(); var schema = new MockSchema(); schema.SchemaDetails = new JsonSchema(); schema.SchemaDetails.Type = JsonSchemaType.Object; schema.SchemaDetails.Properties = new Dictionary<string, JsonSchema>(); implDetails.Add(schema.SchemaDetails, new SchemaImplementationDetails()); foreach (var pair in NamesToType) { JsonSchema property = new JsonSchema(); property.Type = pair.Value; property.Id = pair.Key; schema.SchemaDetails.Properties.Add(pair.Key, property); implDetails.Add(property, new SchemaImplementationDetails()); } var decorator = new StandardPropertyFieldDecorator(); IList<CodeMemberField> generatedFields = decorator.GenerateAllFields( "test", schema.SchemaDetails, implDetails, internalClassProvider); Assert.NotNull(generatedFields); Assert.AreEqual(NamesToType.Count, generatedFields.Count); foreach (var field in generatedFields) { Assert.That( NamesToType.ContainsKey(field.Name.Substring(1)), "field name was not present in namesToType " + field.Name); } int item = 0; foreach (var pair in NamesToType) { var field = generatedFields[item++]; Assert.AreEqual( "_" + pair.Key, field.Name, 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 GenerateAllFieldsTestEdgeCases() { var implDetails = new Dictionary<JsonSchema, SchemaImplementationDetails>(); var decorator = new StandardPropertyFieldDecorator(); var schema = new MockSchema(); string name = "test"; Assert.Throws( typeof(ArgumentNullException), () => decorator.GenerateAllFields(name, null, implDetails, internalClassProvider)); Assert.Throws( typeof(ArgumentNullException), () => decorator.GenerateAllFields(name, schema.SchemaDetails, null, internalClassProvider)); Assert.Throws( typeof(ArgumentNullException), () => decorator.GenerateAllFields(name, schema.SchemaDetails, implDetails, null)); schema.Name = "test"; schema.SchemaDetails = null; Assert.Throws( typeof(ArgumentNullException), () => decorator.GenerateAllFields(name, schema.SchemaDetails, implDetails, internalClassProvider)); schema.SchemaDetails = new JsonSchema(); schema.SchemaDetails.Properties = null; var expectedEmpty = decorator.GenerateAllFields( name, schema.SchemaDetails, implDetails, internalClassProvider); Assert.IsNotNull(expectedEmpty); Assert.AreEqual(0, expectedEmpty.Count); }