Beispiel #1
0
		/// <summary>
		/// Verify parameter order when using unnamed parameters
		/// </summary>
		public void ExecuteTestUnnamedParameterOrder( string providerName )
		{
			GentleSettings.AnalyzerLevel = AnalyzerLevel.None;
			PersistenceBroker broker = new PersistenceBroker( providerName, "..." );
			GentleSqlFactory sf = broker.GetSqlFactory();
			if( ! sf.HasCapability( Capability.NamedParameters ) )
			{
				// create parameterized query
				SqlBuilder sb = new SqlBuilder( broker, StatementType.Select, typeof(MailingList) );
				sb.AddConstraint( Operator.Equals, "SenderAddress", "SenderAddress" );
				sb.AddConstraint( Operator.Equals, "Name", "Name" );
				SqlStatement stmt = sb.GetStatement( true );
				foreach( IDataParameter param in stmt.Command.Parameters )
				{
					Assert.IsTrue( param.ParameterName.IndexOf( (string) param.Value ) >= 0, "1: Parameter order not correctly maintained." );
				}
				// retry using parameters in reverse order 
				sb = new SqlBuilder( broker, StatementType.Select, typeof(MailingList) );
				sb.AddConstraint( Operator.Equals, "Name", "Name" );
				sb.AddConstraint( Operator.Equals, "SenderAddress", "SenderAddress" );
				stmt = sb.GetStatement( true );
				foreach( IDataParameter param in stmt.Command.Parameters )
				{
					Assert.IsTrue( param.ParameterName.IndexOf( (string) param.Value ) >= 0, "2: Parameter order not correctly maintained." );
				}
			}
		}
        /// <summary>
        /// Verify parameter order when using unnamed parameters
        /// </summary>
        public void ExecuteTestUnnamedParameterOrder(string providerName)
        {
            GentleSettings.AnalyzerLevel = AnalyzerLevel.None;
            PersistenceBroker broker = new PersistenceBroker(providerName, "...");
            GentleSqlFactory  sf     = broker.GetSqlFactory();

            if (!sf.HasCapability(Capability.NamedParameters))
            {
                // create parameterized query
                SqlBuilder sb = new SqlBuilder(broker, StatementType.Select, typeof(MailingList));
                sb.AddConstraint(Operator.Equals, "SenderAddress", "SenderAddress");
                sb.AddConstraint(Operator.Equals, "Name", "Name");
                SqlStatement stmt = sb.GetStatement(true);
                foreach (IDataParameter param in stmt.Command.Parameters)
                {
                    Assert.IsTrue(param.ParameterName.IndexOf((string)param.Value) >= 0, "1: Parameter order not correctly maintained.");
                }
                // retry using parameters in reverse order
                sb = new SqlBuilder(broker, StatementType.Select, typeof(MailingList));
                sb.AddConstraint(Operator.Equals, "Name", "Name");
                sb.AddConstraint(Operator.Equals, "SenderAddress", "SenderAddress");
                stmt = sb.GetStatement(true);
                foreach (IDataParameter param in stmt.Command.Parameters)
                {
                    Assert.IsTrue(param.ParameterName.IndexOf((string)param.Value) >= 0, "2: Parameter order not correctly maintained.");
                }
            }
        }