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