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); }
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(); }
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); }
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); }