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); }
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); }
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); }
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); }
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); }
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); }