Example #1
0
        public void Test_Queryable_ThenByFieldReturnsDescendingQuery()
        {
            // Arrange
            var object1 = new QueryableTestObject("c name", 1, "c typeone");
            var object2 = new QueryableTestObject("f name", 2, "a typetwo");
            var object3 = new QueryableTestObject("a name", 2, "a typetwo");
            var object4 = new QueryableTestObject("a name", 3, "b typethree");

            var queryObject = new List <QueryableTestObject>()
            {
                object1, object2, object3, object4
            }.AsQueryable();

            // Act
            queryObject = queryObject.OrderByField("Type", false).ThenByField("Name", false);

            var queriedResult = queryObject.ToList();

            // Assert
            queriedResult[0].Name.Should().Be("c name");
            queriedResult[0].Type.Should().Be("c typeone");

            queriedResult[1].Name.Should().Be("a name");
            queriedResult[1].Type.Should().Be("b typethree");

            queriedResult[2].Name.Should().Be("f name");
            queriedResult[2].Type.Should().Be("a typetwo");

            queriedResult[3].Name.Should().Be("a name");
            queriedResult[3].Type.Should().Be("a typetwo");

            queriedResult.Should().BeInDescendingOrder(x => x.Type);
        }
Example #2
0
        public void Test_Queryable_OrderByWithDirectionReturnsDescendingQuery()
        {
            // Arrange
            var object1 = new QueryableTestObject("c name", 1, "c typeone");
            var object2 = new QueryableTestObject("a name", 2, "a typetwo");
            var object3 = new QueryableTestObject("b name", 3, "b typethree");

            var queryObject = new List <QueryableTestObject>()
            {
                object1, object2, object3
            }.AsQueryable();

            // Act
            var result = queryObject.OrderByWithDirection(x => x.Name, false);

            var queriedResult = result.ToList();

            // Assert
            result.Should().BeInDescendingOrder(x => x.Name);
        }
Example #3
0
        public void Test_Queryable_SortsByInternalDefaultFieldWhenFieldNameNotSpecified()
        {
            // Arrange
            var object1    = new QueryableTestObject("c name", 1, "c");
            var object2    = new QueryableTestObject("a name", 2, "b");
            var object3    = new QueryableTestObject("b name", 3, "a");
            var nameFilter = new SearchFilter <InternalNameTypeFilter>();

            nameFilter.Ascending = false;
            var queryObject = new List <QueryableTestObject>()
            {
                object1, object2, object3
            }.AsQueryable();

            // Act
            var result = queryObject.PerformSearch(nameFilter).GetAwaiter().GetResult();

            // Assert
            result.FilterResults.Should().BeInDescendingOrder(x => x.Name);
        }
Example #4
0
        public void Test_Queryable_PerformSearchReturnsAscending()
        {
            // Arrange
            var object1    = new QueryableTestObject("c name", 1, "typeone");
            var object2    = new QueryableTestObject("a name", 2, "typeone");
            var object3    = new QueryableTestObject("b name", 3, "typetwo");
            var nameFilter = new SearchFilter <NameFilter>();

            nameFilter.FilterData = new NameFilter("b name");
            var queryObject = new List <QueryableTestObject>()
            {
                object1, object2, object3
            }.AsQueryable();

            // Act
            var result = queryObject.PerformSearch(nameFilter).GetAwaiter().GetResult();

            // Assert
            result.FilterResults.Should().BeInAscendingOrder(x => x.Name);
        }
Example #5
0
        public void Test_PerformSearch_DefaultsToFirstPropertyIfSortFieldDoesntExistOnFilter()
        {
            // Arrange
            var object1 = new QueryableTestObject("c name", 1, "c typeone");
            var object2 = new QueryableTestObject("a name", 2, "a typetwo");
            var object3 = new QueryableTestObject("b name", 3, "b typethree");

            var nameFilter = new SearchFilter <NameTypeFilter>();

            nameFilter.SortBy = "Number";

            var queryObject = new List <QueryableTestObject>()
            {
                object1, object2, object3
            }.AsQueryable();

            // Act
            var result = queryObject.PerformSearch(nameFilter).GetAwaiter().GetResult();

            // Assert
            result.FilterResults.Should().BeInAscendingOrder(x => x.Name);
        }
Example #6
0
        public void Test_PerformSearch_CanSortByASecondaryFieldSetToDescending()
        {
            // Arrange
            var object1 = new QueryableTestObject("c name", 1, "c typeone");
            var object2 = new QueryableTestObject("f name", 2, "a typetwo");
            var object3 = new QueryableTestObject("a name", 2, "a typetwo");
            var object4 = new QueryableTestObject("a name", 3, "b typethree");

            var nameFilter = new SearchFilter <NameTypeFilter>();

            nameFilter.SortBy             = "Type";
            nameFilter.Ascending          = false;
            nameFilter.SecondarySortBy    = "Name";
            nameFilter.SecondaryAscending = false;

            var queryObject = new List <QueryableTestObject>()
            {
                object1, object2, object3, object4
            }.AsQueryable();

            // Act
            var result = queryObject.PerformSearch(nameFilter).GetAwaiter().GetResult();

            // Assert
            result.FilterResults[0].Name.Should().Be("c name");
            result.FilterResults[0].Type.Should().Be("c typeone");

            result.FilterResults[1].Name.Should().Be("a name");
            result.FilterResults[1].Type.Should().Be("b typethree");

            result.FilterResults[2].Name.Should().Be("f name");
            result.FilterResults[2].Type.Should().Be("a typetwo");

            result.FilterResults[3].Name.Should().Be("a name");
            result.FilterResults[3].Type.Should().Be("a typetwo");

            result.FilterResults.Should().BeInDescendingOrder(x => x.Type);
        }