Fixing AccountBalanceServiceTest. And ImdgTransactionalHazelcast.getSingleObjectByFieldValues

This commit is contained in:
psemenkov 2022-12-14 14:24:12 +03:00
parent 7a564fce21
commit 59e2b7a3b8
2 changed files with 17 additions and 15 deletions

View file

@ -1,5 +1,6 @@
package ru.spcex.clearing.balance.service; package ru.spcex.clearing.balance.service;
import com.hazelcast.core.IMap;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Qualifier;
@ -12,8 +13,8 @@ import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.platform.enumeration.AccountType; import ru.spcex.platform.enumeration.AccountType;
import ru.spcex.platform.enumeration.BalanceAccountType; import ru.spcex.platform.enumeration.BalanceAccountType;
import ru.spcex.platform.enumeration.Status; import ru.spcex.platform.enumeration.Status;
import ru.spcex.platform.imdg.api.Imdg;
import ru.spcex.platform.imdg.api.ImdgProvider; import ru.spcex.platform.imdg.api.ImdgProvider;
import ru.spcex.platform.imdg.iml.hazelcast.adapter.ImdgHazelcast;
import ru.spcex.platform.utils.enumeration.EnumMessage; import ru.spcex.platform.utils.enumeration.EnumMessage;
import javax.annotation.PostConstruct; import javax.annotation.PostConstruct;
@ -40,30 +41,32 @@ class AccountBalanceServiceTest extends AbstractServiceTest {
@Qualifier("hazelcastServiceTest") @Qualifier("hazelcastServiceTest")
private ImdgProvider hazelcast; private ImdgProvider hazelcast;
private Imdg<Company> companyImdg; private IMap<Long, Company> companyMap;
private Imdg<Account> accountImdg; private IMap<Long, Account> accountMap;
@PostConstruct @PostConstruct
void init() { void init() {
companyImdg = hazelcast.getImdg(IMDGDistributedNames.Map_Company, Company.class); hazelcast.waitAvailable();
accountImdg = hazelcast.getImdg(IMDGDistributedNames.Map_Account, Account.class); ImdgHazelcast<Company> companyImdg = (ImdgHazelcast<Company>) hazelcast.getImdg(IMDGDistributedNames.Map_Company, Company.class);
ImdgHazelcast<Account> accountImdg = (ImdgHazelcast<Account>) hazelcast.getImdg(IMDGDistributedNames.Map_Account, Account.class);
companyMap = companyImdg.getMap();
accountMap = accountImdg.getMap();
} }
@Test @Test
void createAccountBalance() { void createAccountBalance() {
hazelcast.waitAvailable();
Company company = new Company(); Company company = new Company();
company.setId(addresseeIdNew); company.setId(addresseeIdNew);
company.setTradingCode("code"); company.setTradingCode("code");
company.setShortName("ShortName"); company.setShortName("ShortName");
company.setFullName("FullName"); company.setFullName("FullName");
companyImdg.insert(company); companyMap.put(id, company);
Account account = new Account(); Account account = new Account();
account.setId(accountIdNew); account.setId(accountIdNew);
account.setAccount("123456789"); account.setAccount("123456789");
account.setAccountType(AccountType.Clrn.getKey()); account.setAccountType(AccountType.Clrn.getKey());
account.setAccountStatus(Status.Active.getKey()); account.setAccountStatus(Status.Active.getKey());
accountImdg.insert(account); accountMap.put(id, account);
AccountBalance accountBalanceNew = new AccountBalance(); AccountBalance accountBalanceNew = new AccountBalance();
accountBalanceNew.setId(id); accountBalanceNew.setId(id);
@ -108,7 +111,6 @@ class AccountBalanceServiceTest extends AbstractServiceTest {
@Test @Test
void validatedCreateAccountBalance() { void validatedCreateAccountBalance() {
AccountResult predictableResult; AccountResult predictableResult;
hazelcast.waitAvailable();
predictableResult = new AccountResult(new EnumMessage(BalanceError.CompanyNotFound)); predictableResult = new AccountResult(new EnumMessage(BalanceError.CompanyNotFound));
AccountResult result = accountBalanceService.createAccountBalance(addresseeIdNew, accountIdNew, amountNew, cashMovementCurrencyCodeNew); AccountResult result = accountBalanceService.createAccountBalance(addresseeIdNew, accountIdNew, amountNew, cashMovementCurrencyCodeNew);
@ -116,13 +118,13 @@ class AccountBalanceServiceTest extends AbstractServiceTest {
Company company = new Company(); Company company = new Company();
company.setId(addresseeIdNew); company.setId(addresseeIdNew);
companyImdg.insert(company); companyMap.put(id, company);
Account account = new Account(); Account account = new Account();
// account.setId(accountIdNew); account.setId(accountIdNew);
account.setAccountType(AccountType.Clrn.getKey()); // account.setAccountType(AccountType.Clrn.getKey());
account.setAccountStatus(Status.Active.getKey()); account.setAccountStatus(Status.Active.getKey());
accountImdg.insert(account); accountMap.put(id, account);
predictableResult = new AccountResult(new EnumMessage(BalanceError.AccountNotPresent)); predictableResult = new AccountResult(new EnumMessage(BalanceError.AccountNotPresent));
result = accountBalanceService.createAccountBalance(addresseeIdNew, accountIdNew, amountNew, cashMovementCurrencyCodeNew); result = accountBalanceService.createAccountBalance(addresseeIdNew, accountIdNew, amountNew, cashMovementCurrencyCodeNew);

View file

@ -79,8 +79,8 @@ public class ImdgTransactionalHazelcast<T extends SpcexObjectBase> implements Im
predicates[i[0]] = Predicates.equal(key, value); predicates[i[0]] = Predicates.equal(key, value);
i[0]++; i[0]++;
}); });
Predicate<Long, T> or = Predicates.or(predicates); Predicate<Long, T> and = Predicates.and(predicates);
Set<Long> ids = map.keySet(or); Set<Long> ids = map.keySet(and);
Iterator<Long> idsIterator = ids.iterator(); Iterator<Long> idsIterator = ids.iterator();
if (idsIterator.hasNext()) { if (idsIterator.hasNext()) {
return map.get(idsIterator.next()); return map.get(idsIterator.next());