Добавил валидацию на null в AccountBalanceValidationRule.CompanyPresent, AccountBalanceValidationRule.AccountOk. Поправил тест AccountBalanceServiceTest.
This commit is contained in:
parent
301d06a4c4
commit
6974ee2087
5 changed files with 317 additions and 1882 deletions
|
|
@ -20,6 +20,9 @@ public enum AccountBalanceValidationRule implements IValidationRule<ImdgValidati
|
|||
@Override
|
||||
public Optional<EnumMessage> validate(ImdgValidationContext<AccountBalanceValidation> context) {
|
||||
AccountBalanceValidation validatedObject = context.getValidatedObject();
|
||||
if (validatedObject.addresseeId() == null) {
|
||||
return of(BalanceError.CompanyNotFound);
|
||||
}
|
||||
Imdg<Company> companyImdg = context.obtainMap(IMDGDistributedNames.Map_Company, Company.class);
|
||||
Company company = companyImdg.getSingleObjectByID(validatedObject.addresseeId());
|
||||
if (company == null) {
|
||||
|
|
@ -33,6 +36,9 @@ public enum AccountBalanceValidationRule implements IValidationRule<ImdgValidati
|
|||
@Override
|
||||
public Optional<EnumMessage> validate(ImdgValidationContext<AccountBalanceValidation> context) {
|
||||
AccountBalanceValidation validatedObject = context.getValidatedObject();
|
||||
if (validatedObject.accountId() == null) {
|
||||
return of(BalanceError.AccountNotPresent);
|
||||
}
|
||||
Imdg<Account> accountImdg = context.obtainMap(IMDGDistributedNames.Map_Account, Account.class);
|
||||
Account account = accountImdg.getSingleObjectByFieldValues(Map.of("id", validatedObject.accountId(),
|
||||
"accountType", AccountType.Clrn.getKey()));
|
||||
|
|
|
|||
|
|
@ -10,6 +10,8 @@ import ru.clearing.classes.statics.data.account.Account;
|
|||
import ru.clearing.classes.statics.data.company.Company;
|
||||
import ru.spcex.clearing.balance.config.*;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.platform.enumeration.AccountType;
|
||||
import ru.spcex.platform.enumeration.Status;
|
||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||
import ru.spcex.platform.imdg.iml.hazelcast.adapter.ImdgHazelcast;
|
||||
|
||||
|
|
@ -27,6 +29,10 @@ import java.util.concurrent.atomic.AtomicLong;
|
|||
KafkaSenderConfig.class,
|
||||
KafkaTestConfig.class})
|
||||
public abstract class AbstractServiceTest {
|
||||
protected final Long accountIdNew = 1L;
|
||||
protected final Long addresseeIdNew = 2L;
|
||||
protected final String deal = "111111111";
|
||||
protected final String acc = "123456789";
|
||||
protected AtomicLong currentId = new AtomicLong(0L);
|
||||
protected IMap<Long, Company> companyMap;
|
||||
protected IMap<Long, Account> accountMap;
|
||||
|
|
@ -43,4 +49,21 @@ public abstract class AbstractServiceTest {
|
|||
accountMap = accountImdg.getMap();
|
||||
}
|
||||
|
||||
protected Company getTestCompany() {
|
||||
Company company = new Company();
|
||||
company.setId(addresseeIdNew);
|
||||
company.setTradingCode(deal);
|
||||
company.setShortName("ShortName");
|
||||
company.setFullName("FullName");
|
||||
return company;
|
||||
}
|
||||
|
||||
protected Account getTestAccount(Long id) {
|
||||
Account account = new Account();
|
||||
account.setId(id);
|
||||
account.setAccount(acc);
|
||||
account.setAccountType(AccountType.Clrn.getKey());
|
||||
account.setAccountStatus(Status.Active.getKey());
|
||||
return account;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,9 +20,6 @@ import static ru.spcex.clearing.balance.utils.MatcherFactory.usingIgnoringFields
|
|||
class AccountBalanceServiceTest extends AbstractServiceTest {
|
||||
|
||||
public static final Matcher<AccountResult> ACCOUNT_BALANCE_MATCHER = usingIgnoringFieldsComparator("account.created", "account.updated", "account.clearingDate");
|
||||
private final Long id = 0L;
|
||||
private final Long accountIdNew = 0L;
|
||||
private final Long addresseeIdNew = 0L;
|
||||
private final BigDecimal amountNew = new BigDecimal(1000);
|
||||
private final String cashMovementCurrencyCodeNew = "cash";
|
||||
private final Long accountIdUpdate = accountIdNew;
|
||||
|
|
@ -43,21 +40,13 @@ class AccountBalanceServiceTest extends AbstractServiceTest {
|
|||
*/
|
||||
@Test
|
||||
void createAccountBalance() {
|
||||
Company company = new Company();
|
||||
company.setId(addresseeIdNew);
|
||||
company.setTradingCode("code");
|
||||
company.setShortName("ShortName");
|
||||
company.setFullName("FullName");
|
||||
companyMap.put(id, company);
|
||||
Account account = new Account();
|
||||
account.setId(accountIdNew);
|
||||
account.setAccount("123456789");
|
||||
account.setAccountType(AccountType.Clrn.getKey());
|
||||
account.setAccountStatus(Status.Active.getKey());
|
||||
accountMap.put(id, account);
|
||||
Company company = getTestCompany();
|
||||
companyMap.put(addresseeIdNew, company);
|
||||
Account account = getTestAccount(accountIdNew);
|
||||
accountMap.put(accountIdNew, account);
|
||||
|
||||
AccountBalance accountBalanceNew = new AccountBalance();
|
||||
accountBalanceNew.setId(id);
|
||||
accountBalanceNew.setId(accountIdNew);
|
||||
accountBalanceNew.setCompanyId(addresseeIdNew);
|
||||
accountBalanceNew.setAccountId(accountIdNew);
|
||||
accountBalanceNew.setAccountType(account.getAccountType());
|
||||
|
|
@ -72,10 +61,10 @@ class AccountBalanceServiceTest extends AbstractServiceTest {
|
|||
accountBalanceNew.setFullName(company.getFullName());
|
||||
AccountResult predictableNewResult = new AccountResult(accountBalanceNew);
|
||||
AccountResult resultNew = accountBalanceService.createAccountBalance(addresseeIdNew, accountIdNew, amountNew, cashMovementCurrencyCodeNew);
|
||||
resultNew.getAccount().setId(id);
|
||||
resultNew.getAccount().setId(accountIdNew);
|
||||
|
||||
AccountBalance accountBalanceUpdate = new AccountBalance();
|
||||
accountBalanceUpdate.setId(id);
|
||||
accountBalanceUpdate.setId(accountIdNew);
|
||||
accountBalanceUpdate.setCompanyId(addresseeIdUpdate);
|
||||
accountBalanceUpdate.setAccountId(accountIdUpdate);
|
||||
accountBalanceUpdate.setAccountType(account.getAccountType());
|
||||
|
|
@ -89,7 +78,7 @@ class AccountBalanceServiceTest extends AbstractServiceTest {
|
|||
accountBalanceUpdate.setShortName(company.getShortName());
|
||||
accountBalanceUpdate.setFullName(company.getFullName());
|
||||
AccountResult resultUpdate = accountBalanceService.createAccountBalance(addresseeIdUpdate, accountIdUpdate, amountUpdate, cashMovementCurrencyCodeUpdate);
|
||||
resultUpdate.getAccount().setId(id);
|
||||
resultUpdate.getAccount().setId(accountIdNew);
|
||||
AccountResult predictableUpdateResult = new AccountResult(accountBalanceUpdate);
|
||||
|
||||
ACCOUNT_BALANCE_MATCHER.assertMatch(resultNew, predictableNewResult);
|
||||
|
|
@ -110,18 +99,20 @@ class AccountBalanceServiceTest extends AbstractServiceTest {
|
|||
//CompanyNotFound
|
||||
AccountResult predictableResult;
|
||||
predictableResult = new AccountResult(new EnumMessage(BalanceError.CompanyNotFound));
|
||||
companyMap.delete(addresseeIdNew);
|
||||
|
||||
AccountResult result = accountBalanceService.createAccountBalance(addresseeIdNew, accountIdNew, amountNew, cashMovementCurrencyCodeNew);
|
||||
ACCOUNT_BALANCE_MATCHER.assertMatch(result, predictableResult);
|
||||
|
||||
result = accountBalanceService.createAccountBalance(null, accountIdNew, amountNew, cashMovementCurrencyCodeNew);
|
||||
ACCOUNT_BALANCE_MATCHER.assertMatch(result, predictableResult);
|
||||
|
||||
//AccountNotPresent accountType=null
|
||||
Company company = new Company();
|
||||
company.setId(addresseeIdNew);
|
||||
companyMap.put(id, company);
|
||||
companyMap.put(addresseeIdNew, getTestCompany());
|
||||
Account account = new Account();
|
||||
account.setId(accountIdNew);
|
||||
account.setAccountStatus(Status.Active.getKey());
|
||||
accountMap.put(id, account);
|
||||
accountMap.put(accountIdNew, account);
|
||||
predictableResult = new AccountResult(new EnumMessage(BalanceError.AccountNotPresent));
|
||||
|
||||
result = accountBalanceService.createAccountBalance(addresseeIdNew, accountIdNew, amountNew, cashMovementCurrencyCodeNew);
|
||||
|
|
@ -131,7 +122,7 @@ class AccountBalanceServiceTest extends AbstractServiceTest {
|
|||
account.setId(null);
|
||||
account.setAccountType(AccountType.Clrn.getKey());
|
||||
account.setAccountStatus(Status.Active.getKey());
|
||||
accountMap.put(id, account);
|
||||
accountMap.put(accountIdNew, account);
|
||||
predictableResult = new AccountResult(new EnumMessage(BalanceError.AccountNotPresent));
|
||||
|
||||
result = accountBalanceService.createAccountBalance(addresseeIdNew, accountIdNew, amountNew, cashMovementCurrencyCodeNew);
|
||||
|
|
@ -141,15 +132,16 @@ class AccountBalanceServiceTest extends AbstractServiceTest {
|
|||
account.setId(accountIdNew);
|
||||
account.setAccountType(AccountType.Clrn.getKey());
|
||||
account.setAccountStatus(null);
|
||||
accountMap.put(id, account);
|
||||
accountMap.put(accountIdNew, account);
|
||||
predictableResult = new AccountResult(new EnumMessage(BalanceError.AccountNotActive, account.getId()));
|
||||
|
||||
result = accountBalanceService.createAccountBalance(addresseeIdNew, accountIdNew, amountNew, cashMovementCurrencyCodeNew);
|
||||
ACCOUNT_BALANCE_MATCHER.assertMatch(result, predictableResult);
|
||||
|
||||
account.setAccountStatus(Status.Active.getKey());
|
||||
accountMap.put(id, account);
|
||||
accountMap.put(accountIdNew, account);
|
||||
result = accountBalanceService.createAccountBalance(addresseeIdNew, null, amountNew, cashMovementCurrencyCodeNew);
|
||||
predictableResult = new AccountResult(new EnumMessage(BalanceError.AccountNotPresent));
|
||||
ACCOUNT_BALANCE_MATCHER.assertMatch(result, predictableResult);
|
||||
}
|
||||
}
|
||||
|
|
@ -6,8 +6,6 @@ import ru.clearing.classes.statics.data.account.Account;
|
|||
import ru.clearing.classes.statics.data.company.Company;
|
||||
import ru.clearing.classes.statics.data.sdf.SDf01;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.balance.StatementRequest;
|
||||
import ru.spcex.platform.enumeration.AccountType;
|
||||
import ru.spcex.platform.enumeration.Status;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
|
|
@ -16,11 +14,9 @@ import java.util.Collections;
|
|||
class Sdf01ExecutorTest extends AbstractServiceTest {
|
||||
|
||||
private final static DateTimeFormatter datFormatter = DateTimeFormatter.ofPattern("dd.MM.yy");
|
||||
private final Long id = currentId.getAndIncrement();
|
||||
@Autowired
|
||||
Sdf01Executor sdf01Executor;
|
||||
private final String deal = "111111111";
|
||||
private final String acc = "123456789";
|
||||
private final Long id = currentId.getAndIncrement();
|
||||
|
||||
@Test
|
||||
void execute() {
|
||||
|
|
@ -32,15 +28,10 @@ class Sdf01ExecutorTest extends AbstractServiceTest {
|
|||
sDf01.setDat(LocalDate.now().format(datFormatter));
|
||||
sDf01.setAcc_type("A");
|
||||
|
||||
Company company = new Company();
|
||||
company.setTradingCode(deal);
|
||||
Company company = getTestCompany();
|
||||
companyMap.put(id, company);
|
||||
|
||||
Account account = new Account();
|
||||
account.setId(id);
|
||||
account.setAccount(acc);
|
||||
account.setAccountType(AccountType.Clrn.getKey());
|
||||
account.setAccountStatus(Status.Active.getKey());
|
||||
Account account = getTestAccount(id);
|
||||
accountMap.put(id, account);
|
||||
|
||||
StatementRequest statementRequest = new StatementRequest();
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
Loading…
Add table
Reference in a new issue