25ed84c43c0f21cc94b28050f77df4dcde49d9f9
[integration.git] /
1 /*
2  * ============LICENSE_START=======================================================
3  * PNF-REGISTRATION-HANDLER
4  * ================================================================================
5  * Copyright (C) 2018 Nokia. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.onap.pnfsimulator.simulator.scheduler;
22
23 import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
24 import static org.mockito.Mockito.mock;
25 import static org.mockito.Mockito.verify;
26 import static org.mockito.Mockito.when;
27 import static org.onap.pnfsimulator.simulator.scheduler.EventJob.BODY;
28 import static org.onap.pnfsimulator.simulator.scheduler.EventJob.CLIENT_ADAPTER;
29 import static org.onap.pnfsimulator.simulator.scheduler.EventJob.EVENT_ID;
30 import static org.onap.pnfsimulator.simulator.scheduler.EventJob.KEYWORDS_HANDLER;
31 import static org.onap.pnfsimulator.simulator.scheduler.EventJob.TEMPLATE_NAME;
32 import static org.onap.pnfsimulator.simulator.scheduler.EventJob.VES_URL;
33
34 import com.google.gson.JsonObject;
35 import com.google.gson.JsonParser;
36 import org.junit.jupiter.api.Test;
37 import org.mockito.ArgumentCaptor;
38 import org.onap.pnfsimulator.simulator.KeywordsExtractor;
39 import org.onap.pnfsimulator.simulator.KeywordsHandler;
40 import org.onap.pnfsimulator.simulator.client.HttpClientAdapter;
41 import org.quartz.JobDataMap;
42 import org.quartz.JobDetail;
43 import org.quartz.JobExecutionContext;
44 import org.quartz.JobKey;
45
46 class EventJobTest {
47
48     @Test
49     void shouldSendEventWhenExecuteCalled() {
50         //given
51         EventJob eventJob = new EventJob();
52         String templateName = "template name";
53         String vesUrl = "http://someurl:80/";
54         String eventId = "1";
55         JsonParser parser = new JsonParser();
56         JsonObject body = parser.parse("{\"a\": \"A\"}").getAsJsonObject();
57         HttpClientAdapter clientAdapter = mock(HttpClientAdapter.class);
58         JobExecutionContext jobExecutionContext =
59             createMockJobExecutionContext(templateName, eventId, vesUrl, body, clientAdapter);
60
61         ArgumentCaptor<String> vesUrlCaptor = ArgumentCaptor.forClass(String.class);
62         ArgumentCaptor<String> bodyCaptor = ArgumentCaptor.forClass(String.class);
63
64         //when
65         eventJob.execute(jobExecutionContext);
66
67         //then
68         verify(clientAdapter).send(bodyCaptor.capture());
69         assertThat(bodyCaptor.getValue()).isEqualTo(body.toString());
70     }
71
72     private JobExecutionContext createMockJobExecutionContext(String templateName, String eventId, String vesURL,
73         JsonObject body, HttpClientAdapter clientAdapter) {
74
75         JobDataMap jobDataMap = new JobDataMap();
76         jobDataMap.put(TEMPLATE_NAME, templateName);
77         jobDataMap.put(KEYWORDS_HANDLER, new KeywordsHandler(new KeywordsExtractor(), (id) -> 1));
78         jobDataMap.put(EVENT_ID, eventId);
79         jobDataMap.put(VES_URL, vesURL);
80         jobDataMap.put(BODY, body);
81         jobDataMap.put(CLIENT_ADAPTER, clientAdapter);
82
83         JobExecutionContext jobExecutionContext = mock(JobExecutionContext.class);
84         JobDetail jobDetail = mock(JobDetail.class);
85         when(jobExecutionContext.getJobDetail()).thenReturn(jobDetail);
86         when(jobDetail.getJobDataMap()).thenReturn(jobDataMap);
87         when(jobDetail.getKey()).thenReturn(new JobKey("jobId", "group"));
88         return jobExecutionContext;
89     }
90 }