예제 #1
0
파일: XmlManager.cs 프로젝트: WimDeRons/NBi
        private void ApplyDefaultSettings(TestXml test)
        {
            foreach (var sut in test.Systems)
            {
                sut.Default  = TestSuite.Settings.GetDefault(Settings.SettingsXml.DefaultScope.SystemUnderTest);
                sut.Settings = TestSuite.Settings;
                if (sut is IReferenceFriendly && TestSuite.Settings != null)
                {
                    ((IReferenceFriendly)sut).AssignReferences(TestSuite.Settings.References);
                }
            }
            foreach (var ctr in test.Constraints)
            {
                ctr.Default  = TestSuite.Settings.GetDefault(Settings.SettingsXml.DefaultScope.Assert);
                ctr.Settings = TestSuite.Settings;
                if (ctr is IReferenceFriendly && TestSuite.Settings != null)
                {
                    ((IReferenceFriendly)ctr).AssignReferences(TestSuite.Settings.References);
                }
            }

            var decorationCommands = new List <DecorationCommandXml>();

            decorationCommands.AddRange(test.Setup.Commands);
            decorationCommands.AddRange(test.Cleanup.Commands);
            foreach (var cmd in decorationCommands)
            {
                cmd.Settings = TestSuite.Settings;
                if (cmd is IReferenceFriendly && TestSuite.Settings != null)
                {
                    ((IReferenceFriendly)cmd).AssignReferences(TestSuite.Settings.References);
                }
            }
        }
예제 #2
0
        protected internal TestSuiteXml BuildResultSetsBased()
        {
            var testSuite = new TestSuiteXml();

            var queries = Directory.GetFiles(actual.Directory);

            foreach (var query in queries)
            {
                if (File.Exists(Path.Combine(expect.Directory, Path.GetFileNameWithoutExtension(query) + ".csv")))
                {
                    var test = new TestXml();

                    testSuite.Tests.Add(test);
                    test.Name = Path.GetFileNameWithoutExtension(query);
                    test.Categories.AddRange(Path.GetFileNameWithoutExtension(query).Split(new string[] { " - " }, StringSplitOptions.RemoveEmptyEntries));

                    var ctr = new EqualToXml();
                    test.Constraints.Add(ctr);
                    ctr.ResultSetOld = new ResultSetXml()
                    {
                        File = Path.Combine(expect.Directory, Path.GetFileNameWithoutExtension(query) + ".csv")
                    };

                    var sut = new Systems.ExecutionXml();
                    test.Systems.Add(sut);
                    ((QueryXml)sut.Item).File             = query;
                    ((QueryXml)sut.Item).ConnectionString = actual.ConnectionString;
                }
            }
            return(testSuite);
        }
예제 #3
0
        public void Serialize_Trait_NameAsAttributeValueAsText()
        {
            var test = new TestXml();
            var trait = new TraitXml() { Name = "My Trait", Value = "My Trait's value" };
            test.Traits.Add(trait);

            var manager = new XmlManager();
            var xml = manager.XmlSerializeFrom<TestXml>(test);

            Assert.That(xml, Is.StringContaining("<trait name=\"My Trait\">My Trait's value</trait>"));
        }
예제 #4
0
 public void Load(IEnumerable<TestXml> tests)
 {
     foreach (var test in tests)
     {
         if (test is TestStandaloneXml)
         {
             var t = new TestXml((TestStandaloneXml)test);
             this.Tests.Add(t);
         }
         else
             this.Tests.Add(test);
     }
 }
예제 #5
0
 public void Load(IEnumerable <TestXml> tests)
 {
     foreach (var test in tests)
     {
         if (test is TestStandaloneXml)
         {
             var t = new TestXml((TestStandaloneXml)test);
             this.Tests.Add(t);
         }
         else
         {
             this.Tests.Add(test);
         }
     }
 }
예제 #6
0
 public TestStandaloneXml(TestXml full)
 {
     Categories         = full.Categories;
     Cleanup            = full.Cleanup;
     Condition          = full.Condition;
     Constraints        = full.Constraints;
     DescriptionElement = full.DescriptionElement;
     Drafts             = full.Drafts;
     Edition            = full.Edition;
     IgnoreElement      = full.IgnoreElement;
     InstanceSettling   = full.InstanceSettling;
     Name             = full.Name;
     Setup            = full.Setup;
     Systems          = full.Systems;
     Traits           = full.Traits;
     UniqueIdentifier = full.UniqueIdentifier;
 }
예제 #7
0
        public void Serialize_IsXml_NoDefaultAndSettings()
        {
            var isXml = new IsXml();
            isXml.Value = "decimal(10,2)";

            var testXml = new TestXml();
            testXml.Constraints.Add(isXml);

            var serializer = new XmlSerializer(typeof(TestXml));
            var stream = new MemoryStream();
            var writer = new StreamWriter(stream, Encoding.UTF8);
            serializer.Serialize(writer, testXml);
            var content = Encoding.UTF8.GetString(stream.ToArray());
            writer.Close();
            stream.Close();

            Debug.WriteLine(content);

            Assert.That(content, Is.StringContaining("<is"));
            Assert.That(content, Is.StringContaining(">decimal(10,2)<"));
            Assert.That(content, Is.Not.StringContaining("efault"));
            Assert.That(content, Is.Not.StringContaining("eference"));
        }
예제 #8
0
 public override void ExecuteTestCases(TestXml test)
 {
     base.ExecuteTestCases(test);
 }
예제 #9
0
파일: TestSuiteTest.cs 프로젝트: zyh329/nbi
        public void GetTestCases_TestCaseWithRegexName_ReplaceRegexByValueInName()
        {
            //Buiding object used during test
            //TestSuite invoked
            var test = new TestXml()
            {
                Name = "my name contains a regex '{sut:caption}' and it's parsed! Same for '{sut:display-folder}'.",
            };

            test.Systems.Add(
                new StructureXml()
                {
                    Item = new MeasureXml()
                    {
                        Caption="My Caption",
                        DisplayFolder = "My Display Folder"
                    }
                }
            );

            var testSuiteXml = new TestSuiteXml();
            testSuiteXml.Tests.Add(test);

            //Building a stub for TestSuiteManager
            var testSuiteManagerStub = new Mock<XmlManager>();
            testSuiteManagerStub.Setup(mgr => mgr.Load(It.IsAny<string>()));
            testSuiteManagerStub.Setup(mgr => mgr.TestSuite).Returns(testSuiteXml);

            //Building a stub for TestSuiteFinder
            var testSuiteFinderStub = new Mock<TestSuiteFinder>();
            testSuiteFinderStub.Setup(finder => finder.Find()).Returns(string.Empty);

            var testSuite = new TestSuite(testSuiteManagerStub.Object, testSuiteFinderStub.Object);

            //Call the method to test
            var testCases = testSuite.GetTestCases();
            var testCase = testCases.First();

            //Assertion
            Console.WriteLine(testCase.TestName);
            Assert.That(testCase.TestName, Is.StringContaining("my name contains a regex").And
                                            .StringContaining("My Caption").And
                                            .StringContaining("My Display Folder").And
                                            .StringContaining("and it's parsed!"));
        }
예제 #10
0
파일: TestSuite.cs 프로젝트: jansaris/NBi
        public virtual void ExecuteTestCases(TestXml test)
        {
            Trace.WriteLineIf(NBiTraceSwitch.TraceVerbose, string.Format("Test loaded by {0}", GetOwnFilename()));
            Trace.WriteLineIf(NBiTraceSwitch.TraceInfo, string.Format("Test defined in {0}", TestSuiteFinder.Find()));

            //check if ignore is set to true
            if (test.Ignore)
                Assert.Ignore(test.IgnoreReason);
            else
            {
                ExecuteChecks(test.Condition);
                ExecuteSetup(test.Setup);
                foreach (var tc in test.Systems)
                {
                    foreach (var ctr in test.Constraints)
                    {
                        var factory = new TestCaseFactory(Configuration);
                        var testCase = factory.Instantiate(tc, ctr);
                        AssertTestCase(testCase.SystemUnderTest, testCase.Constraint, test.Content);
                    }
                }
                ExecuteCleanup(test.Cleanup);
            }
        }
예제 #11
0
 public string SerializeTest(TestXml objectData)
 {
     return(XmlSerializeFrom <TestXml>(objectData));
 }
예제 #12
0
 public void ExecuteTestCases(TestXml test, ITestConfiguration configuration)
 {
     base.Configuration = configuration;
     base.ExecuteTestCases(test);
 }