public async Task <Results <bool> > RunStatement(PandaStatementCreateContract statement) { if (string.IsNullOrEmpty(statement.PandaAccountId)) { return(PandaResponse.CreateErrorResponse <bool>("Account id not found")); } statement.CreatedAt = statement.CreatedAt == null ? DateTime.Now : statement.CreatedAt; var newStatement = new PandaStatement(); _mapper.Map(statement, newStatement); Results <bool> runStateMentResult = await _accountRepository.CreateStatement(newStatement); if (runStateMentResult.IsError()) { return(runStateMentResult); } if (string.IsNullOrEmpty(newStatement.PandaAccountId)) { return(PandaResponse.CreateErrorResponse <bool>("Panda account Id Invalid")); } Results <bool> balanceIsUpdated = await _accountRepository.UpdateAccountBalance(newStatement.PandaAccountId, newStatement.Balances); if (balanceIsUpdated.IsError()) { return(balanceIsUpdated); } return(PandaResponse.CreateSuccessResponse(true)); }
public async Task <Results <bool> > CreateStatement(PandaStatement newStatement) { await _repo.AddAsync(newStatement); var result = await _repo.SaveAsync(); return(result); }
public AccountLogicTest() { var mock = new MockRepository(MockBehavior.Default); _accountRepository = new Mock <IAccountRepository>(); var mappingConfig = new MapperConfiguration(mc => { mc.AddProfile(new MappingProfile()); }); _mapper = mappingConfig.CreateMapper(); #region CanActiveAccount _accountRepository .Setup(s => s.GetAccountStatus(AccountIdSuccess)) .Returns(Task.FromResult(true)); _accountRepository .Setup(s => s.GetAccountStatus(AccountIdFail)) .Returns(Task.FromResult(false)); _accountRepository .Setup(s => s.IsPaticipant(AccountIdSuccess, UserIdSuccess)) .Returns(Task.FromResult(true)); _accountRepository .Setup(s => s.IsPaticipant(AccountIdSuccess, userIdFail)) .Returns(Task.FromResult(false)); _accountRepository .Setup(s => s.IsPaticipant(AccountIdFail, UserIdSuccess)) .Returns(Task.FromResult(false)); _accountRepository .Setup(s => s.IsPaticipant(AccountIdFail, userIdFail)) .Returns(Task.FromResult(false)); #endregion #region CanUpdateBalance _accountRepository .Setup(s => s.GetAccountBalance(accountHundred)) .Returns(Task.FromResult(balanceHundred)); _accountRepository .Setup(s => s.GetAccountBalance(accountThousand)) .Returns(Task.FromResult(balanceThousand)); #endregion #region RunStatement var test0 = PandaStatementCreateContractTestData.pandaStatementCreateContracts(now)[0]; var new0 = new PandaStatement(); _mapper.Map(test0, new0); var test1 = PandaStatementCreateContractTestData.pandaStatementCreateContracts(now)[1]; var new1 = new PandaStatement(); _mapper.Map(test1, new1); _accountRepository .Setup(s => s.CreateStatement(It.Is <PandaStatement>(m => m.Balances == new0.Balances && m.CreatedAt == new0.CreatedAt && m.Id == new0.Id && m.Status == new0.Status ))) .Returns(Task.FromResult(PandaResponse.CreateSuccessResponse(true))); _accountRepository .Setup(s => s.UpdateAccountBalance(new0.PandaAccountId, new0.Balances)) .Returns(Task.FromResult(PandaResponse.CreateSuccessResponse(true))); _accountRepository .Setup(s => s.CreateStatement(new1)) .Returns(Task.FromResult(PandaResponse.CreateErrorResponse <bool>("test error"))); _accountRepository .Setup(s => s.UpdateAccountBalance(new1.PandaAccountId, new1.Balances)) .Returns(Task.FromResult(PandaResponse.CreateErrorResponse <bool>("test error"))); #endregion accountLogic = new AccountLogic( _accountRepository.Object, _mapper); }