Merge "Validate ids"
[clamp.git] / src / test / java / org / onap / clamp / clds / client / HolmesPolicyDeleteDelegateTest.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP CLAMP
4  * ================================================================================
5  * Copyright (C) 2019 Samsung. 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  */
22
23 package org.onap.clamp.clds.client;
24
25 import static org.mockito.Mockito.any;
26 import static org.mockito.Mockito.eq;
27 import static org.mockito.Mockito.never;
28 import static org.mockito.Mockito.verify;
29 import static org.mockito.Mockito.when;
30
31 import org.apache.camel.Exchange;
32 import org.junit.Test;
33 import org.junit.runner.RunWith;
34 import org.mockito.InjectMocks;
35 import org.mockito.Mock;
36 import org.mockito.runners.MockitoJUnitRunner;
37 import org.onap.clamp.clds.client.req.policy.PolicyClient;
38 import org.onap.clamp.clds.exception.ModelBpmnException;
39
40 @RunWith(MockitoJUnitRunner.class)
41 public class HolmesPolicyDeleteDelegateTest {
42
43     private static final String MODEL_BPMN_KEY = "modelBpmnProp";
44     private static final String MODEL_PROP_KEY = "modelProp";
45     private static final String TEST_KEY = "isTest";
46
47     private static final String HOLMES_ID_FROM_JSON = "{\"holmes\":[{\"id\":\"\",\"from\":\"\"}]}";
48     private static final String TCA_ID_FROM_JSON = "{\"tca\":[{\"id\":\"\",\"from\":\"\"}]}";
49     private static final String ID_JSON = "{\"id\":\"\"}";
50     private static final String NOT_JSON = "not json";
51
52     @Mock
53     private Exchange exchange;
54
55     @Mock
56     private PolicyClient policyClient;
57
58     @InjectMocks
59     private HolmesPolicyDeleteDelegate holmesPolicyDeleteDelegate;
60
61     @Test
62     public void shouldExecuteSuccessfully() {
63         // given
64         when(exchange.getProperty(eq(MODEL_BPMN_KEY))).thenReturn(HOLMES_ID_FROM_JSON);
65         when(exchange.getProperty(eq(MODEL_PROP_KEY))).thenReturn(ID_JSON);
66         when(exchange.getProperty(eq(TEST_KEY))).thenReturn(false);
67
68         // when
69         holmesPolicyDeleteDelegate.execute(exchange);
70
71         // then
72         verify(policyClient).deleteBasePolicy(any());
73     }
74
75     @Test
76     public void shouldExecuteHolmesNotFound() {
77         // given
78         when(exchange.getProperty(eq(MODEL_BPMN_KEY))).thenReturn(TCA_ID_FROM_JSON);
79         when(exchange.getProperty(eq(MODEL_PROP_KEY))).thenReturn(ID_JSON);
80         when(exchange.getProperty(eq(TEST_KEY))).thenReturn(false);
81
82         // when
83         holmesPolicyDeleteDelegate.execute(exchange);
84
85         // then
86         verify(policyClient, never()).deleteBasePolicy(any());
87     }
88
89     @Test(expected = ModelBpmnException.class)
90     public void shouldThrowModelBpmnException() {
91         // given
92         when(exchange.getProperty(eq(MODEL_BPMN_KEY))).thenReturn(NOT_JSON);
93         when(exchange.getProperty(eq(TEST_KEY))).thenReturn(false);
94
95         // when
96         holmesPolicyDeleteDelegate.execute(exchange);
97     }
98
99     @Test(expected = NullPointerException.class)
100     public void shouldThrowNullPointerException() {
101         // when
102         holmesPolicyDeleteDelegate.execute(exchange);
103     }
104 }