Пример #1
0
        public void AddParameters_NoCommand_Throws()
        {
            var    testable = new WrappedSqlDynamicParameters();
            Action action   = () => testable.AddParameters(null);

            action.Should().Throw <ArgumentNullException>();
        }
Пример #2
0
        public void Add_EmptyName_DoesNotAdd()
        {
            var    testable = new WrappedSqlDynamicParameters();
            Action action   = () => testable.Add(string.Empty, SqlDbType.VarChar);

            action.Should().Throw <ArgumentException>().WithMessage("Cannot create Dynamic parameter with empty name. (Parameter 'name')");
        }
Пример #3
0
        public void Add_NameWithParmameterSymbol_RemovesParmameterSymbol()
        {
            var testable = new WrappedSqlDynamicParameters();

            testable.Add("@Black", SqlDbType.VarChar);
            testable.ParameterNames.Should().NotBeEmpty();
            testable.ParameterNames.Should().HaveCount(1);
            testable.ParameterNames.First().Should().Be("Black");
        }
Пример #4
0
        public void Add_Normally_AppearsInParameterList()
        {
            var testable = new WrappedSqlDynamicParameters();

            testable.Add("Black", SqlDbType.VarChar);
            testable.ParameterNames.Should().NotBeEmpty();
            testable.ParameterNames.Should().HaveCount(1);
            testable.ParameterNames.First().Should().Be("Black");
        }
Пример #5
0
        public void Add_CharParameter_StoredCorrectly()
        {
            var testable = new WrappedSqlDynamicParameters();

            testable.Add("State", SqlDbType.Char, "NO", ParameterDirection.Input, 2);
            testable.AddParameters(new SqlCommand()); // Faking Command execution
            testable.ParameterValues["State"].Should().Be("NO");
            var internalTestable = (SqlParameter)testable.ParameterDbDataObject["State"];

            internalTestable.Value.Should().Be("NO");
            internalTestable.SqlDbType.Should().Be(SqlDbType.Char);
            internalTestable.DbType.Should().Be(DbType.AnsiStringFixedLength);
            internalTestable.Size.Should().Be(2);
        }
Пример #6
0
        public void Add_VarcharParameter_StoredCorrectly()
        {
            var testable = new WrappedSqlDynamicParameters();

            testable.Add("Description", SqlDbType.VarChar, "YoKaLeMeNe");
            testable.AddParameters(new SqlCommand()); // Faking Command execution
            testable.ParameterValues["Description"].Should().Be("YoKaLeMeNe");
            testable.SqlDbTypes["Description"].Should().Be(SqlDbType.VarChar);
            testable.ParameterDirections["Description"].Should().Be(ParameterDirection.Input);
            var internalTestable = (SqlParameter)testable.ParameterDbDataObject["Description"];

            internalTestable.ParameterName.Should().Be("Description");
            internalTestable.Value.Should().Be("YoKaLeMeNe");
            internalTestable.DbType.Should().Be(DbType.AnsiString);
            internalTestable.SqlDbType.Should().Be(SqlDbType.VarChar);
            internalTestable.Direction.Should().Be(ParameterDirection.Input);
            internalTestable.Size.Should().Be(4000);
        }
Пример #7
0
        public void Add_StringNullParameter_StoredCorrectly()
        {
            var testable = new WrappedSqlDynamicParameters();

            testable.Add("Nullable", SqlDbType.VarChar, null);
            testable.AddParameters(new SqlCommand()); // Faking Command execution
            testable.ParameterValues["Nullable"].Should().Be(null);
            testable.ParameterDirections["Nullable"].Should().Be(ParameterDirection.Input);
            testable.SqlDbTypes["Nullable"].Should().Be(SqlDbType.VarChar);
            var internalTestable = (SqlParameter)testable.ParameterDbDataObject["Nullable"];

            internalTestable.ParameterName.Should().Be("Nullable");
            internalTestable.Value.Should().Be(DBNull.Value);
            internalTestable.SqlDbType.Should().Be(SqlDbType.VarChar);
            internalTestable.DbType.Should().Be(DbType.AnsiString);
            internalTestable.Direction.Should().Be(ParameterDirection.Input);
            internalTestable.Size.Should().Be(0);
        }
Пример #8
0
        public void Add_BooleanParameter_StoredCorrectly()
        {
            var testable = new WrappedSqlDynamicParameters();

            testable.Add("IsTrue", SqlDbType.Bit, true);
            testable.AddParameters(new SqlCommand()); // Faking Command execution
            ((bool)testable.ParameterValues["IsTrue"]).Should().BeTrue();
            testable.SqlDbTypes["IsTrue"].Should().Be(SqlDbType.Bit);
            testable.ParameterDirections["IsTrue"].Should().Be(ParameterDirection.Input);
            var internalTestable = (SqlParameter)testable.ParameterDbDataObject["IsTrue"];

            internalTestable.ParameterName.Should().Be("IsTrue");
            ((bool)internalTestable.Value).Should().BeTrue();
            internalTestable.DbType.Should().Be(DbType.Boolean);
            internalTestable.SqlDbType.Should().Be(SqlDbType.Bit);
            internalTestable.Direction.Should().Be(ParameterDirection.Input);
            internalTestable.Size.Should().Be(0);
        }
Пример #9
0
        public void Add_IntParameter_StoredCorrectly()
        {
            var testable = new WrappedSqlDynamicParameters();

            testable.Add("Integer", SqlDbType.Int, 777);
            testable.AddParameters(new SqlCommand()); // Faking Command execution
            testable.ParameterValues["Integer"].Should().Be(777);
            testable.SqlDbTypes["Integer"].Should().Be(SqlDbType.Int);
            testable.ParameterDirections["Integer"].Should().Be(ParameterDirection.Input);
            var internalTestable = (SqlParameter)testable.ParameterDbDataObject["Integer"];

            internalTestable.ParameterName.Should().Be("Integer");
            internalTestable.Value.Should().Be(777);
            internalTestable.SqlDbType.Should().Be(SqlDbType.Int);
            internalTestable.DbType.Should().Be(DbType.Int32);
            internalTestable.Direction.Should().Be(ParameterDirection.Input);
            internalTestable.Size.Should().Be(0);
        }
Пример #10
0
        public void Add_NCharParameter_StoredCorrectly()
        {
            var testable = new WrappedSqlDynamicParameters();

            testable.Add("Valsts", SqlDbType.NChar, "Latvijas Republika");
            testable.AddParameters(new SqlCommand()); // Faking Command execution
            testable.ParameterValues["Valsts"].Should().Be("Latvijas Republika");
            testable.SqlDbTypes["Valsts"].Should().Be(SqlDbType.NChar);
            testable.ParameterDirections["Valsts"].Should().Be(ParameterDirection.Input);
            var internalTestable = (SqlParameter)testable.ParameterDbDataObject["Valsts"];

            internalTestable.ParameterName.Should().Be("Valsts");
            internalTestable.Value.Should().Be("Latvijas Republika");
            internalTestable.SqlDbType.Should().Be(SqlDbType.NChar);
            internalTestable.DbType.Should().Be(DbType.StringFixedLength);
            internalTestable.Direction.Should().Be(ParameterDirection.Input);
            internalTestable.Size.Should().Be(4000);
        }
Пример #11
0
        public void Add_DateTimeParameter_StoredCorrectly()
        {
            var      testable = new WrappedSqlDynamicParameters();
            DateTime bd       = DateTime.Now;

            testable.Add("Birthday", SqlDbType.DateTime, bd);
            testable.AddParameters(new SqlCommand()); // Faking Command execution
            ((DateTime)testable.ParameterValues["Birthday"]).Should().BeCloseTo(bd, TimeSpan.FromSeconds(2));
            testable.SqlDbTypes["Birthday"].Should().Be(SqlDbType.DateTime);
            testable.ParameterDirections["Birthday"].Should().Be(ParameterDirection.Input);
            var internalTestable = (SqlParameter)testable.ParameterDbDataObject["Birthday"];

            internalTestable.ParameterName.Should().Be("Birthday");
            ((DateTime)internalTestable.Value).Should().BeCloseTo(bd, TimeSpan.FromSeconds(2));
            internalTestable.DbType.Should().Be(DbType.DateTime);
            internalTestable.SqlDbType.Should().Be(SqlDbType.DateTime);
            internalTestable.Direction.Should().Be(ParameterDirection.Input);
            internalTestable.Size.Should().Be(0);
        }
Пример #12
0
        public void Add_Existing_IsUpdated()
        {
            var cmd = new SqlCommand();

            cmd.Parameters.Add("Already", SqlDbType.Int, 13);
            var testable = new WrappedSqlDynamicParameters();

            testable.Add("Already", SqlDbType.Int, 12);
            testable.Add("New", SqlDbType.NVarChar, "this is new");
            testable.AddParameters(cmd); // Faking Command execution
            testable.ParameterNames.Should().HaveCount(2, "Existing param with same name should be reused!");
            testable.ParameterValues["Already"].Should().Be(12);
            testable.SqlDbTypes["Already"].Should().Be(SqlDbType.Int);
            testable.ParameterDirections["Already"].Should().Be(ParameterDirection.Input);
            testable.ParameterDbDataObject.Count.Should().Be(2);
            var internalTestable = (SqlParameter)testable.ParameterDbDataObject["Already"];

            internalTestable.Value.Should().Be(12);
            internalTestable.DbType.Should().Be(DbType.Int32);
            internalTestable.Direction.Should().Be(ParameterDirection.Input);
            internalTestable.Size.Should().Be(13);
        }