public void ShouldFilterByAfterCondition() { FilterCondition condition = new FilterCondition { Field = new ConversationField { Name = "Date Created", DataType = FieldDataType.DateTime }, MatchType = ConditionMatchType.After, Value = "@Yesterday" }; var expression = new CreatedExpression().Build(condition); var conditions = new List <Conversation> { new Conversation { Id = 1, CreatedTime = DateTime.UtcNow }, new Conversation { Id = 2, CreatedTime = DateTime.UtcNow.AddDays(-2) } }.AsQueryable(); var result = conditions.Where(expression).ToList(); Assert.Equal(1, result.Count); Assert.Equal(1, result.First().Id); }
public void ShouldFilterByBetweenCondition() { FilterCondition condition = new FilterCondition { Field = new ConversationField { Name = "Date Created", DataType = FieldDataType.DateTime }, MatchType = ConditionMatchType.Between, Value = DateTime.UtcNow.AddDays(-3).ToString("yyyy-MM-dd hh:mm:ss") + '|' + DateTime.UtcNow.AddDays(-1).ToString("yyyy-MM-dd hh:mm:ss") }; var expression = new CreatedExpression().Build(condition); var conditions = new List <Conversation> { new Conversation { Id = 1, CreatedTime = DateTime.UtcNow }, new Conversation { Id = 2, CreatedTime = DateTime.UtcNow.AddDays(-2) } }.AsQueryable(); var result = conditions.Where(expression).ToList(); Assert.Equal(1, result.Count); Assert.Equal(2, result.First().Id); }
public void ShouldCheckValueType() { FilterCondition condition = new FilterCondition { Field = new ConversationField { Name = "Date Created", DataType = FieldDataType.DateTime }, MatchType = ConditionMatchType.Is, Value = "0" }; try { var expression = new CreatedExpression().Build(condition); } catch (Exception ex) { Assert.Equal("The value of date time is invalid", ex.Message); } }