Merge branch 'dev' of http://git.mfd.msk/mfd/clearing into dev

This commit is contained in:
aalehin 2023-01-26 12:09:05 +03:00
commit b67d4fb7a1
3 changed files with 26 additions and 20 deletions

View file

@ -25,7 +25,6 @@ import ru.spcex.platform.imdg.iml.hazelcast.adapter.ImdgHazelcast;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode; import java.math.RoundingMode;
import java.time.format.DateTimeFormatter;
import java.util.concurrent.atomic.AtomicLong; import java.util.concurrent.atomic.AtomicLong;
import static ru.spcex.clearing.balance.utils.MatcherFactory.usingIgnoringFieldsComparator; import static ru.spcex.clearing.balance.utils.MatcherFactory.usingIgnoringFieldsComparator;
@ -49,8 +48,6 @@ public abstract class AbstractServiceTest {
protected static final MatcherFactory.Matcher<AccountBalance> ACCOUNT_BALANCE_MATCHER = usingIgnoringFieldsComparator("created", "updated", "clearingDate", "id"); protected static final MatcherFactory.Matcher<AccountBalance> ACCOUNT_BALANCE_MATCHER = usingIgnoringFieldsComparator("created", "updated", "clearingDate", "id");
protected static final MatcherFactory.Matcher<Result> RESULT_MATCHER = usingIgnoringFieldsComparator("account.created", "account.updated", "account.clearingDate", "generationId"); protected static final MatcherFactory.Matcher<Result> RESULT_MATCHER = usingIgnoringFieldsComparator("account.created", "account.updated", "account.clearingDate", "generationId");
protected static final MatcherFactory.Matcher<Statement> STATEMENT_MATCHER = usingIgnoringFieldsComparator("created", "comment", "outSDfId", "updated", "id"); protected static final MatcherFactory.Matcher<Statement> STATEMENT_MATCHER = usingIgnoringFieldsComparator("created", "comment", "outSDfId", "updated", "id");
protected final static DateTimeFormatter datFormatter = DateTimeFormatter.ofPattern("dd.MM.yy hh:mm");
protected final Long accountIdNew = 10L; protected final Long accountIdNew = 10L;
protected final Long addresseeIdNew = 2L; protected final Long addresseeIdNew = 2L;
protected final String deal = "111111111"; protected final String deal = "111111111";

View file

@ -12,6 +12,7 @@ import ru.spcex.platform.enumeration.BalanceAccountType;
import ru.spcex.platform.enumeration.Status; import ru.spcex.platform.enumeration.Status;
import ru.spcex.platform.utils.enumeration.EnumMessage; import ru.spcex.platform.utils.enumeration.EnumMessage;
import javax.annotation.PostConstruct;
import java.math.BigDecimal; import java.math.BigDecimal;
import static ru.spcex.clearing.balance.utils.MatcherFactory.usingIgnoringFieldsComparator; import static ru.spcex.clearing.balance.utils.MatcherFactory.usingIgnoringFieldsComparator;
@ -29,6 +30,11 @@ class AccountBalanceServiceTest extends AbstractServiceTest {
@Autowired @Autowired
AccountBalanceService accountBalanceService; AccountBalanceService accountBalanceService;
@PostConstruct
void init() {
super.init();
}
/** /**
* {@link AccountBalanceService#createAccountBalance(Long addresseeId, Long accountId, BigDecimal amount, String cashMovementCurrencyCode)}<br> * {@link AccountBalanceService#createAccountBalance(Long addresseeId, Long accountId, BigDecimal amount, String cashMovementCurrencyCode)}<br>
* Тест проверяет генерацию сущности {@link AccountResult}<br> * Тест проверяет генерацию сущности {@link AccountResult}<br>

View file

@ -19,6 +19,7 @@ import ru.spcex.platform.utils.number.BigDecimalUtil;
import javax.annotation.PostConstruct; import javax.annotation.PostConstruct;
import java.time.Instant; import java.time.Instant;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Collection; import java.util.Collection;
import java.util.Collections; import java.util.Collections;
import java.util.Map; import java.util.Map;
@ -26,18 +27,17 @@ import java.util.Map;
import static ru.spcex.clearing.balance.utils.MatcherFactory.usingIgnoringFieldsComparator; import static ru.spcex.clearing.balance.utils.MatcherFactory.usingIgnoringFieldsComparator;
class Sdf01ExecutorTest extends AbstractServiceTest { class Sdf01ExecutorTest extends AbstractServiceTest {
final static DateTimeFormatter datFormatter = DateTimeFormatter.ofPattern("dd.MM.yy");
private static final MatcherFactory.Matcher<SDf02> SDF_02_MATCHER = usingIgnoringFieldsComparator("created", "comment", "outSDfId", "generationTime", "generationId", "id"); private static final MatcherFactory.Matcher<SDf02> SDF_02_MATCHER = usingIgnoringFieldsComparator("created", "comment", "outSDfId", "generationTime", "generationId", "id");
private final String acc = "123456789"; private final String acc = "123456789";
private final Long ID = 1L; private final Long ID = 1L;
@Autowired @Autowired
Sdf01Executor sdf01Executor; Sdf01Executor sdf01Executor;
private SDf01 sdf01;
private StatementRequest statementRequest; private StatementRequest statementRequest;
@PostConstruct @PostConstruct
void init() { void init() {
super.init(); super.init();
sdf01 = getTestSdf01();
statementRequest = new StatementRequest(); statementRequest = new StatementRequest();
} }
@ -59,6 +59,7 @@ class Sdf01ExecutorTest extends AbstractServiceTest {
@Test @Test
void execute() { void execute() {
//check create statement, SDf02 and AccountBalance //check create statement, SDf02 and AccountBalance
SDf01 sdf01 = getTestSdf01();
Company company = getTestCompany(); Company company = getTestCompany();
companyMap.put(addresseeIdNew, company); companyMap.put(addresseeIdNew, company);
@ -102,11 +103,12 @@ class Sdf01ExecutorTest extends AbstractServiceTest {
@Test @Test
void validatedExecute() { void validatedExecute() {
//CompanyNotFound //CompanyNotFound
SDf01 sdf01 = getTestSdf01();
companyMap.delete(addresseeIdNew); companyMap.delete(addresseeIdNew);
checkError(new EnumMessage(BalanceError.CompanyNotFound)); checkError(new EnumMessage(BalanceError.CompanyNotFound), sdf01);
sdf01.setDeal(null); sdf01.setDeal(null);
checkError(new EnumMessage(BalanceError.CompanyNotFound)); checkError(new EnumMessage(BalanceError.CompanyNotFound), sdf01);
//AccountNotPresent accountType=null //AccountNotPresent accountType=null
sdf01.setDeal(deal); sdf01.setDeal(deal);
@ -116,56 +118,56 @@ class Sdf01ExecutorTest extends AbstractServiceTest {
account.setAccount(acc); account.setAccount(acc);
account.setAccountStatus(Status.Active.getKey()); account.setAccountStatus(Status.Active.getKey());
accountMap.put(accountIdNew, account); accountMap.put(accountIdNew, account);
checkErrorAccountNotPresent(company); checkErrorAccountNotPresent(company, sdf01);
//AccountNotPresent account=null //AccountNotPresent account=null
account.setAccount(null); account.setAccount(null);
account.setAccountType(AccountType.Clrn.getKey()); account.setAccountType(AccountType.Clrn.getKey());
account.setAccountStatus(Status.Active.getKey()); account.setAccountStatus(Status.Active.getKey());
accountMap.put(accountIdNew, account); accountMap.put(accountIdNew, account);
checkErrorAccountNotPresent(company); checkErrorAccountNotPresent(company, sdf01);
//AccountNotPresent sdf01.account==null //AccountNotPresent sdf01.account==null
sdf01.setAccount(null); sdf01.setAccount(null);
checkErrorAccountNotPresent(company); checkErrorAccountNotPresent(company, sdf01);
//CurrencyNotFound sdf01.curr_code =! "RUR" //CurrencyNotFound sdf01.curr_code =! "RUR"
accountMap.put(accountIdNew, getTestAccount(ID, acc)); accountMap.put(accountIdNew, getTestAccount(ID, acc));
sdf01.setAccount(acc); sdf01.setAccount(acc);
sdf01.setCurr_code("RUB"); sdf01.setCurr_code("RUB");
checkError(new EnumMessage(BalanceError.CurrencyNotFound)); checkError(new EnumMessage(BalanceError.CurrencyNotFound), sdf01);
//CurrencyNotFound sdf01.curr_code =! "RUR" //CurrencyNotFound sdf01.curr_code =! "RUR"
sdf01.setCurr_code(null); sdf01.setCurr_code(null);
checkError(new EnumMessage(BalanceError.CurrencyNotFound)); checkError(new EnumMessage(BalanceError.CurrencyNotFound), sdf01);
//CurrentDateOnly //CurrentDateOnly
sdf01.setCurr_code("RUR"); sdf01.setCurr_code("RUR");
sdf01.setDat("19.01.23"); sdf01.setDat("19.01.23");
checkError(new EnumMessage(BalanceError.CurrentDateOnly)); checkError(new EnumMessage(BalanceError.CurrentDateOnly), sdf01);
//CurrentDateOnly //CurrentDateOnly
sdf01.setDat("19.01.2023"); sdf01.setDat("19.01.2023");
checkError(new EnumMessage(BalanceError.CurrentDateOnly)); checkError(new EnumMessage(BalanceError.CurrentDateOnly), sdf01);
//CurrentDateOnly //CurrentDateOnly
sdf01.setDat(null); sdf01.setDat(null);
checkError(new EnumMessage(BalanceError.CurrentDateOnly)); checkError(new EnumMessage(BalanceError.CurrentDateOnly), sdf01);
//WrongAccount //WrongAccount
sdf01.setDat(LocalDate.now().format(datFormatter)); sdf01.setDat(LocalDate.now().format(datFormatter));
sdf01.setAcc_type(null); sdf01.setAcc_type(null);
checkError(new EnumMessage(BalanceError.WrongAccount)); checkError(new EnumMessage(BalanceError.WrongAccount), sdf01);
//WrongMarket //WrongMarket
sdf01.setAcc_type("A"); sdf01.setAcc_type("A");
sdf01.setMarket(null); sdf01.setMarket(null);
checkError(new EnumMessage(BalanceError.WrongMarket)); checkError(new EnumMessage(BalanceError.WrongMarket), sdf01);
sdf01.setMarket("U"); sdf01.setMarket("U");
} }
private void checkError(EnumMessage enumMessage) { private void checkError(EnumMessage enumMessage, SDf01 sdf01) {
// SDf01 sdf01 = getTestSdf01(); // SDf01 sdf01 = getTestSdf01();
SDf02 predictableSdf02 = getTestErrorSdf02(sdf01, enumMessage, ID); SDf02 predictableSdf02 = getTestErrorSdf02(sdf01, enumMessage, ID);
Result result = sdf01Executor.execute(Collections.singletonList(sdf01), statementRequest); Result result = sdf01Executor.execute(Collections.singletonList(sdf01), statementRequest);
@ -174,7 +176,7 @@ class Sdf01ExecutorTest extends AbstractServiceTest {
SDF_02_MATCHER.assertMatch(resultSdf02, predictableSdf02); SDF_02_MATCHER.assertMatch(resultSdf02, predictableSdf02);
} }
private void checkErrorAccountNotPresent(Company company) { private void checkErrorAccountNotPresent(Company company, SDf01 sdf01) {
Result predictableResult = new Result(); Result predictableResult = new Result();
predictableResult.getAccountRequests().add(createAccountRequestPart(sdf01.getId(), sdf01.getAccount(), company.getId())); predictableResult.getAccountRequests().add(createAccountRequestPart(sdf01.getId(), sdf01.getAccount(), company.getId()));
Result result = sdf01Executor.execute(Collections.singletonList(sdf01), statementRequest); Result result = sdf01Executor.execute(Collections.singletonList(sdf01), statementRequest);
@ -205,13 +207,14 @@ class Sdf01ExecutorTest extends AbstractServiceTest {
} }
private SDf01 getTestSdf01() { private SDf01 getTestSdf01() {
LocalDate date = LocalDate.now();
SDf01 sdf01 = new SDf01(); SDf01 sdf01 = new SDf01();
sdf01.setId(ID); sdf01.setId(ID);
sdf01.setMarket("U"); sdf01.setMarket("U");
sdf01.setDeal(deal); sdf01.setDeal(deal);
sdf01.setAccount(acc); sdf01.setAccount(acc);
sdf01.setCurr_code("RUR"); sdf01.setCurr_code("RUR");
sdf01.setDat(LocalDate.now().format(datFormatter)); sdf01.setDat(date.format(datFormatter));
sdf01.setAcc_type("A"); sdf01.setAcc_type("A");
sdf01.setRemainder(amountNew.toString()); sdf01.setRemainder(amountNew.toString());
return sdf01; return sdf01;