예제 #1
0
        public void FinishTodo_AddsEvent()
        {
            var user = new User()
            {
                Events    = new List <BaseEvent>(),
                UserTodos = new List <TodoItem>()
                {
                    new TodoItem()
                    {
                        Completed   = false,
                        Description = "desc",
                        Id          = 1,
                        TargetDate  = DateTime.Now,
                        FinishTime  = null,
                    }
                }
            };

            _ctx.Configure().GetUserById(1).Returns(user);

            _userService.MarkAsCompleted(1, DateTime.Now, 1);

            Assert.Single(user.Events);
            Assert.Single(user.Events.OfType <TodoCompletedEvent>());

            var @event = user.Events.OfType <TodoCompletedEvent>().Single();

            Assert.Equal(user.UserTodos.Single(), @event.CompletedItem);
            Assert.Equal(DateTime.Now.Date, @event.Date.Date);
            Assert.False(@event.Hidden);
        }