示例#1
0
        internal void ConfigureGistServices()
        {
            var gateway         = new GistItemGateway();
            var entitiesFactory = new DefaultEntitiesFactory();

            ConfigureUseCases(gateway, entitiesFactory);
        }
        public async Task Register_WritesOutput_InputIsValid(double amount)
        {
            var ssn      = new SSN("9909999099");
            var name     = new Name("hello");
            var password = new Password("hello@123");

            var entityFactory      = new DefaultEntitiesFactory();
            var presenter          = new Presenter();
            var context            = new MangaContext();
            var customerRepository = new CustomerRepository(context);
            var accountRepository  = new AccountRepository(context);
            var registerUser       = new RegisterUser(new UserManager <IdentityUser>());

            var sut = new Register(
                entityFactory,
                presenter,
                customerRepository,
                accountRepository,
                registerUser
                );

            await sut.Execute(new Input(
                                  ssn,
                                  name,
                                  password,
                                  new PositiveAmount(amount)));

            var actual = presenter.Registers.First();

            Assert.NotNull(actual);
            Assert.Equal(ssn.ToString(), actual.Customer.SSN);
            Assert.Equal(name.ToString(), actual.Customer.Name);
            Assert.Equal(amount, actual.Account.CurrentBalance);
        }
示例#3
0
        internal void ConfigureFileSystemServices()
        {
            var gateway         = new FileSystemItemGateway();
            var entitiesFactory = new DefaultEntitiesFactory();

            ConfigureUseCases(gateway, entitiesFactory);
        }
示例#4
0
        public async Task Register_WritesOutput_InputIsValid(double amount)
        {
            var ssn  = new SSN("8608178888");
            var name = new Name("Ivan Paulovich");

            var entityFactory      = new DefaultEntitiesFactory();
            var presenter          = new Presenter();
            var context            = new MangaContext();
            var customerRepository = new CustomerRepository(context);
            var accountRepository  = new AccountRepository(context);

            var sut = new Register(
                entityFactory,
                presenter,
                customerRepository,
                accountRepository
                );

            await sut.Execute(new Input(
                                  ssn,
                                  name,
                                  new PositiveAmount(amount)));

            var actual = presenter.Registers.First();

            Assert.NotNull(actual);
            Assert.Equal(ssn.ToString(), actual.Customer.SSN);
            Assert.Equal(name.ToString(), actual.Customer.Name);
            Assert.Equal(amount, actual.Account.CurrentBalance);
        }
示例#5
0
        internal void ConfigureInMemoryServices()
        {
            var context         = new InMemoryContext();
            var gateway         = new InMemoryItemGateway(context);
            var entitiesFactory = new DefaultEntitiesFactory();

            ConfigureUseCases(gateway, entitiesFactory);
        }
示例#6
0
        internal void ConfigureSqlServerServices()
        {
            var optionsBuilder = new DbContextOptionsBuilder <SqlContext>();

            optionsBuilder.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"));
            var context         = new SqlContext(optionsBuilder.Options);
            var gateway         = new SqlItemGateway(context);
            var entitiesFactory = new DefaultEntitiesFactory();

            ConfigureUseCases(gateway, entitiesFactory);
        }
示例#7
0
        public void GivenTitle_ReturnsId()
        {
            var context         = new InMemoryContext();
            var gateway         = new InMemoryAccountGateway(context);
            var entitiesFactory = new DefaultEntitiesFactory();
            var responseHandler = new ResponseHandler();

            var request = new Request("My Account Name");
            var add     = new Add(responseHandler, gateway, entitiesFactory);

            add.Execute(request);
            Assert.True(Guid.Empty != responseHandler.AddAccounts[0].AccountId);
        }
示例#8
0
        public void GivenTitle_AccountWasAdded()
        {
            var context         = new InMemoryContext();
            var gateway         = new InMemoryAccountGateway(context);
            var entitiesFactory = new DefaultEntitiesFactory();
            var responseHandler = new ResponseHandler();

            var request = new Request("My Account Name");
            var add     = new Add(responseHandler, gateway, entitiesFactory);

            add.Execute(request);
            Assert.Single(responseHandler.AddAccounts);
        }
示例#9
0
        public void GivenTitle_ReturnsId()
        {
            var context         = new InMemoryContext();
            var gateway         = new InMemoryItemGateway(context);
            var responseHandler = new ResponseHandler();
            var entitiesFactory = new DefaultEntitiesFactory();

            var request = new Request("My Title");
            var todo    = new Todo(responseHandler, gateway, entitiesFactory);

            todo.Execute(request);
            Assert.True(Guid.Empty != responseHandler.TodoItems[0].ItemId);
        }
示例#10
0
        public void GivenTitle_ItemsWasAdded()
        {
            var context         = new InMemoryContext();
            var gateway         = new InMemoryItemGateway(context);
            var responseHandler = new ResponseHandler();
            var entitiesFactory = new DefaultEntitiesFactory();

            var request = new Request("My Title");
            var todo    = new Todo(responseHandler, gateway, entitiesFactory);

            todo.Execute(request);
            Assert.Single(responseHandler.TodoItems);
        }
示例#11
0
        public void GivenTodoItem_TitleChanged()
        {
            var context         = new InMemoryContext();
            var gateway         = new InMemoryItemGateway(context);
            var responseHandler = new ResponseHandler();
            var entitiesFactory = new DefaultEntitiesFactory();

            var todo = new Core.UseCases.Todo(responseHandler, gateway, entitiesFactory);

            todo.Execute(new Core.Boundaries.Todo.Request("My Title"));

            var       request      = new Request(responseHandler.TodoItems[0].ItemId.ToString(), "New Title");
            var       updatedTitle = new Rename(gateway);
            Exception ex           = Record.Exception(() => updatedTitle.Execute(request));

            Assert.Null(ex);
        }
示例#12
0
        public async Task Add_ChangesDatabase()
        {
            var options = new DbContextOptionsBuilder <MangaContext>()
                          .UseInMemoryDatabase(databaseName: "test_database")
                          .Options;

            var factory  = new DefaultEntitiesFactory();
            var customer = factory.NewCustomer("198608177955", "Ivan Paulovich");

            using (var context = new MangaContext(options))
            {
                var repository = new CustomerRepository(context);
                await repository.Add(customer);
            }

            using (var context = new MangaContext(options))
            {
                Assert.Equal(1, context.Users.Count());
            }
        }