public void DeleteAccount_ToDeleteAccount_Success()
        {
            Account account = AccountMockData.GetAccountClass();

            mockAccountRepository.Setup(cr => cr.FindBy(It.IsAny <int>())).Returns(account);
            DeleteAccountRequest  req      = new DeleteAccountRequest(10);
            DeleteAccountResponse response = accountService.DeleteAccount(req);

            mockRepository.VerifyAll();
            Assert.AreEqual(null, response.Exception);
        }
        public void InsertAccount_ToAddNewAccount_Success()
        {
            AccountViewModel viewModel = AccountMockData.GetAccountViewModel();

            mockAccountRepository.Setup(cr => cr.Insert(It.IsAny <Account>())).Verifiable();
            InsertAccountResponse response = accountService.InsertAccount(new InsertAccountRequest()
            {
                AccountViewModel = viewModel
            });

            //mockRepository.VerifyAll();
            Assert.AreEqual("Add at least one Address", response.Exception.Message);
        }
        public void GetAllAccounts_ToGetAllTheAccounts_Succeed()
        {
            var mockAccounts = AccountMockData.GetMockAccounts(mockRepository, 10).ToList();
            //   mockAccountRepository.Setup(cr => cr.FindAll(It.IsAny<string>(), It.IsAny<int>(), It.IsAny<int>(), It.IsAny<byte>())).Returns(mockAccounts);
            GetAccountsResponse response = accountService.GetAllAccounts(new GetAccountsRequest()
            {
                Query = "", Limit = 10, PageNumber = 1
            });
            var accounts = response.Accounts;

            mockRepository.VerifyAll();
            Assert.AreEqual(mockAccounts.Count(), accounts.Count());
            Assert.AreEqual(null, response.Exception);
        }
        public void GetAccount_ToGetAccountById_Success()
        {
            GetAccountRequest req = new GetAccountRequest(10)
            {
                RequestedBy = 1
            };
            Account account = AccountMockData.GetAccountClass();

            mockAccountRepository.Setup(cr => cr.FindBy(It.IsAny <int>())).Returns(account);
            GetAccountResponse response = accountService.GetAccount(req);

            mockRepository.VerifyAll();
            Assert.AreEqual(response.AccountViewModel.AccountID, account.Id);
            Assert.AreEqual(null, response.Exception);
        }
        public void UpdateAccount_ToUpdateAccount_Success()
        {
            ////AccountViewModel viewModel = AccountMockData.GetUpdatedAccountViewModel();
            //var viewModelList = AccountMockData.AllAccounts(mockRepository).ToList();
            //AccountViewModel viewModel = viewModelList.FirstOrDefault(a => a.AccountID == 1);
            //mockAccountRepository.Setup(cr => cr.Update(It.IsAny<Account>())).Verifiable();
            //UpdateAccountResponse response = accountService.UpdateAccount(new UpdateAccountRequest() { AccountViewModel = viewModel });
            //mockRepository.VerifyAll();
            //Assert.AreEqual("Add at least one Address", response.Exception.Message);

            AccountViewModel viewModel = AccountMockData.GetUpdatedAccountViewModel();

            mockAccountRepository.Setup(cr => cr.Update(It.IsAny <Account>())).Verifiable();
            UpdateAccountResponse response = accountService.UpdateAccount(new UpdateAccountRequest()
            {
                AccountViewModel = viewModel
            });

            mockRepository.VerifyAll();
            Assert.AreEqual(response.Exception, null);
            //Assert.AreEqual("Add at least one Address", response.Exception.Message);
        }