Example #1
0
        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));
        }
Example #2
0
        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);
        }