Merge "Add Swagger Related Configurations"
[holmes/rule-management.git] / rulemgt / src / test / java / org / onap / holmes / rulemgt / resources / RuleMgtResourcesTest.java
1 /**\r
2  * Copyright 2017 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 javax.servlet.http.HttpServletRequest;\r
20 import javax.ws.rs.WebApplicationException;\r
21 import org.easymock.EasyMock;\r
22 import org.eclipse.jetty.server.Request;\r
23 import org.junit.Before;\r
24 import org.junit.Rule;\r
25 import org.junit.Test;\r
26 import org.junit.rules.ExpectedException;\r
27 import org.onap.holmes.rulemgt.bean.request.RuleCreateRequest;\r
28 import org.onap.holmes.rulemgt.bean.request.RuleDeleteRequest;\r
29 import org.onap.holmes.rulemgt.wrapper.RuleMgtWrapper;\r
30 import org.onap.holmes.common.exception.CorrelationException;\r
31 import org.onap.holmes.rulemgt.bean.request.RuleQueryCondition;\r
32 import org.onap.holmes.rulemgt.bean.request.RuleUpdateRequest;\r
33 import org.onap.holmes.rulemgt.bean.response.RuleAddAndUpdateResponse;\r
34 import org.onap.holmes.rulemgt.bean.response.RuleQueryListResponse;\r
35 import org.powermock.api.easymock.PowerMock;\r
36 import org.powermock.reflect.Whitebox;\r
37 \r
38 public class RuleMgtResourcesTest {\r
39 \r
40     @Rule\r
41     public ExpectedException thrown = ExpectedException.none();\r
42 \r
43     private HttpServletRequest request = PowerMock.createMock(HttpServletRequest.class);\r
44 \r
45     private RuleMgtWrapper ruleMgtWrapper = PowerMock.createMock(RuleMgtWrapper.class);\r
46 \r
47     private RuleMgtResources ruleMgtResources = new RuleMgtResources();\r
48 \r
49     private Request requestMock = PowerMock.createMock(Request.class);\r
50 \r
51     @Before\r
52     public void setUp() throws Exception {\r
53         Whitebox.setInternalState(ruleMgtResources, "ruleMgtWrapper", ruleMgtWrapper);\r
54         PowerMock.resetAll();\r
55     }\r
56 \r
57     @Test\r
58     public void addCorrelationRule_correlation_exception() throws Exception {\r
59         thrown.expect(WebApplicationException.class);\r
60 \r
61         final RuleCreateRequest ruleCreateRequest = new RuleCreateRequest();\r
62         EasyMock.expect(ruleMgtWrapper.addCorrelationRule("admin", ruleCreateRequest))\r
63                 .andThrow(new CorrelationException(EasyMock.anyObject(String.class)));\r
64         EasyMock.expect(request.getHeader("language-option")).andReturn("en_US");\r
65         EasyMock.expect(request.getHeader("username")).andReturn("admin");\r
66         PowerMock.replayAll();\r
67         ruleMgtResources.addCorrelationRule(request, ruleCreateRequest);\r
68         PowerMock.verifyAll();\r
69     }\r
70 \r
71     @Test\r
72     public void addCorrelationRule_normal() throws Exception {\r
73         StringBuilder stringBuilder = new StringBuilder("http://localhost");\r
74         final RuleCreateRequest ruleCreateRequest = new RuleCreateRequest();\r
75         EasyMock.expect(ruleMgtWrapper.addCorrelationRule("admin",\r
76                 ruleCreateRequest)).andReturn(new RuleAddAndUpdateResponse());\r
77         EasyMock.expect(request.getHeader("language-option")).andReturn("en_US");\r
78         EasyMock.expect(request.getHeader("username")).andReturn("admin");\r
79         PowerMock.replayAll();\r
80         ruleMgtResources.addCorrelationRule(request, ruleCreateRequest);\r
81         PowerMock.verifyAll();\r
82     }\r
83 \r
84     @Test\r
85     public void updateCorrelationRule_correlation_exception() throws Exception {\r
86         thrown.expect(WebApplicationException.class);\r
87 \r
88         final RuleUpdateRequest ruleUpdateRequest = new RuleUpdateRequest();\r
89         EasyMock.expect(ruleMgtWrapper.updateCorrelationRule("admin", ruleUpdateRequest))\r
90                 .andThrow(new CorrelationException(EasyMock.anyObject(String.class)));\r
91         EasyMock.expect(request.getHeader("language-option")).andReturn("en_US");\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("language-option")).andReturn("en_US");\r
104         EasyMock.expect(request.getHeader("username")).andReturn("admin");\r
105         PowerMock.replayAll();\r
106         ruleMgtResources.updateCorrelationRule(request, ruleUpdateRequest);\r
107         PowerMock.verifyAll();\r
108     }\r
109 \r
110     @Test\r
111     public void deleteCorrelationRule_correlation_exception() throws Exception {\r
112         thrown.expect(WebApplicationException.class);\r
113 \r
114         final String ruleId = "mockedRule";\r
115         ruleMgtWrapper.deleteCorrelationRule(EasyMock.anyObject(RuleDeleteRequest.class));\r
116         EasyMock.expectLastCall().andThrow(new CorrelationException(EasyMock.anyObject(String.class)));\r
117         EasyMock.expect(request.getHeader("language-option")).andReturn("en_US");\r
118         PowerMock.replayAll();\r
119         ruleMgtResources.deleteCorrelationRule(request, ruleId);\r
120         PowerMock.verifyAll();\r
121     }\r
122 \r
123     @Test\r
124     public void deleteCorrelationRule_normal() throws Exception {\r
125         final String ruleId = "mockedRule";\r
126         ruleMgtWrapper.deleteCorrelationRule(EasyMock.anyObject(RuleDeleteRequest.class));\r
127         EasyMock.expectLastCall();\r
128         EasyMock.expect(request.getHeader("language-option")).andReturn("en_US");\r
129         PowerMock.replayAll();\r
130         ruleMgtResources.deleteCorrelationRule(request, ruleId);\r
131         PowerMock.verifyAll();\r
132     }\r
133 \r
134     @Test\r
135     public void getCorrelationRules_data_format_exception() throws Exception {\r
136         thrown.expect(WebApplicationException.class);\r
137 \r
138         final String requestStr = "{\"ruleid\":\"rule_001\",\"rulename\":\"Rule-001\","\r
139                 + "\"enabled\":0,\"creator\":\"admin\"}";\r
140         EasyMock.expect(ruleMgtWrapper.getCorrelationRuleByCondition(EasyMock.anyObject(RuleQueryCondition.class)))\r
141                 .andThrow(new CorrelationException(EasyMock.anyObject(String.class)));\r
142         EasyMock.expect(request.getHeader("language-option")).andReturn("en_US").times(2);\r
143         PowerMock.replayAll();\r
144         ruleMgtResources.getCorrelationRules(request, requestStr);\r
145         PowerMock.verifyAll();\r
146     }\r
147 \r
148     @Test\r
149     public void getCorrelationRules_param_translate_exception() {\r
150         thrown.expect(WebApplicationException.class);\r
151 \r
152         String queryRequest = "this is error param";\r
153         EasyMock.expect(request.getHeader("language-option")).andReturn("en_US").times(2);\r
154 \r
155         PowerMock.replayAll();\r
156         ruleMgtResources.getCorrelationRules(request, queryRequest);\r
157         PowerMock.verifyAll();\r
158 \r
159     }\r
160 \r
161     @Test\r
162     public void getCorrelationRules_normal_request_string_null() throws Exception {\r
163         EasyMock.expect(ruleMgtWrapper.getCorrelationRuleByCondition(EasyMock.anyObject(RuleQueryCondition.class)))\r
164                 .andReturn(new RuleQueryListResponse());\r
165         EasyMock.expect(request.getHeader("language-option")).andReturn("en_US").times(2);\r
166         PowerMock.replayAll();\r
167         ruleMgtResources.getCorrelationRules(request, null);\r
168         PowerMock.verifyAll();\r
169     }\r
170 \r
171     @Test\r
172     public void getCorrelationRules_normal_request_string_enabled_missing() throws Exception {\r
173         final String requestStr = "{\"ruleid\":\"rule_001\",\"rulename\":\"Rule-001\","\r
174                 + "\"creator\":\"admin\"}";\r
175         EasyMock.expect(ruleMgtWrapper.getCorrelationRuleByCondition(EasyMock.anyObject(RuleQueryCondition.class)))\r
176                 .andReturn(new RuleQueryListResponse());\r
177         EasyMock.expect(request.getHeader("language-option")).andReturn("en_US").times(2);\r
178         PowerMock.replayAll();\r
179         ruleMgtResources.getCorrelationRules(request, requestStr);\r
180         PowerMock.verifyAll();\r
181     }\r
182 }