clearing-service http://jira.mfd.msk:8088/browse/CLS-265 Sdf08Executor поправил тип счёта-депо (рефакторинг)

This commit is contained in:
AKurakin 2023-06-14 18:35:48 +03:00
parent c211870d3f
commit 9292206208
2 changed files with 36 additions and 9 deletions

View file

@ -183,10 +183,20 @@ public class Sdf08Executor extends AbstractExecutor<SDf08> {
return Optional.empty();
}
String parseAccountType(String depoCode) {
String accountType = null;
if (depoCode != null) {
int p = depoCode.indexOf(":");
if (p > 3) { // выбрать 3-ю букву, отсчитывая от последнего символа
accountType = depoCode.substring(p - 3, p - 2);
}
}
return accountType;
}
/**
*
* @param sdf01Id
* @param account DepoCode
* @param account DepoCode
* @param companyId
* @return AccountSdfRequestPart
*/
@ -194,13 +204,7 @@ public class Sdf08Executor extends AbstractExecutor<SDf08> {
AccountSdfRequestPart req = new AccountSdfRequestPart();
req.setAccount(account);
req.setCompanyId(companyId);
String accountType = null;
if (account != null) {
int p = account.indexOf(":");
if (p > 3) { // выбрать 3-ю букву, отсчитывая от последнего символа
accountType = account.substring(p - 3, p - 2);
}
}
String accountType = parseAccountType(account);
if (accountType == null) {
log.warn("Unparseable depoCode of account: \"{}\"", account);
}

View file

@ -0,0 +1,23 @@
package ru.spcex.clearing.service.executors;
import org.junit.jupiter.api.Test;
import org.mockito.Mockito;
import ru.spcex.platform.imdg.api.ImdgProvider;
import ru.spcex.platform.utils.enumeration.SimpleMessageResolver;
import static org.junit.jupiter.api.Assertions.*;
class Sdf08ExecutorTest {
@Test
void parseAccountType() {
ImdgProvider imdgP = Mockito.mock(ImdgProvider.class);
Sdf08Executor sdf08Executor = new Sdf08Executor(null, imdgP, new SimpleMessageResolver());
assertNull(sdf08Executor.parseAccountType(null));
assertNull(sdf08Executor.parseAccountType("."));
assertNull(sdf08Executor.parseAccountType("AAA222"));
assertNull(sdf08Executor.parseAccountType("AA:A222"));
assertEquals("B", sdf08Executor.parseAccountType("AAB12:A222"));
}
}