diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf08Executor.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf08Executor.java index ab0f3fd73..6705fe6bb 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf08Executor.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf08Executor.java @@ -183,10 +183,20 @@ public class Sdf08Executor extends AbstractExecutor { 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 { 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); } diff --git a/clearing-parent/clearing-service/src/test/java/ru/spcex/clearing/service/executors/Sdf08ExecutorTest.java b/clearing-parent/clearing-service/src/test/java/ru/spcex/clearing/service/executors/Sdf08ExecutorTest.java new file mode 100644 index 000000000..18d5be287 --- /dev/null +++ b/clearing-parent/clearing-service/src/test/java/ru/spcex/clearing/service/executors/Sdf08ExecutorTest.java @@ -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")); + } +} \ No newline at end of file