public void TestIfNegativeItemsPerPageNumberCrashesPagination() { var dataRequest = TestCommons.CreateDataRequest(); dataRequest.ItemsPerPage = -1000; dataRequest.CurrentPage = 2; dataRequest.Filters = new FilterItem[] { // We expect two results with this filter new FilterItem { Name = "Name", Criterion = FilterCriterion.StringContains, Parameter = "white" } }; dataRequest.Ordering = new OrderingItem[] { new OrderingItem { Name = "Name" } }; var query = Person.GetPersonQuery(); var dataResult = query .Proccess(dataRequest); Assert.AreEqual(2, dataResult.ItemsTotal); Assert.AreEqual(1, dataResult.ItemsPerPage); Assert.AreEqual(2, dataResult.PageCount); Assert.AreEqual(2, dataResult.CurrentPage); }
public void TestIfSelectingNestedPropertyWorks() { var dataRequest = TestCommons.CreateDataRequest(); dataRequest.Filters = new FilterItem[] { new FilterItem { Name = "Name", Criterion = FilterCriterion.Equal, Parameter = "john doe" } }; dataRequest.Select = new string[] { "Name", "ContactInfo.Email", }; var query = Person.GetPersonQuery(); var newQuery = query .FilterByDataRequest(dataRequest) .SelectByDataRequest(dataRequest); Assert.AreEqual(1, newQuery.Count()); Assert.AreEqual("*****@*****.**", newQuery.First().Email); }
public void TestIfSelectingOrderingAndGroupingWorks() { var dataRequest = TestCommons.CreateDataRequest(); dataRequest.Grouping = "Gender"; dataRequest.Select = new string[] { "Name", "Gender" }; dataRequest.Ordering = new OrderingItem[] { new OrderingItem { Name = "Gender" }, new OrderingItem { Name = "Name", Descending = true } }; var query = Person.GetPersonQuery(); var newQuery = query .OrderByDataRequest(dataRequest) .SelectByDataRequest(dataRequest) .GroupByDataRequest(dataRequest); // Two groups: Male and Female Assert.AreEqual(2, newQuery.Count()); // Ordered by Gender asc/Name dsc, Assert.AreEqual("White Death", newQuery.ToDynamicList <GroupedData>().First().Values.First().Name); }
public void TestIfPaginationWorks() { var dataRequest = TestCommons.CreateDataRequest(); dataRequest.ItemsPerPage = 1; dataRequest.CurrentPage = 2; dataRequest.Filters = new FilterItem[] { // We expect two results with this filter new FilterItem { Name = "Name", Criterion = FilterCriterion.StringContains, Parameter = "white" } }; dataRequest.Ordering = new OrderingItem[] { new OrderingItem { Name = "Name" } }; var query = Person.GetPersonQuery(); var dataResult = query .Proccess(dataRequest); Assert.AreEqual(2, dataResult.ItemsTotal); Assert.AreEqual(1, dataResult.ItemsPerPage); Assert.AreEqual(2, dataResult.PageCount); Assert.AreEqual(2, dataResult.CurrentPage); Assert.AreEqual("White Death", dataResult.Items.ToDynamicList().First().Name); }
public static void Main(string[] args) { foreach (var arg in args) { if (arg.Equals("--help")) { Console.Write(CommandLineUtil.HelpText(cmdLineExample, typeof(LocalProjectRunnerArguments))); return; } } var cmdOptions = CommandLineUtil.ParseArguments <CommandLineOptions>(args); if (cmdOptions != null) { if (cmdOptions.ConfigurationFilePath != null) { TestCommons.RunWithConfiguration(File.ReadAllText(cmdOptions.ConfigurationFilePath)); } else { string[] unknownArgs = new string[0]; Type runnerArgumentsType = cmdOptions.TestSource.GetArgumentsType(); int firstUnknownArg = CommandLineUtil.FindFirstUknownArg(args, runnerArgumentsType); if (firstUnknownArg >= 0) { unknownArgs = args.Skip(firstUnknownArg).ToArray(); } ProjectRunnerArguments runnerArgs = CommandLineUtil.ParseArguments(args, runnerArgumentsType) as ProjectRunnerArguments; runnerArgs.TestingFrameworkArguments = unknownArgs; TestCommons.RunWithArgs(runnerArgs); } } }
public void TestIfMultipleGroupingWorks() { var dataRequest = TestCommons.CreateDataRequest(); dataRequest.Grouping = "x => new { x.Gender, x.BirthCountry }"; dataRequest.Ordering = new OrderingItem[] { new OrderingItem { Name = "Gender", Descending = true }, new OrderingItem { Name = "BirthCountry" } }; var query = Person.GetPersonQuery(); var result = query.Proccess(dataRequest); /* Three countries: (FL)Fantasy Land, (RUS)Russia, (US)United States * Two genders: (M)Male, (F)Female * Four groups: M-RUS, M-US, F-FL, F-US */ Assert.AreEqual(5, result.Items.AsQueryable().Count()); // Ordered by Gender dsc/BirthCountry asc Assert.AreEqual("Snow White", result.Items.ToDynamicList <GroupedData>().First().Values.First().Name); }
public void TestIfChangingMethodProcessingOrderWorks() { var dataRequest = TestCommons.CreateDataRequest(); dataRequest.Methods = new HashSet <ProcessingMethod> { ProcessingMethod.Group, ProcessingMethod.Select, ProcessingMethod.Order }; dataRequest.Grouping = "BirthCountry"; dataRequest.Select = new string[] { "Key as Country", "Values.Count as PeopleCount" }; dataRequest.Ordering = new OrderingItem[] { new OrderingItem { Name = "Country" } }; var query = Person.GetPersonQuery(); var result = query.Proccess(dataRequest); // Four countries: Brazil, Fantasy Land, Russia, United States Assert.AreEqual(4, result.Items.Count()); // Ordered by BirthCountry, so Brazil must be the first item Assert.AreEqual("Brazil", result.Items.First().Country); // Ordered by BirthCountry, so USA must be the last item Assert.AreEqual(3, result.Items.Last().PeopleCount); }
public void TestIfAdvancedAndTraditionalFiltersWorkTogether() { var dataRequest = TestCommons.CreateDataRequest(); dataRequest.Operators = new FilterOperator[] { FilterOperator.And }; dataRequest.Filters = new FilterItem[] { new FilterItem { IsAdvanced = true, AdvancedQuery = "np(Addresses.Count) > 1" }, new FilterItem { Name = "Name", Criterion = FilterCriterion.StringContains, Parameter = "snow" }, }; var query = Person.GetPersonQuery(); var newQuery = query.FilterByDataRequest(dataRequest); Assert.AreEqual(1, newQuery.Count()); Assert.AreEqual("Snow White", newQuery.First().Name); }
public void TestIfSelectingWorks() { var dataRequest = TestCommons.CreateDataRequest(); dataRequest.Filters = new FilterItem[] { new FilterItem { Name = "Name", Criterion = FilterCriterion.Equal, Parameter = "john doe" } }; dataRequest.Select = new string[] { "Name", "Age" }; var query = Person.GetPersonQuery(); var newQuery = query .FilterByDataRequest(dataRequest) .SelectByDataRequest(dataRequest); Assert.AreEqual(1, newQuery.Count()); Assert.AreEqual("John Doe", newQuery.First().Name); }
public DataRequest CreateDataRequestWithTwoFilters() { var dataRequest = TestCommons.CreateDataRequest(); dataRequest.Filters = this.CreateFilterItemCollection(); dataRequest.Operators = new FilterOperator[] { FilterOperator.And }; return(dataRequest); }
public void TestIfInvalidGroupingThrowsException() { var dataRequest = TestCommons.CreateDataRequest(); dataRequest.Grouping = "FooBar"; var query = Person.GetPersonQuery(); Assert.ThrowsException <ArgumentException>(() => { var newQuery = query .GroupByDataRequest(dataRequest); }); }
public void TestIfOrderingWorks() { var dataRequest = TestCommons.CreateDataRequest(); dataRequest.Ordering = new OrderingItem[] { new OrderingItem { Name = "Name" } }; var query = Person.GetPersonQuery(); var newQuery = query.OrderByDataRequest(dataRequest); Assert.AreEqual("Alicia Florick", newQuery.First().Name); }
public void TestIfNestedPropertyOrderingWorks() { var dataRequest = TestCommons.CreateDataRequest(); dataRequest.Ordering = new OrderingItem[] { new OrderingItem { Name = "ContactInfo != null ? ContactInfo.Email : string.Empty" } }; var query = Person.GetPersonQuery(); var newQuery = query.OrderByDataRequest(dataRequest); Assert.IsNull(newQuery.First().ContactInfo); Assert.AreEqual("*****@*****.**", newQuery.Skip(2).First().ContactInfo.Email); }
public void TestIfReverseOrderingWorks() { var dataRequest = TestCommons.CreateDataRequest(); dataRequest.Ordering = new OrderingItem[] { new OrderingItem { Name = "Age", Descending = true } }; var query = Person.GetPersonQuery(); var newQuery = query.OrderByDataRequest(dataRequest); Assert.AreEqual(10, newQuery.Last().Age); }
public void TestIfAdvancedFilterWorks() { var dataRequest = TestCommons.CreateDataRequest(); dataRequest.Filters = new FilterItem[] { new FilterItem { IsAdvanced = true, AdvancedQuery = "np(ContactInfo.Email) == \"[email protected]\"" } }; var query = Person.GetPersonQuery(); var newQuery = query.FilterByDataRequest(dataRequest); Assert.AreEqual(1, newQuery.Count()); }
public DataRequest CreateDataRequestWithExpressions() { var dataRequest = TestCommons.CreateDataRequest(); dataRequest.Expressions = new FilterExpression[] { new FilterExpression { Filters = this.CreateFilterItemCollection(), Operators = new FilterOperator[] { FilterOperator.And } }, new FilterExpression { Filters = new FilterItem[] { new FilterItem { Name = "Name", Criterion = FilterCriterion.StringContains, Parameter = "Snow White", MatchCase = true }, new FilterItem { Name = "Age", Criterion = FilterCriterion.GreaterThan, Parameter = 100 } }, Operators = new FilterOperator[] { FilterOperator.And } } }; dataRequest.Operators = new FilterOperator[] { FilterOperator.Or }; return(dataRequest); }
public void TestIfInvalidPropertyNameThrowsException() { var dataRequest = TestCommons.CreateDataRequest(); dataRequest.Select = new string[] { "Name", "Foo Bar" }; var query = Person.GetPersonQuery(); Assert.ThrowsException <ArgumentException>(() => { var newQuery = query .FilterByDataRequest(dataRequest) .SelectByDataRequest(dataRequest); }); }
public void TestIfInvalidPropertyNameThrowsException() { var dataRequest = TestCommons.CreateDataRequest(); dataRequest.Ordering = new OrderingItem[] { new OrderingItem { Name = "FooBar" } }; var query = Person.GetPersonQuery(); Assert.ThrowsException <ArgumentException>(() => { var newQuery = query.OrderByDataRequest(dataRequest); }); }
public void TestIfQueryIsFilteredByGuidIsNull() { var dataRequest = TestCommons.CreateDataRequest(); dataRequest.Filters = new FilterItem[] { new FilterItem { Name = "Id", Criterion = FilterCriterion.NotNull, Not = true } }; var query = Person.GetPersonQuery(); var newQuery = query.FilterByDataRequest(dataRequest); Assert.AreEqual(5, newQuery.Count()); }
public void TestIfQueryIsFilteredByLessThan() { var dataRequest = TestCommons.CreateDataRequest(); dataRequest.Filters = new FilterItem[] { new FilterItem { Name = "Age", Criterion = FilterCriterion.LessThan, Parameter = 22 } }; var query = Person.GetPersonQuery(); var newQuery = query.FilterByDataRequest(dataRequest); Assert.AreEqual(2, newQuery.Count()); }
public void TestIfQueryIsFilteredByEnumEquals() { var dataRequest = TestCommons.CreateDataRequest(); dataRequest.Filters = new FilterItem[] { new FilterItem { Name = "Gender", Criterion = FilterCriterion.Equal, Parameter = 1 } }; var query = Person.GetPersonQuery(); var newQuery = query.FilterByDataRequest(dataRequest); Assert.AreEqual(2, newQuery.Count()); }
public void TestIfQueryIsFilteredByStringContains() { var dataRequest = TestCommons.CreateDataRequest(); dataRequest.Filters = new FilterItem[] { new FilterItem { Name = "Name", Criterion = FilterCriterion.StringContains, Parameter = "white" } }; var query = Person.GetPersonQuery(); var newQuery = query.FilterByDataRequest(dataRequest); Assert.AreEqual(2, newQuery.Count()); }
public void TestIfDiacriticsAreIgnored() { var dataRequest = TestCommons.CreateDataRequest(); dataRequest.Filters = new FilterItem[] { new FilterItem { Name = "Name", Criterion = FilterCriterion.StringContains, Parameter = "joão da sílva conceição", } }; var query = Person.GetPersonQuery(); var newQuery = query.FilterByDataRequest(dataRequest); Assert.AreEqual(1, newQuery.Count()); }
public void TestIfQueryIsFilteredByLessThan() { var dataRequest = TestCommons.CreateDataRequest(); dataRequest.Filters = new FilterItem[] { new FilterItem { Name = "BirthDate", Criterion = FilterCriterion.LessThan, Parameter = $"{DateTime.Now.Year - 22}-01-01T00:00:00" } }; var query = Person.GetPersonQuery(); var newQuery = query.FilterByDataRequest(dataRequest); Assert.AreEqual(3, newQuery.Count()); }
public void TestIfQueryFilteredByGuidUnsupportedCriterionThrowsException() { var dataRequest = TestCommons.CreateDataRequest(); dataRequest.Filters = new FilterItem[] { new FilterItem { Name = "Id", Criterion = FilterCriterion.StringStartsWith, Parameter = Guid.Empty } }; var query = Person.GetPersonQuery(); Assert.ThrowsException <ArgumentOutOfRangeException>(() => { var newQuery = query.FilterByDataRequest(dataRequest); }); }
public void TestIfQueryIsFilteredByGuidEquals() { var dataRequest = TestCommons.CreateDataRequest(); dataRequest.Filters = new FilterItem[] { new FilterItem { Name = "Id", Criterion = FilterCriterion.Equal, Parameter = new Guid("74a46e33-09b3-4f90-9818-7ca3609f887f") } }; var query = Person.GetPersonQuery(); var newQuery = query.FilterByDataRequest(dataRequest); Assert.AreEqual(1, newQuery.Count()); Assert.AreEqual("Peter Pan", newQuery.First().Name); }
public void TestIfQueryIsFilteredByEquals() { var dataRequest = TestCommons.CreateDataRequest(); dataRequest.Filters = new FilterItem[] { new FilterItem { Name = "Age", Criterion = FilterCriterion.Equal, Parameter = 21 } }; var query = Person.GetPersonQuery(); var newQuery = query.FilterByDataRequest(dataRequest); Assert.AreEqual(1, newQuery.Count()); Assert.AreEqual(newQuery.First().Name, "John Doe"); }
public void TestIfQueryFilteredByNumberUnsupportedCriterionThrowsException() { var dataRequest = TestCommons.CreateDataRequest(); dataRequest.Filters = new FilterItem[] { new FilterItem { Name = "Age", Criterion = FilterCriterion.StringContains, Parameter = 22 } }; var query = Person.GetPersonQuery(); Assert.ThrowsException <ArgumentOutOfRangeException>(() => { var newQuery = query.FilterByDataRequest(dataRequest); }); }
public void TestIfQueryFilteredByStringUnsupportedCriterionThrowsException() { var dataRequest = TestCommons.CreateDataRequest(); dataRequest.Filters = new FilterItem[] { new FilterItem { Name = "Name", Criterion = FilterCriterion.GreaterThanOrEqual, Parameter = "white" } }; var query = Person.GetPersonQuery(); Assert.ThrowsException <ArgumentOutOfRangeException>(() => { var newQuery = query.FilterByDataRequest(dataRequest); }); }
public void TestIfMatchCaseAffectsStringDataResults() { var dataRequest = TestCommons.CreateDataRequest(); dataRequest.Filters = new FilterItem[] { new FilterItem { Name = "Name", Criterion = FilterCriterion.Equal, Parameter = "john doe", MatchCase = true } }; var query = Person.GetPersonQuery(); var newQuery = query.FilterByDataRequest(dataRequest); Assert.AreEqual(0, newQuery.Count()); }