Ejemplo n.º 1
0
        public void Given_AFilterBuilderForATypeWithACustomSchemaThatHasAPageSizeAndPageIndex_When_FilterIsCreated_Then_FilterQueryStringShouldMatchExpectations()
        {
            const int pageIndex = 1;
              const int pageSize = 100;
              using (var context = new TestDbContext())
              {
            var filterBuilder = new FilterBuilder<CustomTestClass>().SkipPages(pageIndex).Take(pageSize);

            var filter = new Filter<CustomTestClass>(context, filterBuilder);

            Assert.AreEqual($"SELECT [StartDateTime] AS [StartDateTime], [Id] AS [Id], [{Contstants.CustomColumnName}] AS [Name], [EndDateTimeOffset] AS [EndDateTimeOffset], [IsActive] AS [IsActive] FROM [{Contstants.CustomSchemaName}].[{Contstants.CustomTableName}] ORDER BY [{Contstants.CustomKeyName}] OFFSET {pageIndex} ROWS FETCH NEXT {pageSize + 1} ROWS ONLY", filter.SqlQueryStringBuilder.ToString());
              }
        }
Ejemplo n.º 2
0
        public void Given_AFilterBuilderForATypeWithACustomSchemaThatShouldReturnAllResultsWithACompoundOrFilter_When_FilterIsCreated_Then_FilterQueryStringShouldMatchExpectations()
        {
            using (var context = new TestDbContext())
              {
            var filterBuilder = new FilterBuilder<CustomTestClass>()
                                                  .Where(tc => tc.Id, NumericFilterType.Equals, 1)
                                                  .Or(tc => tc.Name, StringFilterType.StartsWith, "Foo")
                                                  .ReturnAllResults();

            var filter = new Filter<CustomTestClass>(context, filterBuilder);

            Assert.AreEqual($"SELECT [StartDateTime] AS [StartDateTime], [Id] AS [Id], [{Contstants.CustomColumnName}] AS [Name], [EndDateTimeOffset] AS [EndDateTimeOffset], [IsActive] AS [IsActive] FROM [{Contstants.CustomSchemaName}].[{Contstants.CustomTableName}] WHERE ( [Id] = @p0 OR [{Contstants.CustomColumnName}] LIKE @p1 + '%' ) ORDER BY [{Contstants.CustomKeyName}]", filter.SqlQueryStringBuilder.ToString());
            Assert.AreEqual("p0", ((SqlParameter)filter.Parameters[0]).ParameterName);
            Assert.AreEqual(1, ((SqlParameter)filter.Parameters[0]).Value);
            Assert.AreEqual("p1", ((SqlParameter)filter.Parameters[1]).ParameterName);
            Assert.AreEqual("Foo", ((SqlParameter)filter.Parameters[1]).Value);
              }
        }
Ejemplo n.º 3
0
 public void Given_AType_When_MapDbPropertiesIsInvoked_Then_MappedPropertiesShouldContainTheTableName()
 {
     using (var context = new TestDbContext())
       {
     var properties = context.MapDbProperties<TestClass>();
     Assert.AreEqual("TestClasses", properties.DbTableName);
       }
 }
Ejemplo n.º 4
0
        public void Given_AType_When_MapDbPropertiesIsInvoked_Then_MappedPropertiesShouldContainTheProperties()
        {
            using (var context = new TestDbContext())
              {
            var properties = context.MapDbProperties<TestClass>();

            Assert.AreEqual("Id", properties.ObjectPropertyColumnNameMapper["Id"]);
            Assert.AreEqual("Name", properties.ObjectPropertyColumnNameMapper["Name"]);
            Assert.AreEqual("StartDateTime", properties.ObjectPropertyColumnNameMapper["StartDateTime"]);
            Assert.AreEqual("EndDateTimeOffset", properties.ObjectPropertyColumnNameMapper["EndDateTimeOffset"]);
            Assert.AreEqual("IsActive", properties.ObjectPropertyColumnNameMapper["IsActive"]);
              }
        }
Ejemplo n.º 5
0
 public void Given_AType_When_MapDbPropertiesIsInvoked_Then_MappedPropertiesShouldContainThePrimaryKey()
 {
     using (var context = new TestDbContext())
       {
     var properties = context.MapDbProperties<TestClass>();
     Assert.AreEqual("Id", properties.PrimaryKeyPropertyName);
       }
 }
Ejemplo n.º 6
0
 public void Given_ATypeWithACustomTableName_When_MapDbPropertiesIsInvoked_Then_MappedPropertiesShouldContainTheCustomTableName()
 {
     using (var context = new TestDbContext())
       {
     var properties = context.MapDbProperties<CustomTestClass>();
     Assert.AreEqual((object)Contstants.CustomTableName, properties.DbTableName);
       }
 }
Ejemplo n.º 7
0
 public void Given_ATypeWithACustomPrimaryKey_When_MapDbPropertiesIsInvoked_Then_MappedPropertiesShouldContainTheCustomPrimaryKey()
 {
     using (var context = new TestDbContext())
       {
     var properties = context.MapDbProperties<CustomTestClass>();
     Assert.AreEqual((object)Contstants.CustomKeyName, properties.PrimaryKeyPropertyName);
     Assert.AreEqual("Id", properties.ObjectPropertyColumnNameMapper["Id"]);
     Assert.AreEqual("StartDateTime", properties.ObjectPropertyColumnNameMapper["StartDateTime"]);
     Assert.AreEqual("EndDateTimeOffset", properties.ObjectPropertyColumnNameMapper["EndDateTimeOffset"]);
     Assert.AreEqual("IsActive", properties.ObjectPropertyColumnNameMapper["IsActive"]);
       }
 }
Ejemplo n.º 8
0
        public void Given_ATypeWithACustomColumnMapping_When_MapDbPropertiesIsInvoked_Then_MappedPropertiesShouldContainTheCustomMapping()
        {
            using (var context = new TestDbContext())
              {
            var properties = context.MapDbProperties<CustomTestClass>();

            Assert.AreEqual((object)Contstants.CustomColumnName, properties.ObjectPropertyColumnNameMapper["Name"]);
              }
        }
Ejemplo n.º 9
0
        public void Given_AFilterBuilder_When_FilterIsCreated_Then_FilterQueryStringShouldMatchExpectations()
        {
            using (var context = new TestDbContext())
              {
            var filterBuilder = new FilterBuilder<TestClass>().Where(tc => tc.Id, NumericFilterType.Equals, 1);

            var filter = new Filter<TestClass>(context, filterBuilder);

            Assert.AreEqual($"SELECT [Id] AS [Id], [Name] AS [Name], [StartDateTime] AS [StartDateTime], [EndDateTimeOffset] AS [EndDateTimeOffset], [IsActive] AS [IsActive] FROM [dbo].[TestClasses] WHERE [Id] = @p0 ORDER BY [Id] OFFSET 0 ROWS FETCH NEXT {filterBuilder.Take + 1} ROWS ONLY", filter.SqlQueryStringBuilder.ToString());
            Assert.AreEqual("p0", ((SqlParameter)filter.Parameters.First()).ParameterName);
            Assert.AreEqual(1, ((SqlParameter)filter.Parameters.First()).Value);
              }
        }
Ejemplo n.º 10
0
        public void Given_AFilterBuilderWithACompoundOrAndNestedAndFilter_When_FilterIsCreated_Then_FilterQueryStringShouldMatchExpectations()
        {
            using (var context = new TestDbContext())
              {
            var filterBuilder = new FilterBuilder<TestClass>()
                                                  .Where(tc => tc.Id, NumericFilterType.Equals, 1)
                                                  .Or(new NumericCriterion<TestObject, int>(t => t.Id, NumericFilterType.Equals, 2)
                                                            .And(new StringCriterion<TestClass>(t => t.Name, StringFilterType.StartsWith, "Foo")));

            var filter = new Filter<TestClass>(context, filterBuilder);

            Assert.AreEqual($"SELECT [Id] AS [Id], [Name] AS [Name], [StartDateTime] AS [StartDateTime], [EndDateTimeOffset] AS [EndDateTimeOffset], [IsActive] AS [IsActive] FROM [dbo].[TestClasses] WHERE ( [Id] = @p0 OR ( [Id] = @p1 AND [Name] LIKE @p2 + '%' ) ) ORDER BY [Id] OFFSET 0 ROWS FETCH NEXT {filterBuilder.Take + 1} ROWS ONLY", filter.SqlQueryStringBuilder.ToString());
            Assert.AreEqual("p0", ((SqlParameter)filter.Parameters[0]).ParameterName);
            Assert.AreEqual(1, ((SqlParameter)filter.Parameters[0]).Value);
            Assert.AreEqual("p1", ((SqlParameter)filter.Parameters[1]).ParameterName);
            Assert.AreEqual(2, ((SqlParameter)filter.Parameters[1]).Value);
            Assert.AreEqual("p2", ((SqlParameter)filter.Parameters[2]).ParameterName);
            Assert.AreEqual("Foo", ((SqlParameter)filter.Parameters[2]).Value);
              }
        }
Ejemplo n.º 11
0
        public void Given_AFilterBuilderThatShouldReturnAllResults_When_FilterIsCreated_Then_FilterQueryStringShouldMatchExpectations()
        {
            const bool returnAllResults = true;

              using (var context = new TestDbContext())
              {
            var filterBuilder = new FilterBuilder<TestClass> { ReturnAllResults = returnAllResults };

            var filter = new Filter<TestClass>(context, filterBuilder);

            Assert.AreEqual("SELECT [Id] AS [Id], [Name] AS [Name], [StartDateTime] AS [StartDateTime], [EndDateTimeOffset] AS [EndDateTimeOffset], [IsActive] AS [IsActive] FROM [dbo].[TestClasses] ORDER BY [Id]", filter.SqlQueryStringBuilder.ToString());
              }
        }
Ejemplo n.º 12
0
        public void Given_AFilterBuilderThatShouldReturnAllResultsWithAWhereFilter_When_FilterIsCreated_Then_FilterQueryStringShouldMatchExpectations()
        {
            using (var context = new TestDbContext())
              {
            var filterBuilder = new FilterBuilder<TestClass> { ReturnAllResults = true };
            filterBuilder.Where(tc => tc.Id, NumericFilterType.Equals, 1);

            var filter = new Filter<TestClass>(context, filterBuilder);

            Assert.AreEqual("SELECT [Id] AS [Id], [Name] AS [Name], [StartDateTime] AS [StartDateTime], [EndDateTimeOffset] AS [EndDateTimeOffset], [IsActive] AS [IsActive] FROM [dbo].[TestClasses] WHERE [Id] = @p0 ORDER BY [Id]", filter.SqlQueryStringBuilder.ToString());
            Assert.AreEqual("p0", ((SqlParameter)filter.Parameters.First()).ParameterName);
            Assert.AreEqual(1, ((SqlParameter)filter.Parameters.First()).Value);
              }
        }
Ejemplo n.º 13
0
        public void Given_AFilterBuilderThatHasAPageSizeAndPageIndex_When_FilterIsCreated_Then_FilterQueryStringShouldMatchExpectations()
        {
            const int pageIndex = 1;
              const int pageSize = 100;
              using (var context = new TestDbContext())
              {
            var filterBuilder = new FilterBuilder<TestClass> { Skip = pageIndex, Take = pageSize };

            var filter = new Filter<TestClass>(context, filterBuilder);

            Assert.AreEqual($"SELECT [Id] AS [Id], [Name] AS [Name], [StartDateTime] AS [StartDateTime], [EndDateTimeOffset] AS [EndDateTimeOffset], [IsActive] AS [IsActive] FROM [dbo].[TestClasses] ORDER BY [Id] OFFSET {pageIndex} ROWS FETCH NEXT {pageSize + 1} ROWS ONLY", filter.SqlQueryStringBuilder.ToString());
              }
        }
Ejemplo n.º 14
0
        public void Given_AFilterBuilderForATypeWithACustomSchemaThatShouldReturnAllResults_When_FilterIsCreated_Then_FilterQueryStringShouldMatchExpectations()
        {
            using (var context = new TestDbContext())
              {
            var filterBuilder = new FilterBuilder<CustomTestClass>().ReturnAllResults();

            var filter = new Filter<CustomTestClass>(context, filterBuilder);

            Assert.AreEqual($"SELECT [StartDateTime] AS [StartDateTime], [Id] AS [Id], [{Contstants.CustomColumnName}] AS [Name], [EndDateTimeOffset] AS [EndDateTimeOffset], [IsActive] AS [IsActive] FROM [{Contstants.CustomSchemaName}].[{Contstants.CustomTableName}] ORDER BY [{Contstants.CustomKeyName}]", filter.SqlQueryStringBuilder.ToString());
              }
        }