public void TestMoreSpecific() { var comparer = new SchemaComparer(); var resultSchema = comparer.Apply(GetSchema(Path.Combine(TestContext.DeploymentDirectory, "Comparisions/moreSpecific.json")), GetSchema(Path.Combine(TestContext.DeploymentDirectory, "Comparisions/moreSpecific_base.json")), new SchemaComparisionReport()); Assert.IsNotNull(resultSchema); Assert.AreEqual("TestModel", resultSchema.Title, "Expected the title for the base schema"); SchemaAssertions.AssertSingleProperty(resultSchema, "name", JSchemaType.Integer); }
public void TestMoreSpecific() { var comparer = new SchemaComparer(); var resultSchema = comparer.Apply(GetSchema(Path.Combine(PathUtility.GetDirectory(), "Mocks/Comparisions/moreSpecific.json")), GetSchema(Path.Combine(PathUtility.GetDirectory(), "Mocks/Comparisions/moreSpecific_base.json")), new SchemaComparisionReport()); Assert.NotNull(resultSchema); Assert.Equal("TestModel", resultSchema.Title); SchemaAssertions.AssertSingleProperty(resultSchema, "name", JSchemaType.Integer); }
public void TestAnyPropertyFromBaseSchemaShouldBeTaken() { var comparer = new SchemaComparer(); var report = new SchemaComparisionReport(); var resultSchema = comparer.Apply(GetSchema(Path.Combine(TestContext.DeploymentDirectory, "Comparisions/anyPropertyInMoreSpecific.json")), GetSchema(Path.Combine(TestContext.DeploymentDirectory, "Comparisions/anyPropertyInMoreSpecific_base.json")), report); Assert.IsNotNull(resultSchema); Assert.AreEqual("val1", resultSchema.Properties["name"].Format); //Assert.AreEqual("TestModel", resultSchema.Properties["prop2"], "val2"); }
public void TestInfoOnMissingPropertyInBaseSchema() { var comparer = new SchemaComparer(); var report = new SchemaComparisionReport(); var resultSchema = comparer.Apply(GetSchema(Path.Combine(TestContext.DeploymentDirectory, "Comparisions/infoOnMissingPropertyInBaseSchema.json")), GetSchema(Path.Combine(TestContext.DeploymentDirectory, "Comparisions/infoOnMissingPropertyInBaseSchema_base.json")), report); var infos = report.GetInfos().ToList(); Assert.AreEqual(1, infos.Count, "one failure expected."); Assert.IsInstanceOfType(infos[0], typeof(MissingPropertyInfo), "Expected to be a MissingPropertyInfo"); Assert.AreEqual("missingPropertyInBase", ((MissingPropertyInfo)infos[0]).PropertyName); }
public void TestInvalidTypeChange() { var comparer = new SchemaComparer(); var report = new SchemaComparisionReport(); var resultSchema = comparer.Apply(GetSchema(Path.Combine(TestContext.DeploymentDirectory, "Comparisions/invalidTypeChangeInBase.json")), GetSchema(Path.Combine(TestContext.DeploymentDirectory, "Comparisions/invalidTypeChangeInBase_base.json")), report); var failures = report.GetFailures().ToList(); Assert.AreEqual(1, failures.Count, "one failure expected."); Assert.IsInstanceOfType(failures[0], typeof(TypeChangeFailure), "Expected to be a TypeChangeFailure"); Assert.AreEqual("name", ((TypeChangeFailure)failures[0]).PropertyName); }
public void TestInfoOnMissingPropertyInBaseSchema() { var comparer = new SchemaComparer(); var report = new SchemaComparisionReport(); var resultSchema = comparer.Apply(GetSchema(Path.Combine(PathUtility.GetDirectory(), "Mocks/Comparisions/infoOnMissingPropertyInBaseSchema.json")), GetSchema(Path.Combine(PathUtility.GetDirectory(), "Mocks/Comparisions/infoOnMissingPropertyInBaseSchema_base.json")), report); var infos = report.GetInfos().ToList(); Assert.Equal(1, infos.Count); Assert.IsType(typeof(MissingPropertyInfo), infos[0]); Assert.Equal("missingPropertyInBase", ((MissingPropertyInfo)infos[0]).PropertyName); }
public void TestInvalidTypeChange() { var comparer = new SchemaComparer(); var report = new SchemaComparisionReport(); var resultSchema = comparer.Apply(GetSchema(Path.Combine(PathUtility.GetDirectory(), "Mocks/Comparisions/invalidTypeChangeInBase.json")), GetSchema(Path.Combine(PathUtility.GetDirectory(), "Mocks/Comparisions/invalidTypeChangeInBase_base.json")), report); var failures = report.GetFailures().ToList(); Assert.Equal(1, failures.Count); Assert.IsType(typeof(TypeChangeFailure), failures[0]); Assert.Equal("name", ((TypeChangeFailure)failures[0]).PropertyName); }
public async Task <JSchema> GetSchemaFromTemplateAsync(TemplateInfo template) { var comparer = new SchemaComparer(); var schema1Task = _schemaProvider.GetSchemaFromTemplateAsync(template); var schema2Task = _schemaBaseProvider.GetSchemaFromTemplateAsync(template); if (schema1Task == null) { return(await schema2Task); } if (schema2Task == null) { return(await schema1Task); } await Task.WhenAll(schema1Task, schema2Task).ConfigureAwait(false); return(comparer.Apply(schema1Task.Result, schema2Task.Result, new SchemaComparisionReport())); }