示例#1
0
        public void ShouldFilterByAfterCondition()
        {
            FilterCondition condition = new FilterCondition
            {
                Field = new ConversationField {
                    Name = "Last Message Sent", DataType = FieldDataType.DateTime
                },
                MatchType = ConditionMatchType.After,
                Value     = "@Yesterday"
            };

            var expression = new LastMessageSentExpression().Build(condition);

            var conditions = new List <Conversation>
            {
                new Conversation {
                    Id = 1, LastMessageSentTime = DateTime.UtcNow
                },
                new Conversation {
                    Id = 2, LastMessageSentTime = DateTime.UtcNow.AddDays(-2)
                }
            }.AsQueryable();

            var result = conditions.Where(expression).ToList();

            Assert.Equal(1, result.Count);
            Assert.Equal(1, result.First().Id);
        }
示例#2
0
        public void ShouldFilterByBetweenCondition()
        {
            FilterCondition condition = new FilterCondition
            {
                Field = new ConversationField {
                    Name = "Last Message Sent", 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 LastMessageSentExpression().Build(condition);

            var conditions = new List <Conversation>
            {
                new Conversation {
                    Id = 1, LastMessageSentTime = DateTime.UtcNow
                },
                new Conversation {
                    Id = 2, LastMessageSentTime = DateTime.UtcNow.AddDays(-2)
                }
            }.AsQueryable();

            var result = conditions.Where(expression).ToList();

            Assert.Equal(1, result.Count);
            Assert.Equal(2, result.First().Id);
        }
示例#3
0
        public void ShouldCheckValueType()
        {
            FilterCondition condition = new FilterCondition
            {
                Field = new ConversationField {
                    Name = "Last Message Sent", DataType = FieldDataType.DateTime
                },
                MatchType = ConditionMatchType.Is,
                Value     = "0"
            };

            try
            {
                var expression = new LastMessageSentExpression().Build(condition);
            }
            catch (Exception ex)
            {
                Assert.Equal("The value of date time is invalid", ex.Message);
            }
        }