public void SimpleSelect_Expect_CorrectQuery()
        {
            var testPocoMetaData = _metaDataModelBuilder.Build(typeof(TestPoco));

            var command = builder.From(testPocoMetaData).Build();

            var expectedQuery = new StringBuilder();

            expectedQuery.AppendLine("SELECT *");
            expectedQuery.AppendLine("FROM [Schema].[Table]");

            command.CommandText.Should().Be(expectedQuery.ToString());
            command.Parameters.Should().HaveCount(0);
        }
Beispiel #2
0
        public void CallBuild_WithPocoWithoutKeysAndRowVersion_Expect_CorrectStatement()
        {
            var testPocoMetaData = _metaDataModelBuilder.Build(typeof(TestPoco));

            testPocoMetaData.PrimaryKey.Clear();
            deleteStatementBuilder.Options.UseRowVersionForDelete = false;

            var result = deleteStatementBuilder.Build(testPocoMetaData);

            var sb = new StringBuilder();

            sb.AppendLine("DELETE FROM [Schema].[Table]");

            result.CommandText.Should().Be(sb.ToString());
            result.Parameters.Should().HaveCount(0);
        }
Beispiel #3
0
        public void CallBuild_WithoutDatabaseGeneratedKeys_ExpectCorrectQuery()
        {
            var testPocoMetaData = _metaDataModelBuilder.Build(typeof(TestPoco));

            testPocoMetaData.PrimaryKey.Clear();

            var expected = new StringBuilder();

            expected.Append("INSERT INTO [Schema].[Table](Data,Amount,Binary,Image)");
            expected.Append(" OUTPUT inserted.RowVer");
            expected.Append(" VALUES (@Data,@Amount,@Binary,@Image)");

            var result = _insertStatementBuilder.Build(testPocoMetaData);

            result.CommandText.Should().Be(expected.ToString());
            result.Parameters.Should().HaveCount(4);
        }
Beispiel #4
0
        public void CallBuild_withoutKeys_Expect_CorrectCommand()
        {
            _updateStatementBuilder.Options.UseRowVersionForUpdate = false;

            var testPocoMetaData = _metaDataModelBuilder.Build(typeof(TestPoco));

            testPocoMetaData.PrimaryKey.Clear();

            var expected = new StringBuilder();

            expected.AppendLine("UPDATE [Schema].[Table] SET");
            expected.AppendLine("Data=@Data, Amount=@Amount, Binary=@Binary, Image=@Image");

            var result = _updateStatementBuilder.Build(testPocoMetaData);

            result.CommandText.Should().Be(expected.ToString());
            result.Parameters.Should().HaveCount(4);
        }
        public void CallBuild_WithTestPoco_Expect_CorrectMetaData()
        {
            var result = modelBuilder.Build(typeof(TestPoco));

            result.SchemaName.Should().Be("Schema");
            result.TableName.Should().Be("Table");
            result.Fields.Should().HaveCount(6);

            result.Fields.Should().ContainSingle(x => x.Name == "TestId" && x.IsPrimaryKey && !x.IsRowVersion &&
                                                 x.IsDatabaseGeneratedKey && x.DbColumnName == "Id" && x.DbColumnType == "int");

            result.Fields.Should().ContainSingle(x => (x.Name == "DataField") &&
                                                 !x.IsPrimaryKey && !x.IsDatabaseGeneratedKey && !x.IsRowVersion &&
                                                 (x.DbColumnName == "Data") && (x.DbColumnType == "varchar") &&
                                                 (x.Size == "200") && string.IsNullOrEmpty(x.Precision));

            result.Fields.Should().ContainSingle(x => (x.Name == "AmountField") &&
                                                 !x.IsPrimaryKey && !x.IsDatabaseGeneratedKey && !x.IsRowVersion &&
                                                 (x.DbColumnName == "Amount") && (x.DbColumnType == "decimal") &&
                                                 (x.Size == "8") && (x.Precision == "3"));

            result.Fields.Should().ContainSingle(x => (x.Name == "BinaryData") &&
                                                 !x.IsPrimaryKey && !x.IsDatabaseGeneratedKey && !x.IsRowVersion &&
                                                 (x.DbColumnName == "Binary") && (x.DbColumnType == "varbinary") &&
                                                 (x.Size == "max") && string.IsNullOrEmpty(x.Precision));

            result.Fields.Should().ContainSingle(x => (x.Name == "ImageData") &&
                                                 !x.IsPrimaryKey && !x.IsDatabaseGeneratedKey && !x.IsRowVersion &&
                                                 (x.DbColumnName == "Image") && (x.DbColumnType == "image") &&
                                                 x.Size == "max" && string.IsNullOrEmpty(x.Precision));

            result.Fields.Should().ContainSingle(x => x.Name == "RowVer" &&
                                                 !x.IsPrimaryKey && !x.IsDatabaseGeneratedKey && x.IsRowVersion &&
                                                 x.DbColumnName == "RowVer" && x.DbColumnType == "Rowversion" &&
                                                 x.Size == "max" && string.IsNullOrEmpty(x.Precision));
        }