Exemplo n.º 1
0
        protected IExecutable InstantiateSystemUnderTest(ExecutionXml executionXml)
        {
            var factory  = new ExecutionFactory();
            var instance = factory.Instantiate(executionXml.BaseItem as IExecutableArgs);

            return(instance);
        }
Exemplo n.º 2
0
        protected virtual IDbCommand InstantiateSystemUnderTest(ExecutionXml executionXml)
        {
            var commandBuilder = new CommandBuilder();

            var connectionString = executionXml.Item.GetConnectionString();
            var commandText      = (executionXml.Item as QueryableXml).GetQuery();

            IEnumerable <IQueryParameter>        parameters = null;
            IEnumerable <IQueryTemplateVariable> variables  = null;
            int timeout = 0;

            if (executionXml.BaseItem is QueryXml)
            {
                parameters = ((QueryXml)executionXml.BaseItem).GetParameters();
                variables  = ((QueryXml)executionXml.BaseItem).GetVariables();
                timeout    = ((QueryXml)executionXml.BaseItem).Timeout;
            }
            if (executionXml.BaseItem is ReportXml)
            {
                parameters = ((ReportXml)executionXml.BaseItem).GetParameters();
            }
            var cmd = commandBuilder.Build(connectionString, commandText, parameters, variables, timeout);

            if (executionXml.BaseItem is ReportXml)
            {
                cmd.CommandType = ((ReportXml)executionXml.BaseItem).GetCommandType();
            }

            return(cmd);
        }
Exemplo n.º 3
0
        public void Instantiate_QueryExists_ArgumentException()
        {
            var sutXml          = new ExecutionXml();
            var ctrXml          = new ExistsXml();
            var testCaseFactory = new TestCaseFactory();

            Assert.Throws <ArgumentException>(delegate { testCaseFactory.Instantiate(sutXml, ctrXml); });
        }
Exemplo n.º 4
0
        protected override void BaseSetup(AbstractSystemUnderTestXml sutXml, AbstractConstraintXml ctrXml)
        {
            if (!(sutXml is ExecutionXml))
            {
                throw new ArgumentException("System-under-test must be a 'ExecutionXml'");
            }

            SystemUnderTestXml = (ExecutionXml)sutXml;
        }
Exemplo n.º 5
0
        public void IsHandling_QueryExists_False()
        {
            var sutXml          = new ExecutionXml();
            var ctrXml          = new ExistsXml();
            var testCaseFactory = new TestCaseFactory();

            var actual = testCaseFactory.IsHandling(sutXml.GetType(), ctrXml.GetType());

            Assert.That(actual, Is.False);
        }
Exemplo n.º 6
0
        public void IsHandling_QueryRowCount_True()
        {
            var sutXml          = new ExecutionXml();
            var ctrXml          = new RowCountXml();
            var testCaseFactory = new TestCaseFactory();

            var actual = testCaseFactory.IsHandling(sutXml.GetType(), ctrXml.GetType());

            Assert.That(actual, Is.True);
        }
Exemplo n.º 7
0
        public void IsHandling_QuerySyntacticallyCorrect_True()
        {
            var sutXml          = new ExecutionXml();
            var ctrXml          = new SyntacticallyCorrectXml();
            var testCaseFactory = new TestCaseFactory();

            var actual = testCaseFactory.IsHandling(sutXml.GetType(), ctrXml.GetType());

            Assert.That(actual, Is.True);
        }
Exemplo n.º 8
0
        public void IsHandling_ExecutionMatchPattern_True()
        {
            var sutXml          = new ExecutionXml();
            var ctrXml          = new MatchPatternXml();
            var testCaseFactory = new TestCaseFactory();

            var actual = testCaseFactory.IsHandling(sutXml.GetType(), ctrXml.GetType());

            Assert.That(actual, Is.True);
        }
Exemplo n.º 9
0
        protected virtual IQuery GetQuery(ExecutionXml executionXml)
        {
            var builder = new QueryResolverArgsBuilder(ServiceLocator);

            builder.Setup(executionXml.Item, executionXml.Settings, Variables);
            builder.Build();

            var factory  = ServiceLocator.GetQueryResolverFactory();
            var resolver = factory.Instantiate(builder.GetArgs());
            var query    = resolver.Execute();

            return(query);
        }
Exemplo n.º 10
0
        public void GetQuery_FilenameNotSpecified_RetrieveContentOfInlineQuery()
        {
            //Instantiate a System Under Test
            var systemUnderTest = new ExecutionXml()
            {
                Item = new QueryXml()
                {
                    InlineQuery = "SELECT * FROM Product"
                }
            };

            Assert.That(((QueryXml)systemUnderTest.Item).GetQuery(), Is.EqualTo("SELECT * FROM Product"));
            Assert.That(((QueryXml)systemUnderTest.Item).InlineQuery, Is.Not.Null.And.Not.Empty.And.ContainsSubstring("SELECT"));
            Assert.That(((QueryXml)systemUnderTest.Item).File, Is.Null);
        }
Exemplo n.º 11
0
        protected override IDbCommand InstantiateSystemUnderTest(ExecutionXml xml)
        {
            if (xml.Item is QueryableXml)
            {
                var commandText      = (xml.Item as QueryableXml).GetQuery();
                var connectionString = xml.Item.GetConnectionString();
                var parameters       = (xml.Item as QueryableXml).GetParameters();
                var variables        = (xml.Item as QueryableXml).GetVariables();

                var commandBuilder = new CommandBuilder();
                var cmd            = commandBuilder.Build(connectionString, commandText, parameters, variables);
                return(cmd);
            }
            throw new ArgumentException();
        }
Exemplo n.º 12
0
        protected virtual IResultSetService InstantiateSystemUnderTest(ExecutionXml executionXml)
        {
            var queryArgsBuilder = new QueryResolverArgsBuilder(ServiceLocator);

            queryArgsBuilder.Setup(executionXml.Item, executionXml.Settings, Variables);
            queryArgsBuilder.Build();

            var factory  = ServiceLocator.GetResultSetResolverFactory();
            var resolver = factory.Instantiate(new QueryResultSetResolverArgs(queryArgsBuilder.GetArgs()));

            var builder = new ResultSetServiceBuilder();

            builder.Setup(resolver);
            var service = builder.GetService();

            return(service);
        }
Exemplo n.º 13
0
        public void GetQuery_FilenameSpecified_RetrieveContentWithEuroSymbol()
        {
            //create a text file on disk
            var filename = DiskOnFile.CreatePhysicalFile("QueryFile€.mdx", "NBi.Testing.Unit.Xml.Resources.QueryFileEuro.mdx");

            //Instantiate a Test Case and specify to find the sql in the file created above
            var testCase = new ExecutionXml()
            {
                Item = new QueryXml()
                {
                    File = filename
                }
            };

            // A Stream is needed to read the text file from the assembly.
            string expectedContent = "select [measure].[price €/Kg] on 0;";

            Assert.AreEqual(expectedContent, ((QueryableXml)testCase.Item).GetQuery());
        }
Exemplo n.º 14
0
        protected virtual IResultSetService InstantiateSystemUnderTest(ExecutionXml executionXml)
        {
            var commandFactory = new CommandProvider();

            var argsBuilder = new QueryResolverArgsBuilder(ServiceLocator);

            var connectionString = executionXml.Item.GetConnectionString();
            var statement        = (executionXml.Item as QueryableXml).GetQuery();

            IEnumerable <IQueryParameter>        parameters        = null;
            IEnumerable <IQueryTemplateVariable> templateVariables = null;
            int timeout     = 0;
            var commandType = CommandType.Text;

            if (executionXml.BaseItem is QueryXml)
            {
                parameters        = argsBuilder.BuildParameters(((QueryXml)executionXml.BaseItem).GetParameters());
                templateVariables = ((QueryXml)executionXml.BaseItem).GetTemplateVariables();
                timeout           = ((QueryXml)executionXml.BaseItem).Timeout;
            }
            if (executionXml.BaseItem is ReportXml)
            {
                parameters = argsBuilder.BuildParameters(((ReportXml)executionXml.BaseItem).GetParameters());
            }

            if (executionXml.BaseItem is ReportXml)
            {
                commandType = ((ReportXml)executionXml.BaseItem).GetCommandType();
            }

            var queryArgs = new QueryResolverArgs(statement, connectionString, parameters, templateVariables, new TimeSpan(0, 0, timeout), commandType);
            var args      = new QueryResultSetResolverArgs(queryArgs);
            var factory   = ServiceLocator.GetResultSetResolverFactory();
            var resolver  = factory.Instantiate(args);

            var builder = new ResultSetServiceBuilder();

            builder.Setup(resolver);
            var service = builder.GetService();

            return(service);
        }
Exemplo n.º 15
0
        protected virtual IResultSetService InstantiateSystemUnderTest(ExecutionXml executionXml)
        {
            var commandBuilder = new CommandBuilder();

            var connectionString = executionXml.Item.GetConnectionString();
            var commandText      = (executionXml.Item as QueryableXml).GetQuery();

            IEnumerable <IQueryParameter>        parameters = null;
            IEnumerable <IQueryTemplateVariable> variables  = null;
            int timeout = 0;

            if (executionXml.BaseItem is QueryXml)
            {
                var paramBuilder = new QueryResolverArgsBuilder();
                parameters = paramBuilder.BuildParameters(((QueryXml)executionXml.BaseItem).GetParameters());
                variables  = ((QueryXml)executionXml.BaseItem).GetVariables();
                timeout    = ((QueryXml)executionXml.BaseItem).Timeout;
            }
            if (executionXml.BaseItem is ReportXml)
            {
                var paramBuilder = new QueryResolverArgsBuilder();
                parameters = paramBuilder.BuildParameters(((ReportXml)executionXml.BaseItem).GetParameters());
            }
            var cmd = commandBuilder.Build(connectionString, commandText, parameters, variables, timeout);

            if (executionXml.BaseItem is ReportXml)
            {
                cmd.CommandType = ((ReportXml)executionXml.BaseItem).GetCommandType();
            }

            var args     = new QueryResultSetResolverArgs(new DbCommandQueryResolverArgs(cmd));
            var factory  = new ResultSetResolverFactory();
            var resolver = factory.Instantiate(args);

            var builder = new ResultSetServiceBuilder();

            builder.Setup(resolver);
            var service = builder.GetService();

            return(service);
        }
Exemplo n.º 16
0
        public void Instantiate_ExecutionMatchPattern_TestCase()
        {
            var sutXml = new ExecutionXml();
            var ctrXml = new MatchPatternXml();

            var builderMockFactory = new Mock <ITestCaseBuilder>();

            builderMockFactory.Setup(b => b.Setup(sutXml, ctrXml));
            builderMockFactory.Setup(b => b.Build());
            builderMockFactory.Setup(b => b.GetSystemUnderTest()).Returns(new SqlCommand());
            builderMockFactory.Setup(b => b.GetConstraint()).Returns(new NBi.NUnit.Query.MatchPatternConstraint());
            var builder = builderMockFactory.Object;

            var testCaseFactory = new TestCaseFactory();

            testCaseFactory.Register(typeof(ExecutionXml), typeof(MatchPatternXml), builder);

            var tc = testCaseFactory.Instantiate(sutXml, ctrXml);

            Assert.That(tc, Is.Not.Null);
            builderMockFactory.VerifyAll();
        }
Exemplo n.º 17
0
        public void Instantiate_QueryRowCount_TestCase()
        {
            var sutXml = new ExecutionXml();
            var ctrXml = new RowCountXml();

            var builderMockFactory = new Mock <ITestCaseBuilder>();

            builderMockFactory.Setup(b => b.Setup(sutXml, ctrXml, TestConfiguration.Default, It.IsAny <Dictionary <string, ITestVariable> >()));
            builderMockFactory.Setup(b => b.Build());
            builderMockFactory.Setup(b => b.GetSystemUnderTest()).Returns(new SqlCommand());
            builderMockFactory.Setup(b => b.GetConstraint()).Returns(new RowCountConstraint(null));
            var builder = builderMockFactory.Object;

            var testCaseFactory = new TestCaseFactory();

            testCaseFactory.Register(typeof(ExecutionXml), typeof(RowCountXml), builder);

            var tc = testCaseFactory.Instantiate(sutXml, ctrXml);

            Assert.That(tc, Is.Not.Null);
            builderMockFactory.VerifyAll();
        }
Exemplo n.º 18
0
        public void Instantiate_ExecutionEqualToOld_TestCase()
        {
            var sutXml = new ExecutionXml();
            var ctrXml = new EqualToOldXml();

            var builderMockFactory = new Mock <ITestCaseBuilder>();

            builderMockFactory.Setup(b => b.Setup(sutXml, ctrXml, NBi.Core.Configuration.Configuration.Default, It.IsAny <Dictionary <string, ITestVariable> >(), It.IsAny <ServiceLocator>()));
            builderMockFactory.Setup(b => b.Build());
            builderMockFactory.Setup(b => b.GetSystemUnderTest()).Returns(new RelationalCommand(new SqlCommand(), null, null));
            builderMockFactory.Setup(b => b.GetConstraint()).Returns(new IsConstraint("x"));
            var builder = builderMockFactory.Object;

            var testCaseFactory = new TestCaseFactory();

            testCaseFactory.Register(typeof(ExecutionXml), typeof(EqualToOldXml), builder);

            var tc = testCaseFactory.Instantiate(sutXml, ctrXml);

            Assert.That(tc, Is.Not.Null);
            builderMockFactory.VerifyAll();
        }
Exemplo n.º 19
0
        public void Instantiate_QuerySyntacticallyCorrect_TestCase()
        {
            var sutXml = new ExecutionXml();
            var ctrXml = new SyntacticallyCorrectXml();

            var builderMockFactory = new Mock <ITestCaseBuilder>();

            builderMockFactory.Setup(b => b.Setup(sutXml, ctrXml, TestConfiguration.Default));
            builderMockFactory.Setup(b => b.Build());
            builderMockFactory.Setup(b => b.GetSystemUnderTest()).Returns(new SqlCommand());
            builderMockFactory.Setup(b => b.GetConstraint()).Returns(new SyntacticallyCorrectConstraint());
            var builder = builderMockFactory.Object;

            var testCaseFactory = new TestCaseFactory();

            testCaseFactory.Register(typeof(ExecutionXml), typeof(SyntacticallyCorrectXml), builder);

            var tc = testCaseFactory.Instantiate(sutXml, ctrXml);

            Assert.That(tc, Is.Not.Null);
            builderMockFactory.VerifyAll();
        }
Exemplo n.º 20
0
        protected virtual IQuery GetQuery(ExecutionXml executionXml)
        {
            var commandFactory = ServiceLocator.GetCommandFactory();

            var connectionString = executionXml.Item.GetConnectionString();
            var commandText      = (executionXml.Item as QueryableXml).GetQuery();

            IEnumerable <IQueryParameter>        parameters = null;
            IEnumerable <IQueryTemplateVariable> variables  = null;
            var commandType = CommandType.Text;
            int timeout     = 0;

            if (executionXml.BaseItem is QueryXml)
            {
                var builder = new QueryResolverArgsBuilder(ServiceLocator);
                parameters = builder.BuildParameters(((QueryXml)executionXml.BaseItem).GetParameters());
                variables  = ((QueryXml)executionXml.BaseItem).GetVariables();
                timeout    = ((QueryXml)executionXml.BaseItem).Timeout;
            }
            if (executionXml.BaseItem is ReportXml)
            {
                var builder = new QueryResolverArgsBuilder(ServiceLocator);
                parameters = builder.BuildParameters(((ReportXml)executionXml.BaseItem).GetParameters());
            }

            if (executionXml.BaseItem is ReportXml)
            {
                commandType = ((ReportXml)executionXml.BaseItem).GetCommandType();
            }

            var queryArgs = new QueryResolverArgs(commandText, connectionString, parameters, variables, new TimeSpan(0, 0, timeout), commandType);
            var factory   = ServiceLocator.GetQueryResolverFactory();
            var resolver  = factory.Instantiate(queryArgs);
            var query     = resolver.Execute();

            return(query);
        }
Exemplo n.º 21
0
        public void GetQuery_FilenameSpecified_RetrieveContentOfFile()
        {
            //create a text file on disk
            var filename = DiskOnFile.CreatePhysicalFile("QueryFile.sql", "NBi.Testing.Unit.Xml.Resources.QueryFile.sql");

            //Instantiate a Test Case and specify to find the sql in the file created above
            var testCase = new ExecutionXml()
            {
                Item = new QueryXml()
                {
                    File = filename
                }
            };

            // A Stream is needed to read the text file from the assembly.
            string expectedContent;

            using (Stream stream = Assembly.GetExecutingAssembly()
                                   .GetManifestResourceStream("NBi.Testing.Unit.Xml.Resources.QueryFile.sql"))
                using (StreamReader reader = new StreamReader(stream))
                    expectedContent = reader.ReadToEnd();

            Assert.AreEqual(expectedContent, (testCase.Item as QueryableXml).GetQuery());
        }
Exemplo n.º 22
0
        public void GetQuery_FileNameSpecified_RetrieveContentOfFile()
        {
            //Create the queryfile to read
            var filename = "Select all products.sql";

            DiskOnFile.CreatePhysicalFile(filename, "NBi.Testing.Unit.Xml.Resources.SelectAllProducts.sql");

            var systemUnderTest = new ExecutionXml()
            {
                Item = new QueryXml()
                {
                    File     = filename,
                    Settings = new NBi.Xml.Settings.SettingsXml()
                    {
                        BasePath = DiskOnFile.GetDirectoryPath()
                    }
                }
            };

            // Check the properties of the object.
            Assert.That(((QueryXml)systemUnderTest.Item).File, Is.Not.Null.And.Not.Empty);
            Assert.That(((QueryXml)systemUnderTest.Item).InlineQuery, Is.Null);
            Assert.That(((QueryXml)systemUnderTest.Item).GetQuery(), Is.Not.Null.And.Not.Empty.And.ContainsSubstring("SELECT"));
        }
Exemplo n.º 23
0
        protected virtual IDbCommand InstantiateSystemUnderTest(ExecutionXml executionXml)
        {
            var cmd = GetCommand(executionXml);

            return(cmd);
        }
Exemplo n.º 24
0
        protected virtual IQuery InstantiateSystemUnderTest(ExecutionXml executionXml)
        {
            var query = GetQuery(executionXml);

            return(query);
        }