Esempio n. 1
0
        public async Task Register_WritesOutput_InputIsValid(decimal amount)
        {
            var presenter      = new RegisterPresenter();
            var externalUserId = new ExternalUserId("github/ivanpaulovich");
            var ssn            = new SSN("8608178888");

            var sut = new RegisterUseCase(
                new TestUserService(this._fixture.Context),
                this._fixture.CustomerService,
                this._fixture.AccountService,
                this._fixture.SecurityService,
                presenter,
                this._fixture.UnitOfWork);

            await sut.Execute(new RegisterInput(
                                  ssn,
                                  new PositiveMoney(amount)));

            var actual = presenter.Registers.Last();

            Assert.NotNull(actual);
            Assert.Equal(ssn, actual.Customer.SSN);
            Assert.NotEmpty(actual.Customer.Name.ToString());
            Assert.Equal(amount, actual.Account.CurrentBalance.ToDecimal());
        }
        public RegisterUseCaseTest()
        {
            _customerWriteOnlyRepository = new Mock <ICustomerWriteOnlyRepository>();
            _accountWriteOnlyRepository  = new Mock <IAccountWriteOnlyRepository>();

            registerUseCase = new RegisterUseCase(_customerWriteOnlyRepository.Object, _accountWriteOnlyRepository.Object);
        }
Esempio n. 3
0
        private static async Task SeedUser()
        {
            if (db.Users.Any(x => x.Username == Username))
            {
                Console.WriteLine($"User '{Username}' already exists");
                return;
            }

            Console.WriteLine("Seeding User....");
            var repository  = new UserEfRepository(db);
            var userUsecase = new RegisterUseCase <Action>(repository);

            await userUsecase.HandleAsync(new RegisterUserInput("Kris", "Lyubenov", Username, "*****@*****.**", "Test321"), new RegisterOutputHandlerStub());
        }
        public async void Register_Valid_User_Account(string personnummer, string name, double amount)
        {
            var registerUseCase = new RegisterUseCase(
                customerWriteOnlyRepository,
                accountWriteOnlyRepository
                );

            RegisterResult result = await registerUseCase.Execute(
                personnummer,
                name,
                amount);

            Assert.Equal(personnummer, result.Customer.Personnummer);
            Assert.Equal(name, result.Customer.Name);
            Assert.True(Guid.Empty != result.Customer.CustomerId);
            Assert.True(Guid.Empty != result.Account.AccountId);
        }
Esempio n. 5
0
        public async void Should_Register_New_User()
        {
            // Arrange
            var valid          = new User((Name)"Alexander Held", (Password)"supersecret");
            var userRepository = new Mock <IUserRepository>();
            var todoRepository = new Mock <ITodoRepository>();

            var register = new RegisterUseCase(userRepository.Object, todoRepository.Object);

            // Act
            var output = await register.Execute("Alexander Held", "supersecret");

            // Assert
            Assert.Equal(valid.Name, output.UserOutput.Name);
            Assert.Equal(valid.GetAssociatedTasks(), output.UserOutput.AssociatedTodos.GetReadOnly());
            Assert.NotNull(valid);
            Assert.IsType <User>(valid);
        }
        public async void Register_Valid_User_Account(decimal amount)
        {
            string personnummer = "8608178888";
            string name         = "Ivan Paulovich";

            var mockCustomerWriteOnlyRepository = new Mock <ICustomerWriteOnlyRepository>();
            var mockAccountWriteOnlyRepository  = new Mock <IAccountWriteOnlyRepository>();

            RegisterUseCase sut = new RegisterUseCase(
                mockCustomerWriteOnlyRepository.Object,
                mockAccountWriteOnlyRepository.Object
                );

            RegisterOutput output = await sut.Execute(
                personnummer,
                name,
                amount);

            Assert.Equal(amount, output.Account.CurrentBalance);
        }
        public async Task Register_WritesOutput_AlreadyRegisterested(decimal amount)
        {
            var    presenter = new RegisterPresenter();
            string ssn       = "8608178888";

            var sut = new RegisterUseCase(
                this._fixture.TestUserService,
                this._fixture.CustomerService,
                this._fixture.AccountService,
                this._fixture.SecurityService,
                presenter,
                this._fixture.UnitOfWork,
                this._fixture.CustomerRepository,
                this._fixture.AccountRepository);

            await sut.Execute(new RegisterInput(
                                  ssn,
                                  amount));

            Assert.NotEmpty(presenter.AlreadyRegistered);
        }
Esempio n. 8
0
        public async Task RegsiterUseCase_ValidInput_ShouldReturnTheUser()
        {
            // Arrange
            var userService = new FakeUserService();
            var presenter   = new FakeRegisterOutputHandler();

            var sut = new RegisterUseCase(presenter, userService);

            var input = new RegistrationInput("username", "password", "*****@*****.**");

            // Act
            await sut.Execute(input);

            // Assert
            presenter.ErrorMessage
            .Should()
            .BeNull();

            presenter.ViewModel
            .Should()
            .BeEquivalentTo(userService.User);
        }
Esempio n. 9
0
        public void GivenNullInput_ThrowsException()
        {
            var register = new RegisterUseCase(null, null, null, null, null, null);

            Assert.ThrowsAsync <Exception>(async() => await register.Execute(null));
        }