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;
import com.hazelcast.core.IMap;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
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.BalanceAccountType;
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.iml.hazelcast.adapter.ImdgHazelcast;
import ru.spcex.platform.utils.enumeration.EnumMessage;
import javax.annotation.PostConstruct;
@ -40,30 +41,32 @@ class AccountBalanceServiceTest extends AbstractServiceTest {
@Qualifier("hazelcastServiceTest")
private ImdgProvider hazelcast;
private Imdg<Company> companyImdg;
private Imdg<Account> accountImdg;
private IMap<Long, Company> companyMap;
private IMap<Long, Account> accountMap;
@PostConstruct
void init() {
companyImdg = hazelcast.getImdg(IMDGDistributedNames.Map_Company, Company.class);
accountImdg = hazelcast.getImdg(IMDGDistributedNames.Map_Account, Account.class);
hazelcast.waitAvailable();
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
void createAccountBalance() {
hazelcast.waitAvailable();
Company company = new Company();
company.setId(addresseeIdNew);
company.setTradingCode("code");
company.setShortName("ShortName");
company.setFullName("FullName");
companyImdg.insert(company);
companyMap.put(id, company);
Account account = new Account();
account.setId(accountIdNew);
account.setAccount("123456789");
account.setAccountType(AccountType.Clrn.getKey());
account.setAccountStatus(Status.Active.getKey());
accountImdg.insert(account);
accountMap.put(id, account);
AccountBalance accountBalanceNew = new AccountBalance();
accountBalanceNew.setId(id);
@ -108,7 +111,6 @@ class AccountBalanceServiceTest extends AbstractServiceTest {
@Test
void validatedCreateAccountBalance() {
AccountResult predictableResult;
hazelcast.waitAvailable();
predictableResult = new AccountResult(new EnumMessage(BalanceError.CompanyNotFound));
AccountResult result = accountBalanceService.createAccountBalance(addresseeIdNew, accountIdNew, amountNew, cashMovementCurrencyCodeNew);
@ -116,13 +118,13 @@ class AccountBalanceServiceTest extends AbstractServiceTest {
Company company = new Company();
company.setId(addresseeIdNew);
companyImdg.insert(company);
companyMap.put(id, company);
Account account = new Account();
// account.setId(accountIdNew);
account.setAccountType(AccountType.Clrn.getKey());
account.setId(accountIdNew);
// account.setAccountType(AccountType.Clrn.getKey());
account.setAccountStatus(Status.Active.getKey());
accountImdg.insert(account);
accountMap.put(id, account);
predictableResult = new AccountResult(new EnumMessage(BalanceError.AccountNotPresent));
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);
i[0]++;
});
Predicate<Long, T> or = Predicates.or(predicates);
Set<Long> ids = map.keySet(or);
Predicate<Long, T> and = Predicates.and(predicates);
Set<Long> ids = map.keySet(and);
Iterator<Long> idsIterator = ids.iterator();
if (idsIterator.hasNext()) {
return map.get(idsIterator.next());