Exemple #1
0
        public bool ExecuteSchemaTestJson <TSchema>(Assembly assembly, string sampleResource, string rootNodeName,
                                                    string targetSchemaNamespace, out XmlDocument generatedDoc, string namespacePrefix = "ns0",
                                                    TestContext testContext = null) where TSchema : TestableSchemaBase, new()
        {
            TestableSchemaBase schemaToTest;

            generatedDoc = null;

            if (string.IsNullOrWhiteSpace(sampleResource))
            {
                return(false);
            }

            schemaToTest = new TSchema();

            generatedDoc =
                JsonParser.ConvertJsonToXmlDocument(
                    ResourceHelper.LoadAsString(assembly, sampleResource),
                    rootNodeName, targetSchemaNamespace, namespacePrefix);

            var validationResult = new XmlValidationResult(new TSchema(), generatedDoc);

            if (testContext != null)
            {
                testContext.WriteLine(
                    validationResult.IsValid
                        ? "Test successful for {0} good sample message. {1}"
                        : "Test failed for {0} good sample message. {1}",
                    schemaToTest.ToString(),
                    validationResult.Message);
            }
            return(validationResult.IsValid);
        }
Exemple #2
0
        /// <summary>
        /// ExecuteMapTest
        /// </summary>
        /// <typeparam name="Map"></typeparam>
        /// <param name="inputMessage"></param>
        /// <param name="expectedResultReference"></param>
        /// <param name="targetSchema"></param>
        /// <param name="validateXmlOutput"></param>
        /// <param name="extObjects"></param>
        /// <param name="testContext"></param>
        /// <returns></returns>
        public string ExecuteMapTest <Map>(Assembly assembly, string inputMessage, string expectedResultReference, TestableSchemaBase targetSchema = null, bool validateXmlOutput = true, string extObjects = null, TestContext testContext = null, object[] expectedResultArguments = null, string[] ignoredLines = null)
            where Map : TestableMapBase, new()
        {
            var             mapTestHelper = new MapTestHelper();
            TestableMapBase map           = new Map();

            // Execute the map and load the output.
            string result = mapTestHelper.ExecuteMap(map, inputMessage, extObjects);

            XmlDocument output = new XmlDocument();

            output.LoadXml(result);

            if (testContext != null)
            {
                testContext.WriteLine("{0}", output.OuterXml);
            }

            if (validateXmlOutput)
            {
                // Perform XML Schema validation on the output.
                XmlValidationResult xmlValidationResult = new XmlValidationResult(targetSchema, output);
                Assert.IsTrue(xmlValidationResult.IsValid, map.ToString() + " test failed. The output file was not valid. " + xmlValidationResult.Message);
            }

            Assert.IsFalse(mapTestHelper.IsXmlDifferent(assembly, output, expectedResultReference, arguments: expectedResultArguments, ignoredLines: ignoredLines), "Differences exist.");

            return(result);
        }
Exemple #3
0
        /// <summary>
        /// ExecuteSchemaTestXml
        /// </summary>
        /// <typeparam name="TSchema"></typeparam>
        /// <param name="assembly"></param>
        /// <param name="sampleResource"></param>
        /// <param name="generatedDoc"></param>
        /// <param name="targetSchemaNamespace"></param>
        /// <param name="testContext"></param>
        /// <param name="arguments"></param>
        /// <returns></returns>
        public bool ExecuteSchemaTestXml <TSchema>(Assembly assembly, string sampleResource, out XmlDocument generatedDoc, string targetSchemaNamespace = null,
                                                   TestContext testContext = null, params object[] arguments) where TSchema : TestableSchemaBase, new()
        {
            TestableSchemaBase schemaToTest;
            XmlTemplate        xmlTemplate;

            generatedDoc = new XmlDocument();

            if (string.IsNullOrWhiteSpace(sampleResource))
            {
                return(false);
            }

            schemaToTest = new TSchema();

            if (string.IsNullOrWhiteSpace(targetSchemaNamespace))
            {
                targetSchemaNamespace = schemaToTest.Schema.TargetNamespace;
            }

            xmlTemplate = new XmlTemplate(typeof(TSchema), targetSchemaNamespace);

            xmlTemplate.LoadFromResource(assembly, sampleResource);
            if (arguments == null)
            {
                xmlTemplate.Execute();
            }
            else
            {
                xmlTemplate.Execute(arguments);
            }
            var tempFile = new TempFile(xmlTemplate);

            var xmlValidationResult = new XmlValidationResult(schemaToTest,
                                                              tempFile.FilePath);

            if (testContext != null)
            {
                testContext.WriteLine(
                    xmlValidationResult.IsValid
                        ? "Test successful for {0} good sample message. {1}"
                        : "Test failed for {0} good sample message. {1}",
                    schemaToTest.ToString(),
                    xmlValidationResult.Message);
            }

            generatedDoc.Load(tempFile.FilePath);

            return(xmlValidationResult.IsValid);
        }
Exemple #4
0
        /// <summary>
        /// TestDisassembleXml
        /// </summary>
        /// <typeparam name="TSchema"></typeparam>
        public bool TestDisassembleXml <TSchema>(Assembly assembly, string flatFile, out XmlDocument xmlDoc,
                                                 TestContext testContext = null, Action <XmlDocument> validationAction = null) where TSchema : TestableSchemaBase, new()
        {
            TestableSchemaBase schemaToTest;
            FlatFileDasm       flatFileDasm;
            string             message;
            TempFile           disassembledFile;

            xmlDoc = null;

            if (string.IsNullOrWhiteSpace(flatFile))
            {
                return(false);
            }

            schemaToTest     = new TSchema();
            flatFileDasm     = new FlatFileDasm(schemaToTest);
            message          = ResourceHelper.LoadAsString(assembly, flatFile);
            disassembledFile = flatFileDasm.Disassemble(message);
            xmlDoc           = new XmlDocument();

            xmlDoc.Load(disassembledFile.FilePath);

            if (testContext != null)
            {
                testContext.WriteLine("{0}", xmlDoc.OuterXml);
            }

            //schema validation
            XmlValidationResult validationResult = new XmlValidationResult(schemaToTest, disassembledFile.FilePath);

            if (testContext != null)
            {
                testContext.WriteLine(
                    validationResult.IsValid
                        ? "Disassembly Test successful for {0} sample message. {1}"
                        : "Disassembly Test failed for {0} sample message. {1}",
                    schemaToTest.ToString(),
                    validationResult.Message);
            }

            if (validationResult.IsValid && (validationAction != null))
            {
                validationAction(xmlDoc);
            }

            return(validationResult.IsValid);
        }