0 / 0 / 0
Регистрация: 05.02.2019
Сообщений: 29

Не отрабатывает when() на моке BusinessProcessManagementImpl сервиса json-rpc на Spring Boot

04.02.2020, 16:44. Показов 1306. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Не отрабатывает when() на моке BusinessProcessManagementImpl сервиса json-rpc на Spring Boot

Используемая зависимость

XML
1
2
3
4
5
<dependency>
    <groupId>com.github.briandilley.jsonrpc4j</groupId>
    <artifactId>jsonrpc4j</artifactId>
    <version>1.5.3</version>
</dependency>
Тест

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment= SpringBootTest.WebEnvironment.RANDOM_PORT)
public class BusinessProcessManagementServiceImplTest {
 
    @LocalServerPort
    int randomServerPort;
 
    @Mock
    BusinessProcessManagementServiceImpl businessProcessManagement;
 
    @Before
    public void before() {
        SbtProcessInstance sbtProcessInstance = new SbtProcessInstance();
        sbtProcessInstance.setId("sdfsdf");
        when(businessProcessManagement.startProcess(any(), anyString())).thenReturn(sbtProcessInstance);
    }
 
    @Test
    public void test() throws Throwable {
        URL url = new URL("http://localhost:" + randomServerPort + "/businessProcessManagement");
        JsonRpcRestClient client = new JsonRpcRestClient(url);
        Map<String, Object> params = new HashMap<>();
 
        SbtProcessDefinition sbtProcessDefinition = new SbtProcessDefinition();
        sbtProcessDefinition.setId("processTest");
        Message message = new Message();
        message.setName("TestMessage");
        DataObjectWrapper data = new DataObjectWrapper();
        Map<String, Object> inData = new HashedMap();
        inData.put("inn", "123123123");
        data.setObjectData(inData);
        message.setData(data);
 
        params.put("process", sbtProcessDefinition);
        params.put("globalInstanceId", "123456");
 
        Long result = client.invoke("startProcess", params, Long.class);
        System.out.println(result);
    }
}
Сам сервис

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
@JsonRpcService("/businessProcessManagement")
public interface BusinessProcessManagementService {
 
    SbtProcessInstance startProcess(@JsonRpcParam(value = "process") SbtProcessDefinition process,
                                    @JsonRpcParam(value = "globalInstanceId") String globalInstanceId);
 
    SbtProcessInstance startProcessWithMessage(@JsonRpcParam(value = "process") SbtProcessDefinition process,
                                               @JsonRpcParam(value = "globalInstanceId") String globalInstanceId,
                                               @JsonRpcParam(value = "message") Message message);
 
    void sendMessage(@JsonRpcParam(value = "instanceId") String instanceId,
                     @JsonRpcParam(value = "message") Message message);
 
    void sendResponse(@JsonRpcParam(value = "instanceId") String instanceId,
                      @JsonRpcParam(value = "correlationId") String correlationId,
                      @JsonRpcParam(value = "data") DataObjectWrapper data);
 
    UserTaskWrapper startUserTask(@JsonRpcParam(value = "userTaskId") String userTaskId);
 
    void completeUserTask(@JsonRpcParam(value = "userTaskId") String userTaskId,
                          @JsonRpcParam(value = "data") DataObjectWrapper data);
}
Реализация сервиса

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
@Service
@AutoJsonRpcServiceImpl
public class BusinessProcessManagementServiceImpl implements BusinessProcessManagementService {
 
    private final BusinessProcessManagementImpl businessProcessManagement;
 
    public BusinessProcessManagementServiceImpl(BusinessProcessManagementImpl businessProcessManagement) {
        this.businessProcessManagement = businessProcessManagement;
    }
 
    @Override
    public SbtProcessInstance startProcess(SbtProcessDefinition process, String globalInstanceId) {
        return businessProcessManagement.startProcess(process, globalInstanceId);
    }
 
    @Override
    public SbtProcessInstance startProcessWithMessage(SbtProcessDefinition process, String globalInstanceId, Message message) {
        return businessProcessManagement.startProcessWithMessage(process, globalInstanceId, message);
    }
 
    @Override
    public void sendMessage(String instanceId, Message message) {
        businessProcessManagement.sendMessage(instanceId, message);
    }
 
    @Override
    public void sendResponse(String instanceId, String correlationId, DataObjectWrapper data) {
        businessProcessManagement.sendResponse(instanceId, correlationId, data);
    }
 
    @Override
    public UserTaskWrapper startUserTask(String userTaskId) {
        return businessProcessManagement.startUserTask(userTaskId);
    }
 
    @Override
    public void completeUserTask(String userTaskId, DataObjectWrapper data) {
        businessProcessManagement.completeUserTask(userTaskId, data);
    }
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.02.2020, 16:44
Ответы с готовыми решениями:

Создать простой jUnit тест сервиса на Spring Boot
Доброго времени, хочу написать простой тест, который бы проверял работу сервиса, а именно его метода, который возвращает список объектов...

Ошибка при инициализации сервиса в представлении Vaadin [Spring-boot]
Пробую создать проект на Vaadin. Проект собирается нормально, все ui работают и т.д. Но любой сервис, который я пытаюсь инжектить в любом...

Комплексный json - ответ в spring boot используя jackson
Пишу spring mvc. Для отправки json использую view с полями id, name, phone. И jackson. После выполнения запроса в service (например,...

1
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
04.02.2020, 19:41
А как твой мок попадает в сервис?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.02.2020, 19:41
Помогаю со студенческими работами здесь

Что такое Spring, Spring Boot?
Здравствуйте. Никогда не использовал Spring, Spring Boot. Возник такой вопрос можно ли его использовать в IDE для java Se. Или для...

Spring в Spring Boot context
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext( &quot;applicationContext.xml&quot; ); ...

PHP и json-rpc
Уважаемые программисты, подскажите, как мне сделать запрос на сервер с передачей json строки?

Простой Json-rpc WebServices
Сразу извиняюсь, ищу подобный пример очень давно но не как не могу найти! Есть у меня подобный веб сервис который прекрасно работает...

Как включить JSON-RPC во Flask?
Доброго времени суток. Использую flask. Помогите пожалуйста как мне реализовать вот такой php код используя flask и python &lt;?php ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

Новые блоги и статьи
Angular: Вопросы и ответы на собеседовании
Reangularity 15.06.2025
Готовишься к техническому интервью по Angular? Я собрал самые распространенные вопросы, с которыми сталкиваются разработчики на собеседованиях в этом году. От базовых концепций до продвинутых. . .
Архитектура Onion в ASP.NET Core MVC
stackOverflow 15.06.2025
Что такое эта "луковая" архитектура? Термин предложил Джеффри Палермо (Jeffrey Palermo) в 2008 году, и с тех пор подход только набирал обороты. Суть проста - представьте себе лук с его. . .
Unity 4D
GameUnited 13.06.2025
Четырехмерное пространство. . . Звучит как что-то из научной фантастики, правда? Однако для меня, как разработчика со стажем в игровой индустрии, четвертое измерение давно перестало быть абстракцией из. . .
SSE (Server-Sent Events) в ASP.NET Core и .NET 10
UnmanagedCoder 13.06.2025
Кажется, Microsoft снова подкинула нам интересную фичу в новой версии фреймворка. Работая с превью . NET 10, я наткнулся на нативную поддержку Server-Sent Events (SSE) в ASP. NET Core Minimal APIs. Эта. . .
С днём независимости России!
Hrethgir 13.06.2025
Решил побеседовать, с утра праздничного дня, с LM о завоеваниях. То что она написала о народе, представителем которого я являюсь сам сначала возмутило меня, но дальше только смешило. Это чисто. . .
Лето вокруг.
kumehtar 13.06.2025
Лето вокруг. Наполненное бурями и ураганами событий. На фоне магии Жизни, священной и вечной, неумелой рукой человека рисуется панорама душевного непокоя. Странные серые краски проникают и. . .
Популярные LM модели ориентированы на увеличение затрат ресурсов пользователями сгенерированного кода (грязь -заслуги чистоплюев).
Hrethgir 12.06.2025
Вообще обратил внимание, что они генерируют код (впрочем так-же ориентированы разработчики чипов даже), чтобы пользователь их использующий уходил в тот или иной убыток. Это достаточно опытные модели,. . .
Топ10 библиотек C для квантовых вычислений
bytestream 12.06.2025
Квантовые вычисления - это та область, где теория встречается с практикой на границе наших знаний о физике. Пока большая часть шума вокруг квантовых компьютеров крутится вокруг языков высокого уровня. . .
Dispose и Finalize в C#
stackOverflow 12.06.2025
Работая с C# больше десяти лет, я снова и снова наблюдаю одну и ту же историю: разработчики наивно полагаются на сборщик мусора, как на волшебную палочку, которая решит все проблемы с памятью. Да,. . .
Повышаем производительность игры на Unity 6 с GPU Resident Drawer
GameUnited 11.06.2025
Недавно копался в новых фичах Unity 6 и наткнулся на GPU Resident Drawer - штуку, которая заставила меня присвистнуть от удивления. По сути, это внутренний механизм рендеринга, который автоматически. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru