static void Main(string[] args) { InMemoryContext inMemoryContext = new InMemoryContext(); ITodoItemGateway gateway = new TodoItemGateway(inMemoryContext); EntitiesFactory entitiesFactory = new EntitiesFactory(); Presenter presenter = new Presenter(); var update = new Core.UseCases.UpdateTitle(gateway); var list = new Core.UseCases.ListTodoItems(presenter, gateway); var finish = new Core.UseCases.RemoveTodoItem(gateway); var add = new Core.UseCases.AddTodoItem(presenter, gateway, entitiesFactory); Startup startup = new Startup(add, finish, list, update); Console.WriteLine("Usage:\n\tadd [title]\n\tfinish [id]\n\tlist\n\tupdate [id] [title]\n\texit"); while (true) { string command = Console.ReadLine(); if (string.IsNullOrWhiteSpace(command) || string.Compare(command, "exit", StringComparison.CurrentCultureIgnoreCase) == 0) { break; } string[] input = command.Split(' '); if (string.Compare(input[0], "add", StringComparison.CurrentCultureIgnoreCase) == 0) { startup.AddTodoItem(input); } if (string.Compare(input[0], "finish", StringComparison.CurrentCultureIgnoreCase) == 0) { startup.RemoveTodoItem(input); } if (string.Compare(input[0], "list", StringComparison.CurrentCultureIgnoreCase) == 0) { startup.ListTodoItem(input); } if (string.Compare(input[0], "update", StringComparison.CurrentCultureIgnoreCase) == 0) { startup.UpdateTodoItem(input); } } }
public void GivenTodoItem_TitleChanged() { var context = new InMemoryContext(); var gateway = new TodoItemGateway(context); var responseHandler = new ResponseHandler(); var entitiesFactory = new EntitiesFactory(); var addTodoItem = new Core.UseCases.AddTodoItem(responseHandler, gateway, entitiesFactory); addTodoItem.Execute(new Core.Boundaries.AddTodoItem.Request("My Title")); var request = new Request(responseHandler.AddTodoItems[0].Id, "New Title"); var updatedTitle = new UpdateTitle(gateway); Exception ex = Record.Exception(() => updatedTitle.Execute(request)); Assert.Null(ex); }