Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #4
0
        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");
        }
Пример #5
0
        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");
        }
Пример #6
0
        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);
        }
Пример #7
0
        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);
        }
Пример #10
0
        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);
        }
Пример #11
0
        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);
        }
Пример #12
0
        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()));
        }