Exemplo n.º 1
0
        public void BuildMdx_WithUselessParameter_CorrectResultSet()
        {
            var statement =
                "select " +
                "[Measures].[Order Count] on 0, " +
                "strToMember(@Param) on 1 " +
                "from " +
                "[Adventure Works]";
            var conn  = new AdomdClient(ConnectionStringReader.GetAdomd());
            var query = Mock.Of <IQuery>(
                x => x.ConnectionString == ConnectionStringReader.GetAdomd() &&
                x.Statement == statement &&
                x.Parameters == new List <QueryParameter>()
            {
                new QueryParameter("@Param", "[Product].[Model Name].[Bike Wash]"),
                new QueryParameter("UnusedParam", "Useless")
            });
            var factory = new CommandProvider();
            var cmd     = factory.Instantiate(conn, query).Implementation;

            Assert.IsInstanceOf <AdomdCommand>(cmd);

            (cmd as AdomdCommand).Connection.Open();
            var dr = (cmd as AdomdCommand).ExecuteReader(System.Data.CommandBehavior.CloseConnection);

            Assert.That(dr.Read(), Is.True);
            Assert.That(dr.GetValue(0), Is.EqualTo("Bike Wash"));
            Assert.That(dr.Read(), Is.False);
        }
Exemplo n.º 2
0
        public virtual T Instantiate(IQuery query)
        {
            var session = sessionFactory.Instantiate(query.ConnectionString);
            var cmd     = commandFactory.Instantiate(session, query);

            var key = cmd.Implementation.GetType().FullName;

            if (engines.ContainsKey(key))
            {
                return(Instantiate(engines[key], cmd));
            }
            throw new ArgumentException();
        }
Exemplo n.º 3
0
        public void Build_OneParameterWithoutTypeInt_CorrectResultSet()
        {
            var conn  = new DbClient(DbProviderFactories.GetFactory("System.Data.SqlClient"), typeof(SqlConnection), ConnectionStringReader.GetSqlClient());
            var query = Mock.Of <IQuery>(
                x => x.ConnectionString == ConnectionStringReader.GetSqlClient() &&
                x.Statement == "select * from [Sales].[Customer] where CustomerID=@Param" &&
                x.Parameters == new List <QueryParameter>()
            {
                new QueryParameter("@Param", string.Empty, new LiteralScalarResolver <object>(2))
            }
                );
            var factory = new CommandProvider();
            var cmd     = factory.Instantiate(conn, query).Implementation;

            Assert.IsInstanceOf <SqlCommand>(cmd);

            (cmd as SqlCommand).Connection.Open();
            var dr = (cmd as SqlCommand).ExecuteReader(System.Data.CommandBehavior.CloseConnection);

            Assert.That(dr.Read(), Is.True);
            Assert.That(dr.GetValue(0), Is.EqualTo(2));
            Assert.That(dr.Read(), Is.False);
        }
Exemplo n.º 4
0
        public void Build_WithUselessParameter_CorrectResultSet()
        {
            var conn  = new DbClient(DbProviderFactories.GetFactory("System.Data.SqlClient"), typeof(SqlConnection), ConnectionStringReader.GetSqlClient());
            var query = Mock.Of <IQuery>(
                x => x.ConnectionString == ConnectionStringReader.GetSqlClient() &&
                x.Statement == "select * from [Sales].[SalesTerritory] where Name=@Param" &&
                x.Parameters == new List <QueryParameter>()
            {
                new QueryParameter("@Param", "Canada"),
                new QueryParameter("@UnusedParam", "Useless")
            });
            var factory = new CommandProvider();
            var cmd     = factory.Instantiate(conn, query).Implementation;

            Assert.IsInstanceOf <SqlCommand>(cmd);

            (cmd as SqlCommand).Connection.Open();
            var dr = (cmd as SqlCommand).ExecuteReader(System.Data.CommandBehavior.CloseConnection);

            Assert.That(dr.Read(), Is.True);
            Assert.That(dr.GetValue(1), Is.EqualTo("Canada"));
            Assert.That(dr.Read(), Is.False);
        }