Добавил валидацию на null в AccountBalanceValidationRule.CompanyPresent, AccountBalanceValidationRule.AccountOk. Поправил тест AccountBalanceServiceTest.

This commit is contained in:
psemenkov 2022-12-28 18:40:40 +03:00
parent 301d06a4c4
commit 6974ee2087
5 changed files with 317 additions and 1882 deletions

View file

@ -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()));

View file

@ -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;
}
}

View file

@ -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);
}
}

View file

@ -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