示例#1
0
        public async Task UpdateTodoCommandHandlerTestShouldReturnGenericCommandResultObject()
        {
            var command = new UpdateTodoCommand(Guid.NewGuid(), "Teste", "Teste");

            var todo = new TodoItem("Teste", true, DateTime.Now, "Teste");

            var handler = new UpdateTodoCommandHandler(_toDoRepositoryMock.Object);

            _toDoRepositoryMock.Setup(a => a.GetById(command.Id)).ReturnsAsync(todo);
            _toDoRepositoryMock.Setup(a => a.Update(todo)).ReturnsAsync(todo);

            //Act
            var result = await handler.Handle(command, new CancellationToken());

            result.Success.Should().BeTrue();
            result.Message.Should().Be("Tarefa salva");
        }
示例#2
0
        public async Task Task_Update()
        {
            var connection = TestHelper.GetConnection();
            var options    = TestHelper.GetMockDBOptions(connection);

            try
            {
                using (var context = new AppcentTodoContext(options))
                {
                    var service = new UpdateTodoCommandHandler(context, TestHelper.GetMapperInstance());
                    var command = new UpdateTodoCommand();
                    command.Data = new UpdateTodoRequest
                    {
                        TaskId       = 1,
                        UserName     = "******",
                        Name         = "Task test updated",
                        CategoryId   = 1,
                        TaskPriority = TaskPriority.P1,
                        TaskStatus   = Models.EntityModels.TaskStatus.Todo
                    };
                    var result = await service.Execute(command);

                    Assert.True(result.Result.IsSuccess);
                }

                using (var context = new AppcentTodoContext(options))
                {
                    var count = context.AcTasks.Where(e => e.TaskId == 1 && e.Name == "Task test updated");
                    Assert.Equal(1, count.Count());
                }
            }
            finally
            {
                connection.Close();
            }
        }
 public UpdateTodoCommandHandlerTests()
 {
     fixture            = new Fixture();
     todoRepositoryMock = new Mock <ITodoRepository>();
     sut = new UpdateTodoCommandHandler(todoRepositoryMock.Object);
 }
示例#4
0
文件: Program.cs 项目: llenroc/Cqs
        private static void WorkWithCommandsWithoutIoc()
        {
            System.Console.WriteLine("\n-- No IoC --");

            // Line up some commands to execute
            var itemToCreateThenChange = new Todo {
                Caption = "Feed cat", Category = "Etc"
            };
            var cmd1 = new CreateTodoCommand {
                Data = new Todo {
                    Caption = "I SHOULD BE DELETED", Category = "Etc"
                }
            };                                                                                                          // id will become 1
            var cmd2 = new CreateTodoCommand {
                Data = itemToCreateThenChange
            };                                                                  // id will become 2
            var cmd3 = new CreateTodoCommand {
                Data = new Todo {
                    Caption = "Pay bills", Category = "Etc"
                }
            };                                                                                                // id will become 3
            var cmd4 = new CreateTodoCommand {
                Data = new Todo {
                    Caption = "I DO NOT PASS THE FILTER", Category = "Uncategorized"
                }
            };                                                                                                                        // id will become 3
            var updateCommand = new UpdateTodoCommand {
                Data = new Todo {
                    Id = itemToCreateThenChange.Id, Category = itemToCreateThenChange.Category, Caption = "Feed BOTH cats"
                }
            };
            var deleteCommand = new DeleteTodoCommand {
                Id = 1
            };                                                    // delete milk

            // Prepare the handlers
            var createHandler = new CreateTodoCommandHandler(new CachedRepository <Todo>());
            var updateHandler = new UpdateTodoCommandHandler(new CachedRepository <Todo>());
            var deleteHandler = new DeleteTodoCommandHandler(new CachedRepository <Todo>());
            // Example using a decorator. We're instantiating the decorator manually here but the idea is to it with IoC.
            // This decorator outputs some logging to to Console.Out.
            var decorating_deleteHandler = new LoggingCommandHandlerDecorator <DeleteTodoCommand>(deleteHandler, (ILogger) new ConsoleLogger());

            // Create something then queue it for deletion
            createHandler.Handle(cmd1).Wait();
            deleteCommand.Id = cmd1.Output;

            Task.WaitAll(
                createHandler.Handle(cmd2)
                , createHandler.Handle(cmd3)
                , createHandler.Handle(cmd4)
                );

            updateHandler.Handle(updateCommand).Wait();
            decorating_deleteHandler.Handle(deleteCommand).Wait();

            // Example using a queryhandler to deliver results
            var qhandler = new FindTodosByCategoryQueryHandler(new CachedRepository <Todo>());
            var query    = new FindTodosByCategoryQuery {
                Category = "Etc"
            };
            var queryResult = qhandler.Handle(query);

            // Only two items should show up since we deleted one, and one doesn't match the query.
            PrintResults(queryResult.Result);
        }