예제 #1
0
        public void TestViewMyInit_ShouldCallManagerCreateUserCorrectly(string email, string password, string name, string phone, string address)
        {
            var mockedView = new Mock <IRegisterView>();

            mockedView.Setup(v => v.Model).Returns(new RegisterViewModel());

            var mockedUserManager = new Mock <IUserManager>();

            mockedUserManager.Setup(m => m.CreateUser(It.IsAny <User>(), It.IsAny <string>()))
            .Returns(new IdentityResult());

            var mockedProvider = new Mock <IAuthenticationProvider>();

            mockedProvider.Setup(p => p.GetUserManager()).Returns(mockedUserManager.Object);

            var user = new User();

            var mockedFactory = new Mock <IUserFactory>();

            mockedFactory.Setup(
                f =>
                f.CreateUser(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(),
                             It.IsAny <string>()))
            .Returns(user);

            var presenter = new RegisterPresenter(mockedView.Object, mockedProvider.Object, mockedFactory.Object);

            var args = new RegisterEventArgs(email, password, name, phone, address);

            mockedView.Raise(v => v.MyRegister += null, args);

            mockedUserManager.Verify(m => m.CreateUser(user, password), Times.Once);
        }
        public void GivenValidData_Handle_WritesOkObjectResult()
        {
            var customer = new Infrastructure.InMemoryDataAccess.Customer(
                new CustomerId(Guid.NewGuid()),
                new SSN("198608178888"),
                new Name("Ivan Paulovich"),
                Array.Empty <AccountId>());

            var account = new Infrastructure.InMemoryDataAccess.Account(
                new AccountId(Guid.NewGuid()),
                customer.Id,
                Array.Empty <Infrastructure.InMemoryDataAccess.Credit>(),
                Array.Empty <Infrastructure.InMemoryDataAccess.Debit>()
                );

            var registerOutput = new RegisterOutput(
                new ExternalUserId("github/ivanpaulovich"),
                customer,
                account);

            var sut = new RegisterPresenter();

            sut.Standard(registerOutput);

            var actual = Assert.IsType <CreatedAtRouteResult>(sut.ViewModel);

            Assert.Equal((int)HttpStatusCode.Created, actual.StatusCode);

            var actualValue = (RegisterResponse)actual.Value;

            Assert.Equal(customer.Id.ToGuid(), actualValue.CustomerId);
        }
예제 #3
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 Register(
                new TestUserService(_fixture.Context),
                _fixture.EntityFactory,
                _fixture.EntityFactory,
                _fixture.EntityFactory,
                presenter,
                _fixture.CustomerRepository,
                _fixture.AccountRepository,
                _fixture.UserRepository,
                _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());
        }
예제 #4
0
        public async Task Register_WritesOutput_InputIsValid(decimal amount)
        {
            var presenter = new RegisterPresenter();
            var ssn       = new SSN("8608178888");
            var name      = new Name("Ivan Paulovich");

            var sut = new Register(
                _fixture.EntityFactory,
                presenter,
                _fixture.CustomerRepository,
                _fixture.AccountRepository,
                _fixture.UnitOfWork
                );

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

            var actual = presenter.Registers.Last();

            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
        private void Initialize()
        {
            _presenter = new RegisterPresenter(this);

            InitFields();
            InitButtons();
        }
예제 #6
0
 public AccountsController(LoginPresenter loginPresenter, RegisterPresenter registerPresenter, GetUserPresenter getUserPresenter, IAccountsHandler accountsHandler)
 {
     _loginPresenter    = loginPresenter;
     _registerPresenter = registerPresenter;
     _getUserPresenter  = getUserPresenter;
     _accountsHandler   = accountsHandler;
 }
예제 #7
0
        public void RegisterUserRegisters()
        {
            MockedDummyRegisterService _mockedDummy = new MockedDummyRegisterService();

            _mockedDummy.error = false;
            IRegister _regView = new mov4eRegistration(new Mov4e.View.LogInView.mov4eLogin())
            {
                Age       = 10,
                UserName  = "******",
                FirstName = "Lucher",
                LastName  = "Nikolow",
                Password  = "******",
                Email     = "*****@*****.**",
                Gender    = "M"
            };
            IRegisterPresenter _registerPresenter = new RegisterPresenter(_regView, _mockedDummy._registerService);

            _registerPresenter.RegisterUser();

            Assert.AreEqual(10, _mockedDummy._userinfo.age);
            Assert.AreEqual("Lucher", _mockedDummy._userinfo.firstName);
            Assert.AreEqual("Nikolow", _mockedDummy._userinfo.lastName);
            Assert.AreEqual("*****@*****.**", _mockedDummy._userinfo.email);
            Assert.AreEqual("M", _mockedDummy._userinfo.gender);
            Assert.AreEqual("asdasd", _mockedDummy._user.password);
            Assert.AreEqual("WolF", _mockedDummy._user.userName);
        }
예제 #8
0
        public void RedirectToCorrectPage_WhenRegisterSucceeds()
        {
            var          query        = this.Fixture.Create <string>();
            var          returnUrl    = this.Fixture.Create <string>();
            const string returnUrlKey = "ReturnUrl";

            var view        = new Mock <IRegisterView>();
            var args        = this.GetMockedEventArgs();
            var userService = new Mock <IUserService>();

            userService.Setup(s => s.RegisterUser(args.UserName, args.Email, args.Password))
            .Returns(IdentityResult.Success);

            var identityHelper = new Mock <IIdentityHelper>();

            identityHelper.Setup(i => i.GetReturnUrl(query))
            .Returns(returnUrl);

            var httpResponse = new MockedHttpResponse();
            var presenter    = new RegisterPresenter(userService.Object, identityHelper.Object, view.Object)
            {
                HttpContext = new MockedHttpContextBase(httpResponse)
            };

            presenter.HttpContext.Request.QueryString.Add(returnUrlKey, query);

            view.Raise(v => v.OnRegister += null, view.Object, args);

            Assert.AreEqual(returnUrl, httpResponse.RedirectUrl);
        }
        public void GivenValidData_Handle_WritesOkObjectResult()
        {
            var customer = new Infrastructure.InMemoryGateway.Customer(
                new SSN("198608178888"),
                new Name("Ivan Paulovich")
                );

            var account = new Infrastructure.InMemoryGateway.Account(
                customer
                );

            var registerOutput = new RegisterOutput(
                customer,
                account
                );

            var sut = new RegisterPresenter();

            sut.Standard(registerOutput);

            var actual = Assert.IsType <CreatedAtRouteResult>(sut.ViewModel);

            Assert.Equal((int)HttpStatusCode.Created, actual.StatusCode);

            var actualValue = (RegisterResponse)actual.Value;

            Assert.Equal(customer.Id, actualValue.CustomerId);
        }
예제 #10
0
        public void ConstructorShuldCreateInstanceOfREgisterPresenter()
        {
            var mockView    = new Mock <IRegisterView>();
            var mockService = new Mock <IUserService>();
            var actual      = new RegisterPresenter(mockView.Object, mockService.Object);

            Assert.IsInstanceOf(typeof(RegisterPresenter), actual);
        }
예제 #11
0
        public void ConstructorShuldCreateInstance()
        {
            var mockView    = new Mock <IRegisterView>();
            var mockService = new Mock <IUserService>();
            var actual      = new RegisterPresenter(mockView.Object, mockService.Object);

            Assert.IsNotNull(actual);
        }
예제 #12
0
        public void RegisterPresenter_UseCaseSucceds_ContainsOk()
        {
            var presenter = new RegisterPresenter();

            presenter.CreateResponse(new RegisterResponseDTO(true));

            Assert.Equal((int)HttpStatusCode.OK, presenter.Result.StatusCode);
        }
예제 #13
0
        public void RegisterPresenter_UseCaseFails_ContainsBadRequest()
        {
            var presenter = new RegisterPresenter();

            presenter.CreateResponse(new RegisterResponseDTO(false, new ErrorResponse(new[] { new Error(It.IsAny <string>(), It.IsAny <string>()) })));

            Assert.Equal((int)HttpStatusCode.BadRequest, presenter.Result.StatusCode);
        }
예제 #14
0
        public void ShowRegisterView()
        {
            var view      = new RegisterControl(this);
            var model     = new RegisterModel(encrypter);
            var presenter = new RegisterPresenter(model, view);

            showView(view);
            centerActualView();
        }
예제 #15
0
        private void RegisterNewCustomerHandler(object sender, EventArgs e)
        {
            RegisterView      regView           = new RegisterView();
            RegisterPresenter registerPresenter = new RegisterPresenter(regView);

            regView.Presenter = registerPresenter;
            regView.ShowDialog();
            eventAggregator.Publish(new ReloadDataMessage());
        }
예제 #16
0
        public void TestConstructor_PassEverythingCorrectly_ShouldInitializeCorrectly()
        {
            var mockedView     = new Mock <IRegisterView>();
            var mockedProvider = new Mock <IAuthenticationProvider>();
            var mockedFactory  = new Mock <IUserFactory>();

            var presenter = new RegisterPresenter(mockedView.Object, mockedProvider.Object, mockedFactory.Object);

            Assert.IsNotNull(presenter);
        }
예제 #17
0
 public CustomersController(
     IInputBoundary <RegisterInput> registerInput,
     IInputBoundary <GetCustomerDetailsInput> getCustomerInput,
     RegisterPresenter registerPresenter,
     CustomerDetailsPresenter getCustomerDetailsPresenter)
 {
     this.registerInput               = registerInput;
     this.getCustomerInput            = getCustomerInput;
     this.registerPresenter           = registerPresenter;
     this.getCustomerDetailsPresenter = getCustomerDetailsPresenter;
 }
예제 #18
0
        private void _btnRegister_Click(object sender, EventArgs e)
        {
            if (String.IsNullOrWhiteSpace(_txtLastName.Text) || String.IsNullOrWhiteSpace(_txtName.Text) || String.IsNullOrWhiteSpace(_txtPass.Text) || String.IsNullOrWhiteSpace(_txtUser.Text))
            {
                Toast.MakeText(this, "The fields can not be empty", ToastLength.Long).Show();
            }

            else
            {
                RegisterPresenter presenter = new RegisterPresenter(this, new RegisterModel());
                presenter.Register();
            }
        }
예제 #19
0
        public void TestViewMyInit_ShouldCallProviderIsAuthenticated(bool isAuthenticated)
        {
            var mockedView = new Mock <IRegisterView>();

            mockedView.Setup(v => v.Model).Returns(new RegisterViewModel());

            var mockedProvider = new Mock <IAuthenticationProvider>();

            mockedProvider.Setup(p => p.IsAuthenticated).Returns(isAuthenticated);
            var mockedFactory = new Mock <IUserFactory>();

            var presenter = new RegisterPresenter(mockedView.Object, mockedProvider.Object, mockedFactory.Object);

            mockedView.Raise(v => v.MyInit += null, EventArgs.Empty);

            mockedProvider.Verify(p => p.IsAuthenticated, Times.Once);
        }
예제 #20
0
        public void TestViewMyInit_ShouldSetViewModelIsAuthenticatedCorrectly(bool isAuthenticated)
        {
            var mockedView = new Mock <IRegisterView>();

            mockedView.Setup(v => v.Model).Returns(new RegisterViewModel());

            var mockedProvider = new Mock <IAuthenticationProvider>();

            mockedProvider.Setup(p => p.IsAuthenticated).Returns(isAuthenticated);
            var mockedFactory = new Mock <IUserFactory>();

            var presenter = new RegisterPresenter(mockedView.Object, mockedProvider.Object, mockedFactory.Object);

            mockedView.Raise(v => v.MyInit += null, EventArgs.Empty);

            Assert.AreEqual(isAuthenticated, mockedView.Object.Model.IsAuthenticated);
        }
예제 #21
0
        public void ShouldSubscribeToRegisterViewOnSigningEvent()
        {
            // Arrange
            var mockedView                 = new MockedRegisterView();
            var mockedUserFactory          = new Mock <IUserFactory>();
            var mockedShoppingCartFactory  = new Mock <IShoppingCartFactory>();
            var mockedShoppingCartsService = new Mock <IShoppingCartsService>();

            // Act
            var registerPresenter = new RegisterPresenter(mockedView,
                                                          mockedUserFactory.Object,
                                                          mockedShoppingCartFactory.Object,
                                                          mockedShoppingCartsService.Object);

            // Assert
            Assert.IsTrue(mockedView.IsSubscribedMethod("OnSigningIn"));
        }
예제 #22
0
        public void RegisterUserThrowsException()
        {
            MockedDummyRegisterService _mockedDummy = new MockedDummyRegisterService();
            IRegister _regView = new mov4eRegistration(new Mov4e.View.LogInView.mov4eLogin())
            {
                Age       = 10,
                UserName  = "******",
                FirstName = "Lucher",
                LastName  = "Nikolow",
                Password  = "******",
                Email     = "*****@*****.**",
                Gender    = "M"
            };
            IRegisterPresenter _registerPresenter = new RegisterPresenter(_regView, _mockedDummy._registerService);

            Assert.AreEqual(false, _registerPresenter.RegisterUser());
        }
예제 #23
0
        public void ShouldCreateAnInstanceInheritingPresenter_WhenValidDependenciesArePassed()
        {
            // Arrange
            var mockedView                 = new Mock <IRegisterView>();
            var mockedUserFactory          = new Mock <IUserFactory>();
            var mockedShoppingCartFactory  = new Mock <IShoppingCartFactory>();
            var mockedShoppingCartsService = new Mock <IShoppingCartsService>();

            // Act
            var registerPresenter = new RegisterPresenter(mockedView.Object,
                                                          mockedUserFactory.Object,
                                                          mockedShoppingCartFactory.Object,
                                                          mockedShoppingCartsService.Object);

            // Assert
            Assert.IsInstanceOf <Presenter <IRegisterView> >(registerPresenter);
        }
예제 #24
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            // Create your application here
            SetContentView(Resource.Layout.register);

            login    = FindViewById <TextView>(Resource.Id.link_login);
            register = FindViewById <AppCompatButton>(Resource.Id.btn_register);
            name     = FindViewById <EditText>(Resource.Id.input_name);
            email    = FindViewById <EditText>(Resource.Id.input_email);
            password = FindViewById <EditText>(Resource.Id.input_password);
            password_confirmation = FindViewById <EditText>(Resource.Id.input_password_confirmation);

            this.registerPresenter = new RegisterPresenter(this);
            register.Click        += RegisterClient;
            login.Click           += loginClient;
        }
예제 #25
0
        public void TestViewMyInit_ResultNotSucceeded_ShouldAddViewModelErrorMessage(string email,
                                                                                     string password,
                                                                                     string name,
                                                                                     string phone,
                                                                                     string address,
                                                                                     string errorMessage)
        {
            var mockedView = new Mock <IRegisterView>();

            mockedView.Setup(v => v.Model).Returns(new RegisterViewModel());

            var errorMessages = new List <string> {
                errorMessage
            };

            var mockedUserManager = new Mock <IUserManager>();

            mockedUserManager.Setup(m => m.CreateUser(It.IsAny <User>(), It.IsAny <string>()))
            .Returns(new IdentityResult(errorMessages));

            var mockedProvider = new Mock <IAuthenticationProvider>();

            mockedProvider.Setup(p => p.GetUserManager()).Returns(mockedUserManager.Object);

            var user = new User();

            var mockedFactory = new Mock <IUserFactory>();

            mockedFactory.Setup(
                f =>
                f.CreateUser(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(),
                             It.IsAny <string>()))
            .Returns(user);

            var presenter = new RegisterPresenter(mockedView.Object, mockedProvider.Object, mockedFactory.Object);

            var args = new RegisterEventArgs(email, password, name, phone, address);

            mockedView.Raise(v => v.MyRegister += null, args);

            Assert.AreEqual(errorMessage, mockedView.Object.Model.ErrorMessage);
        }
예제 #26
0
        private void FrmRegister_Load(object sender, EventArgs e)
        {
            // Add validators
            //AddValidators();

            presenter = new RegisterPresenter(this);

            // Set data for mCbRoleType
            mCbRoleType.DataSource    = RoleTypes;
            mCbRoleType.DisplayMember = "RoleName";
            mCbRoleType.ValueMember   = "RoleTypeId";

            mLLogin.Click      += MLLogin_Click;
            mBtnRegister.Click += MBtnRegister_Click;

            registerValidatorList = new List <BaseValidator>();

            RequiredValidatingControls();
            RegexValidatingControls();
        }
예제 #27
0
        public void CallUserServiceRegisterUserMethod_WithCorrectParameters()
        {
            var view           = new Mock <IRegisterView>();
            var identityHelper = new Mock <IIdentityHelper>();
            var args           = this.GetMockedEventArgs();

            var userService = new Mock <IUserService>();

            userService.Setup(s => s.RegisterUser(args.UserName, args.Email, args.Password))
            .Returns(IdentityResult.Failed(new string[1]));

            var httpResponse = new MockedHttpResponse();
            var presenter    = new RegisterPresenter(userService.Object, identityHelper.Object, view.Object)
            {
                HttpContext = new MockedHttpContextBase(httpResponse)
            };

            view.Raise(v => v.OnRegister += null, view.Object, args);

            userService.Verify(s => s.RegisterUser(args.UserName, args.Email, args.Password), Times.Once());
        }
        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);
        }
예제 #29
0
        public void SetViewErrors_WhenRegisterFails()
        {
            var expectedMessage = this.Fixture.Create <string>();
            var view            = new Mock <IRegisterView>();
            var identityHelper  = new Mock <IIdentityHelper>();
            var args            = this.GetMockedEventArgs();

            var userService = new Mock <IUserService>();

            userService.Setup(s => s.RegisterUser(args.UserName, args.Email, args.Password))
            .Returns(IdentityResult.Failed(new[] { expectedMessage }));

            var httpResponse = new MockedHttpResponse();
            var presenter    = new RegisterPresenter(userService.Object, identityHelper.Object, view.Object)
            {
                HttpContext = new MockedHttpContextBase(httpResponse)
            };

            view.Raise(v => v.OnRegister += null, view.Object, args);

            view.VerifySet(v => v.ErrorMessageText = expectedMessage, Times.Once());
        }
예제 #30
0
        public void TestViewMyInit_ResultSucceededTrue_ShouldSetViewModelIsRegistrationSuccessfulToTrue(string email, string password, string name, string phone, string address)
        {
            var mockedView = new Mock <IRegisterView>();

            mockedView.Setup(v => v.Model).Returns(new RegisterViewModel());

            var mockedUserManager = new Mock <IUserManager>();

            mockedUserManager.Setup(m => m.CreateUser(It.IsAny <User>(), It.IsAny <string>()))
            .Returns(IdentityResult.Success);

            var mockedSignInManager = new Mock <ISignInManager>();

            var mockedProvider = new Mock <IAuthenticationProvider>();

            mockedProvider.Setup(p => p.GetUserManager()).Returns(mockedUserManager.Object);
            mockedProvider.Setup(p => p.GetSignInManager()).Returns(mockedSignInManager.Object);

            var user = new User();

            var mockedFactory = new Mock <IUserFactory>();

            mockedFactory.Setup(
                f =>
                f.CreateUser(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(),
                             It.IsAny <string>()))
            .Returns(user);

            var presenter = new RegisterPresenter(mockedView.Object, mockedProvider.Object, mockedFactory.Object);

            var args = new RegisterEventArgs(email, password, name, phone, address);

            mockedView.Raise(v => v.MyRegister += null, args);

            Assert.IsTrue(mockedView.Object.Model.IsRegistrationSuccessful);
        }