public void TestResourceTypeBuilderCreateResourceType(string name, IResourceTypeFactory resourceTypeFactory, IConventions conventions, IResourceType expectedResourceType, IEnumerable <IComplexType> complexTypes) { this.Output.WriteLine("Test Name: {0}", name); this.Output.WriteLine(String.Empty); // Arrange var serializerSettings = new JsonSerializerSettings { Converters = new[] { (JsonConverter) new StringEnumConverter() }, Formatting = Formatting.Indented, NullValueHandling = NullValueHandling.Include }; var expectedJson = expectedResourceType.ToJson(serializerSettings); this.Output.WriteLine("Expected ResourceType"); this.Output.WriteLine(expectedJson); // Act var actualResourceType = resourceTypeFactory.Create(conventions); if (complexTypes != null) { var clrTypeToComplexTypeDictionary = complexTypes.ToDictionary(x => x.ClrType); actualResourceType.Initialize(clrTypeToComplexTypeDictionary); } this.Output.WriteLine(String.Empty); var actualJson = actualResourceType.ToJson(serializerSettings); this.Output.WriteLine("Actual ResourceType"); this.Output.WriteLine(actualJson); // Assert ResourceTypeAssert.Equal(expectedResourceType, actualResourceType); }