public void Test_Map_A_Bulk_Command_To_A_Message() { /* Given that I have a bulk command * When I map it to a message * I should get a message header and a JSON body */ var todos = new List <AddToDoRequest> { new AddToDoRequest { Title = "First", Order = 1, Completed = false }, new AddToDoRequest { Title = "Second", Order = 2, Completed = false }, new AddToDoRequest { Title = "Third", Order = 3, Completed = false } }; var command = new BulkAddToDoCommand(todos); var message = new BulkAddToDoMessageMapper().MapToMessage(command); Assert.AreEqual(message.Header.MessageType, MessageType.MT_COMMAND); Assert.AreEqual(message.Header.Topic, "bulkaddtodo.command"); Assert.AreEqual(message.Body.Value, JsonConvert.SerializeObject(command)); }
public void Test_Map_A_Message_To_A_Bulk_Action_Command() { /* Given that I have a message for a bulk command * When I map it to a command * I should get a command with a list of bulk options */ var todos = new List <AddToDoRequest> { new AddToDoRequest { Title = "First", Order = 1, Completed = false }, new AddToDoRequest { Title = "Second", Order = 2, Completed = false }, new AddToDoRequest { Title = "Third", Order = 3, Completed = false } }; var original_command = new BulkAddToDoCommand(todos); var header = new MessageHeader(messageId: Guid.NewGuid(), topic: "bulkaddtodo.command", messageType: MessageType.MT_COMMAND); var body = new MessageBody(JsonConvert.SerializeObject(original_command)); var message = new Message(header, body); var command = new BulkAddToDoMessageMapper().MapToRequest(message); Assert.AreEqual(command.ToDos.Count(), 3); Assert.AreEqual(command.ToDos.First().Title, "First"); Assert.AreEqual(command.ToDos.First().Order, 1); Assert.AreEqual(command.ToDos.First().Completed, false); }
public IActionResult Post([FromBody] BulkAddToDoRequest request) { var bulkAddCommand = new BulkAddToDoCommand(request.ItemsToAdd); _commandProcessor.Post(bulkAddCommand); //TODO: Should have a monitoring endpoint, and share a job table location for tracking progress return(Accepted()); }
public async Task Test_Bulk_Adding_Tasks() { /* * Given that I have a list of commands to add a ToDo * When I handle that command * Then I should add those to the list of Tasks * */ var options = new DbContextOptionsBuilder <ToDoContext>() .UseInMemoryDatabase(databaseName: "Bulk_adding_tasks") .Options; var todos = new List <AddToDoRequest> { new AddToDoRequest { Title = "First", Order = 1, Completed = false }, new AddToDoRequest { Title = "Second", Order = 2, Completed = false }, new AddToDoRequest { Title = "Third", Order = 3, Completed = false } }; var command = new BulkAddToDoCommand(todos); var handler = new BulkAddToDoCommandHandlerAsync(options); await handler.HandleAsync(command); using (var context = new ToDoContext(options)) { Assert.AreEqual(3, context.ToDoItems.Count()); Assert.AreEqual("First", context.ToDoItems.First().Title); Assert.AreEqual(false, context.ToDoItems.First().Completed); Assert.AreEqual(1, context.ToDoItems.First().Order.Value); } }