Esempio n. 1
0
        public void TestAutoIncrementObjNotApplicable()
        {
            MockBO bo = new MockBO();
            InsertStatementGenerator gen = new InsertStatementGenerator(bo, DatabaseConnection.CurrentConnection);
            var statementCol             = gen.Generate();
            InsertSqlStatement statement = (InsertSqlStatement)statementCol.First();

            Assert.AreEqual(null, statement.SupportsAutoIncrementingField);
        }
Esempio n. 2
0
        public void TestSqlStatementTableName()
        {
            MockBO bo = new MockBO();
            InsertStatementGenerator gen = new InsertStatementGenerator(bo, DatabaseConnection.CurrentConnection);
            var statementCol             = gen.Generate();
            InsertSqlStatement statement = (InsertSqlStatement)statementCol.First();

            Assert.AreEqual("MockBO", statement.TableName);
        }
Esempio n. 3
0
        public void TestAutoIncrementObj()
        {
            ClassDef.ClassDefs.Clear();
            TestAutoInc.LoadClassDefWithAutoIncrementingID();
            TestAutoInc bo = new TestAutoInc();
            InsertStatementGenerator gen = new InsertStatementGenerator(bo, DatabaseConnection.CurrentConnection);
            var statementCol             = gen.Generate();
            InsertSqlStatement statement = (InsertSqlStatement)statementCol.First();

            Assert.AreSame(typeof(SupportsAutoIncrementingFieldBO), statement.SupportsAutoIncrementingField.GetType());
        }
Esempio n. 4
0
        public void TestInsertStatementExcludesReadOnlyProps()
        {
            ClassDef.ClassDefs.Clear();
            const string newPropName = "NewProp";
            MockBO       bo          = StatementGeneratorTestHelper.CreateMockBOWithExtraReadOnlyProp(newPropName);

            InsertStatementGenerator gen = new InsertStatementGenerator(bo, DatabaseConnection.CurrentConnection);
            var statementCol             = gen.Generate();
            InsertSqlStatement statement = (InsertSqlStatement)statementCol.First();

            Assert.IsFalse(statement.Statement.ToString().Contains(newPropName));
        }
        public void VerifyGenerateFromModel()
        {
            // Arrange
            var people = new[]
            {
                new PersonModel
                {
                    FirstName = "Johnny",
                    LastName  = "Appleseed",
                    Age       = 24,
                    Gender    = PersonGender.Male,
                    IsDead    = false
                },
                new PersonModel
                {
                    FirstName = "Alberta",
                    LastName  = "Pearseed",
                    Age       = 103,
                    Gender    = PersonGender.Female,
                    IsDead    = true
                }
            };

            // Act
            var statement = InsertSqlStatement.Generate("People", people);
            var query     = statement.GenerateQuery();

            // Assert
            var expected = $@"
INSERT INTO People (FirstName, LastName, Age, Gender, IsDead)
VALUES ('Johnny', 'Appleseed', 24, 1, 0),
('Alberta', 'Pearseed', 103, 2, 1);
";

            foreach (var c in Environment.NewLine)
            {
                expected = expected.Trim(c);
            }
            foreach (var c in Environment.NewLine)
            {
                expected = expected.Trim(c);
            }

            query.ShouldBe(expected);
        }
        public void VerifyGenerateRawData()
        {
            // Arrange
            var          statement = new InsertSqlStatement("MagicTable");
            const string Column1   = "Column_1";
            const string Column2   = "Column_2";
            const string Column3   = "Magical_arbitrary_column";

            statement.Columns.AddRange(new[]
            {
                Column1,
                Column2,
                Column3
            });
            statement.Rows.AddRange(new[]
            {
                new List <object> {
                    "Data 1", 24, true
                },
                new List <object> {
                    "Cool 2", 42, false
                }
            });

            // Act
            var query = statement.GenerateQuery();

            // Assert
            var expected = $@"
INSERT INTO MagicTable ({Column1}, {Column2}, {Column3})
VALUES ('Data 1', 24, 1),
('Cool 2', 42, 0);
";

            foreach (var c in Environment.NewLine)
            {
                expected = expected.Trim(c);
            }
            foreach (var c in Environment.NewLine)
            {
                expected = expected.Trim(c);
            }

            query.ShouldBe(expected);
        }
        public void VerifyInsertWithNullValues()
        {
            // Arrange
            var statement = new InsertSqlStatement("My_magic_table");

            statement.Columns.AddRange(new[] { "Column A", "Column B", "Column C" });
            statement.Rows.Add(new List <object> {
                "Value A", 123, null
            });

            // Act
            string generatedQuery = null;

            Should.NotThrow(() => generatedQuery = statement.GenerateQuery());

            // Assert
            string.IsNullOrEmpty(generatedQuery).ShouldBeFalse();
        }
Esempio n. 8
0
        public void TestAutoIncrementAfterInsert()
        {
            // MockRepository mockRepository = new MockRepository();
            MockSupportsAutoIncrementingID mockSupportsAutoIncrementingID = new MockSupportsAutoIncrementingID();

            InsertSqlStatement sql = new InsertSqlStatement(DatabaseConnection.CurrentConnection, "insert into testautoinc (testfield) values ('testing')");

            sql.TableName = "testautoinc";
            sql.SupportsAutoIncrementingField = mockSupportsAutoIncrementingID;

            DatabaseConnection.CurrentConnection.ExecuteSql(sql);

            long maxNum = 0;

            using (IDataReader reader = DatabaseConnection.CurrentConnection.LoadDataReader("select max(testautoincid) from testautoinc"))
            {
                while (reader.Read())
                {
                    maxNum = reader.GetInt64(0);
                }
            }
            Assert.AreEqual(maxNum, mockSupportsAutoIncrementingID.AutoValue);
        }