public void Test_CheckCreatedCriteria() { var inputs = new List <UserItem>(); for (int i = 0; i < 12; i++) { var item = new UserItem(null, "test" + i, null, "TestUser" + i, null, null, null, null, null, null, null); item.SetCreated(new DateTimeOffset(2018, i + 1, 1, 1, 1, 1, TimeSpan.Zero)); inputs.Add(item); } var result = new List <UserItem>(); // StartCreated != null && EndCreated != null var query = new UserQueryInput { StartCreated = new DateTimeOffset(2018, 3, 1, 1, 1, 1, TimeSpan.Zero), EndCreated = new DateTimeOffset(2018, 8, 1, 1, 1, 1, TimeSpan.Zero) }; result = new List <UserItem>(); foreach (var item in inputs) { if (query.CheckCriteria(item)) { result.Add(item); } } Assert.AreEqual(6, result.Count); // StartCreated = null query = new UserQueryInput { StartCreated = null, EndCreated = new DateTimeOffset(2018, 8, 1, 1, 1, 1, TimeSpan.Zero) }; result = new List <UserItem>(); foreach (var item in inputs) { if (query.CheckCriteria(item)) { result.Add(item); } } Assert.AreEqual(8, result.Count); // EndCreated = null result = new List <UserItem>(); query = new UserQueryInput { StartCreated = new DateTimeOffset(2018, 8, 1, 1, 1, 1, TimeSpan.Zero), EndCreated = null }; foreach (var item in inputs) { if (query.CheckCriteria(item)) { result.Add(item); } } Assert.AreEqual(5, result.Count); // StartCreated = null and EndCreated = null query = new UserQueryInput { StartCreated = null, EndCreated = null }; result = new List <UserItem>(); foreach (var item in inputs) { if (query.CheckCriteria(item)) { result.Add(item); } } Assert.AreEqual(12, result.Count); }