From 9292206208524a895c05c7697722889e2c2f86d2 Mon Sep 17 00:00:00 2001 From: AKurakin Date: Wed, 14 Jun 2023 18:35:48 +0300 Subject: [PATCH] =?UTF-8?q?clearing-service=20http://jira.mfd.msk:8088/bro?= =?UTF-8?q?wse/CLS-265=20Sdf08Executor=20=D0=BF=D0=BE=D0=BF=D1=80=D0=B0?= =?UTF-8?q?=D0=B2=D0=B8=D0=BB=20=D1=82=D0=B8=D0=BF=20=D1=81=D1=87=D1=91?= =?UTF-8?q?=D1=82=D0=B0-=D0=B4=D0=B5=D0=BF=D0=BE=20(=D1=80=D0=B5=D1=84?= =?UTF-8?q?=D0=B0=D0=BA=D1=82=D0=BE=D1=80=D0=B8=D0=BD=D0=B3)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/executors/Sdf08Executor.java | 22 ++++++++++-------- .../service/executors/Sdf08ExecutorTest.java | 23 +++++++++++++++++++ 2 files changed, 36 insertions(+), 9 deletions(-) create mode 100644 clearing-parent/clearing-service/src/test/java/ru/spcex/clearing/service/executors/Sdf08ExecutorTest.java 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