Migrate from DW to Springboot
[holmes/rule-management.git] / rulemgt / src / test / java / org / onap / holmes / rulemgt / resources / RuleMgtResourcesTest.java
1 /**\r
2  * Copyright 2017-2022 ZTE Corporation.\r
3  *\r
4  * Licensed under the Apache License, Version 2.0 (the "License");\r
5  * you may not use this file except in compliance with the License.\r
6  * You may obtain a copy of the License at\r
7  *\r
8  *     http://www.apache.org/licenses/LICENSE-2.0\r
9  *\r
10  * Unless required by applicable law or agreed to in writing, software\r
11  * distributed under the License is distributed on an "AS IS" BASIS,\r
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
13  * See the License for the specific language governing permissions and\r
14  * limitations under the License.\r
15  */\r
16 \r
17 package org.onap.holmes.rulemgt.resources;\r
18 \r
19 import com.google.gson.JsonSyntaxException;\r
20 import jakarta.ws.rs.WebApplicationException;\r
21 import org.easymock.EasyMock;\r
22 import org.junit.Before;\r
23 import org.junit.Rule;\r
24 import org.junit.Test;\r
25 import org.junit.rules.ExpectedException;\r
26 import org.junit.runner.RunWith;\r
27 import org.onap.holmes.common.exception.CorrelationException;\r
28 import org.onap.holmes.rulemgt.bean.request.RuleCreateRequest;\r
29 import org.onap.holmes.rulemgt.bean.request.RuleDeleteRequest;\r
30 import org.onap.holmes.rulemgt.bean.request.RuleQueryCondition;\r
31 import org.onap.holmes.rulemgt.bean.request.RuleUpdateRequest;\r
32 import org.onap.holmes.rulemgt.bean.response.RuleAddAndUpdateResponse;\r
33 import org.onap.holmes.rulemgt.bean.response.RuleQueryListResponse;\r
34 import org.onap.holmes.rulemgt.wrapper.RuleMgtWrapper;\r
35 import org.powermock.api.easymock.PowerMock;\r
36 import org.powermock.modules.junit4.PowerMockRunner;\r
37 import org.powermock.reflect.Whitebox;\r
38 \r
39 import javax.servlet.http.HttpServletRequest;\r
40 \r
41 @RunWith(PowerMockRunner.class)\r
42 public class RuleMgtResourcesTest {\r
43 \r
44     @Rule\r
45     public ExpectedException thrown = ExpectedException.none();\r
46 \r
47     private HttpServletRequest request = PowerMock.createMock(HttpServletRequest.class);\r
48 \r
49     private RuleMgtWrapper ruleMgtWrapper = PowerMock.createMock(RuleMgtWrapper.class);\r
50 \r
51     private RuleMgtResources ruleMgtResources = new RuleMgtResources();\r
52 \r
53     @Before\r
54     public void setUp() throws Exception {\r
55         Whitebox.setInternalState(ruleMgtResources, "ruleMgtWrapper", ruleMgtWrapper);\r
56         PowerMock.resetAll();\r
57     }\r
58 \r
59     @Test\r
60     public void addCorrelationRule_correlation_exception() throws Exception {\r
61         PowerMock.resetAll();\r
62         thrown.expect(WebApplicationException.class);\r
63 \r
64         final RuleCreateRequest ruleCreateRequest = new RuleCreateRequest();\r
65         EasyMock.expect(ruleMgtWrapper.addCorrelationRule("admin", ruleCreateRequest))\r
66                 .andThrow(new CorrelationException(EasyMock.anyObject(String.class)));\r
67         EasyMock.expect(request.getHeader("username")).andReturn("admin");\r
68         PowerMock.replayAll();\r
69         ruleMgtResources.addCorrelationRule(request, ruleCreateRequest);\r
70         PowerMock.verifyAll();\r
71     }\r
72 \r
73     @Test\r
74     public void addCorrelationRule_normal() throws Exception {\r
75         StringBuilder stringBuilder = new StringBuilder("http://localhost");\r
76         final RuleCreateRequest ruleCreateRequest = new RuleCreateRequest();\r
77         EasyMock.expect(ruleMgtWrapper.addCorrelationRule("admin",\r
78                 ruleCreateRequest)).andReturn(new RuleAddAndUpdateResponse());\r
79         EasyMock.expect(request.getHeader("username")).andReturn("admin");\r
80         PowerMock.replayAll();\r
81         ruleMgtResources.addCorrelationRule(request, ruleCreateRequest);\r
82         PowerMock.verifyAll();\r
83     }\r
84 \r
85     @Test\r
86     public void updateCorrelationRule_correlation_exception() throws Exception {\r
87         thrown.expect(WebApplicationException.class);\r
88 \r
89         final RuleUpdateRequest ruleUpdateRequest = new RuleUpdateRequest();\r
90         EasyMock.expect(ruleMgtWrapper.updateCorrelationRule("admin", ruleUpdateRequest))\r
91                 .andThrow(new CorrelationException(EasyMock.anyObject(String.class)));\r
92         EasyMock.expect(request.getHeader("username")).andReturn("admin");\r
93         PowerMock.replayAll();\r
94         ruleMgtResources.updateCorrelationRule(request, ruleUpdateRequest);\r
95         PowerMock.verifyAll();\r
96     }\r
97 \r
98     @Test\r
99     public void updateCorrelationRule_normal() throws Exception {\r
100         final RuleUpdateRequest ruleUpdateRequest = new RuleUpdateRequest();\r
101         EasyMock.expect(ruleMgtWrapper.updateCorrelationRule("admin",\r
102                 ruleUpdateRequest)).andReturn(new RuleAddAndUpdateResponse());\r
103         EasyMock.expect(request.getHeader("username")).andReturn("admin");\r
104         PowerMock.replayAll();\r
105         ruleMgtResources.updateCorrelationRule(request, ruleUpdateRequest);\r
106         PowerMock.verifyAll();\r
107     }\r
108 \r
109     @Test\r
110     public void deleteCorrelationRule_correlation_exception() throws Exception {\r
111         thrown.expect(WebApplicationException.class);\r
112 \r
113         final String ruleId = "mockedRule";\r
114         ruleMgtWrapper.deleteCorrelationRule(EasyMock.anyObject(RuleDeleteRequest.class));\r
115         EasyMock.expectLastCall().andThrow(new CorrelationException("any string"));\r
116         PowerMock.replayAll();\r
117         ruleMgtResources.deleteCorrelationRule(ruleId);\r
118         PowerMock.verifyAll();\r
119     }\r
120 \r
121     @Test\r
122     public void deleteCorrelationRule_normal() throws Exception {\r
123         final String ruleId = "mockedRule";\r
124         ruleMgtWrapper.deleteCorrelationRule(EasyMock.anyObject(RuleDeleteRequest.class));\r
125         EasyMock.expectLastCall();\r
126         PowerMock.replayAll();\r
127         ruleMgtResources.deleteCorrelationRule(ruleId);\r
128         PowerMock.verifyAll();\r
129     }\r
130 \r
131     @Test\r
132     public void getCorrelationRules_data_format_exception() throws Exception {\r
133         thrown.expect(WebApplicationException.class);\r
134 \r
135         final String requestStr = "{\"ruleid\":\"rule_001\",\"rulename\":\"Rule-001\","\r
136                 + "\"enabled\":0,\"creator\":\"admin\"}";\r
137         EasyMock.expect(ruleMgtWrapper.getCorrelationRuleByCondition(EasyMock.anyObject(RuleQueryCondition.class)))\r
138                 .andThrow(new CorrelationException("any string"));\r
139         PowerMock.replayAll();\r
140         ruleMgtResources.getCorrelationRules(requestStr);\r
141         PowerMock.verifyAll();\r
142     }\r
143 \r
144     @Test\r
145     public void getCorrelationRules_param_translate_exception() {\r
146         thrown.expect(JsonSyntaxException.class);\r
147 \r
148         String queryRequest = "this is error param";\r
149 \r
150         PowerMock.replayAll();\r
151         ruleMgtResources.getCorrelationRules(queryRequest);\r
152         PowerMock.verifyAll();\r
153 \r
154     }\r
155 \r
156     @Test\r
157     public void getCorrelationRules_normal_request_string_null() throws Exception {\r
158         EasyMock.expect(ruleMgtWrapper.getCorrelationRuleByCondition(EasyMock.anyObject(RuleQueryCondition.class)))\r
159                 .andReturn(new RuleQueryListResponse());\r
160         PowerMock.replayAll();\r
161         ruleMgtResources.getCorrelationRules(null);\r
162         PowerMock.verifyAll();\r
163     }\r
164 \r
165     @Test\r
166     public void getCorrelationRules_normal_request_string_enabled_missing() throws Exception {\r
167         final String requestStr = "{\"ruleid\":\"rule_001\",\"rulename\":\"Rule-001\","\r
168                 + "\"creator\":\"admin\"}";\r
169         EasyMock.expect(ruleMgtWrapper.getCorrelationRuleByCondition(EasyMock.anyObject(RuleQueryCondition.class)))\r
170                 .andReturn(new RuleQueryListResponse());\r
171         PowerMock.replayAll();\r
172         ruleMgtResources.getCorrelationRules(requestStr);\r
173         PowerMock.verifyAll();\r
174     }\r
175 }