Exemplo n.º 1
0
        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);
                }
            }
        }
Exemplo n.º 2
0
        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);
        }