コード例 #1
0
        public void Register_User_Without_Success()
        {
            // arrange
            RegisterBindingModel      user        = GetUser();
            UserAccount               userAccount = GetUserAccount();
            Task <RegisterUserResult> result      = GetIdentityResult(false);

            _accountRepositoryMock.Setup(x => x.RegisterUser(It.IsAny <UserAccount>()))
            .Returns(result);

            _automapperMock.Setup(m => m.Map <UserAccount>(user)).
            Returns(userAccount);

            var processor = new AccountProcessor(
                _accountRepositoryMock.Object,
                _profileImageStoreMock.Object,
                _automapperMock.Object);

            // act
            Task <IdentityResult> task = processor.RegisterUser(user);

            // assert
            // verify if the appropriate methods are called (RegisterUser, SendEmail, and StoreImage)
            _accountRepositoryMock.Verify(mock => mock.RegisterUser(It.IsAny <UserAccount>()), Times.Once());
            _accountRepositoryMock.Verify(mock => mock.SendEmailAsync(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>()), Times.Never());
            _profileImageStoreMock.Verify(mock => mock.StoreImage(It.IsAny <string>(), It.IsAny <string>()), Times.Never());
        }
コード例 #2
0
        public void GetRequestedAccount_TooManyAccountsReturned_ThrowsException()
        {
            //Arrange

            int requestedAccountNumber = 1126;

            // (mock data)
            List <Account> expectedList    = new List <Account>();
            Account        expectedAccount = new Account(1126)
            {
                Balance = 1111.11, Type = "Checking"
            };

            expectedList.Add(expectedAccount);
            expectedList.Add(expectedAccount); // important to add the same thing twice

            // (mock behaviour)
            var mockDataAccessLayer = new Mock <IDataAccessLayer>();

            mockDataAccessLayer.Setup(dal => dal.GetAccountByNumber(It.IsAny <int>())).Returns(expectedList);


            // (piece under test)
            var processorUnderTest = new AccountProcessor(mockDataAccessLayer.Object);


            //Act & Assert
            Assert.Throws <DuplicateAccountNumberException>(() => processorUnderTest.GetRequestedAccount(requestedAccountNumber), "Multiple records with same account number were returned.");
        }
コード例 #3
0
        public void GetRequestedAccount_AccountFound()
        {
            //Arrange
            // (set up mock data)
            List <Account> expectedList    = new List <Account>();
            Account        expectedAccount = new Account(1126)
            {
                Balance = 1111.11, Type = "Checking"
            };

            expectedList.Add(expectedAccount);

            // (create mock object and define its behaviour)
            var mockDataAccessLayer = new Mock <IDataAccessLayer>();

            mockDataAccessLayer.Setup(dal => dal.GetAccountByNumber(It.IsAny <int>())).Returns(expectedList);

            // (create the REAL object that is under test)
            var processorUnderTest = new AccountProcessor(mockDataAccessLayer.Object); // NOTE: This is where we pass in the MOCKED data access layer object

            //Act
            Account actualAccount = processorUnderTest.GetRequestedAccount(expectedAccount.Number);     // NOTE: The method we're testing

            //mockDataAccessLayer.Verify(x => x.GetAccountByNumber(expectedAccount.Number));  // TODO: Figure out the purpose of this code

            //Assert
            Assert.AreEqual(expectedAccount.Number, actualAccount.Number);
            Assert.AreEqual(expectedAccount.Balance, actualAccount.Balance);
            Assert.AreEqual(expectedAccount.Type, actualAccount.Type);
        }
コード例 #4
0
 public EntityListController(AccountProcessor accountProcessor, TransactionProcessor transactionProcessor, DatafeedProcessor datafeedProcessor, GoalProcessor goalProcessor)
 {
     _accountProcessor     = accountProcessor;
     _transactionProcessor = transactionProcessor;
     _datafeedProcessor    = datafeedProcessor;
     _goalProcessor        = goalProcessor;
 }
コード例 #5
0
 public int Login(Account account)
 {
     if (account == null)
     {
         return(0);
     }
     return(AccountProcessor.LoginAccount(account));
 }
コード例 #6
0
 public bool RegisterAccount(Account account)
 {
     if (account == null)
     {
         return(false);
     }
     return(AccountProcessor.RegisterAccount(account));
 }
コード例 #7
0
        public void Initializer()
        {
            IKernel kernel = new StandardKernel();

            // Processor
            kernel.Bind <IAccountProcessor>().To <AccountProcessor>();

            // Repository
            kernel.Bind <IAccountRepository>().To <AccountRepository>();

            _processor = kernel.Get <AccountProcessor>();
        }
コード例 #8
0
        public void GetRequestedAccount_AccountNotFound()
        {
            //Arrange
            // (mock data)
            List <Account> expectedList           = null;
            int            requestedAccountNumber = 1126;

            // (mock behaviour)
            var mockDataAccessLayer = new Mock <IDataAccessLayer>();

            mockDataAccessLayer.Setup(dal => dal.GetAccountByNumber(It.IsAny <int>())).Returns(expectedList);

            // (piece under test)
            var processorUnderTest = new AccountProcessor(mockDataAccessLayer.Object);

            //Act
            Account actualAccount = processorUnderTest.GetRequestedAccount(requestedAccountNumber);

            //Assert
            Assert.IsNull(actualAccount);
        }
コード例 #9
0
        public async Task <ActionResult> Login(LoginServiceUser model)
        {
            ServiceUser user = await _context.ServiceUsers.SingleOrDefaultAsync(u => u.EmailAddress.Equals(model.Email.Trim(), StringComparison.InvariantCultureIgnoreCase));

            if (user == null)
            {
                ModelState.AddModelError("Email", "Email not found! Please register for an account first.");
            }
            if (ModelState.IsValid)
            {
                if (AccountProcessor.VerifyPassword(model.Password, user.Password))
                {
                    Session["userid"]   = user.UserId.ToString();
                    Session["role"]     = user.UserRole;
                    Session["username"] = user.UserName;
                    return(RedirectToAction("Details", new { id = user.UserId }));
                }
                else
                {
                    return(HttpNotFound("Password does not match!"));
                }
            }
            return(View(model));
        }
コード例 #10
0
 public AccountController(IConfiguration configuration)
 {
     AccountProcessor = new AccountProcessor(configuration);
 }
コード例 #11
0
 public AccountController(AccountProcessor accountProcessor)
 {
     _accountProcessor = accountProcessor;
 }