0c3bd89aa4628b7ba85e87e9b72602acf52715ce
[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         thrown.expect(WebApplicationException.class);\r
61 \r
62         final RuleCreateRequest ruleCreateRequest = new RuleCreateRequest();\r
63         EasyMock.expect(ruleMgtWrapper.addCorrelationRule("admin", ruleCreateRequest))\r
64                 .andThrow(new CorrelationException(EasyMock.anyObject(String.class)));\r
65         EasyMock.expect(request.getHeader("language-option")).andReturn("en_US");\r
66         EasyMock.expect(request.getHeader("username")).andReturn("admin");\r
67         PowerMock.replayAll();\r
68         ruleMgtResources.addCorrelationRule(request, ruleCreateRequest);\r
69         PowerMock.verifyAll();\r
70     }\r
71 \r
72     @Test\r
73     public void addCorrelationRule_normal() throws Exception {\r
74         StringBuilder stringBuilder = new StringBuilder("http://localhost");\r
75         final RuleCreateRequest ruleCreateRequest = new RuleCreateRequest();\r
76         EasyMock.expect(ruleMgtWrapper.addCorrelationRule("admin",\r
77                 ruleCreateRequest)).andReturn(new RuleAddAndUpdateResponse());\r
78         EasyMock.expect(request.getHeader("language-option")).andReturn("en_US");\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("language-option")).andReturn("en_US");\r
93         EasyMock.expect(request.getHeader("username")).andReturn("admin");\r
94         PowerMock.replayAll();\r
95         ruleMgtResources.updateCorrelationRule(request, ruleUpdateRequest);\r
96         PowerMock.verifyAll();\r
97     }\r
98 \r
99     @Test\r
100     public void updateCorrelationRule_normal() throws Exception {\r
101         final RuleUpdateRequest ruleUpdateRequest = new RuleUpdateRequest();\r
102         EasyMock.expect(ruleMgtWrapper.updateCorrelationRule("admin",\r
103                 ruleUpdateRequest)).andReturn(new RuleAddAndUpdateResponse());\r
104         EasyMock.expect(request.getHeader("language-option")).andReturn("en_US");\r
105         EasyMock.expect(request.getHeader("username")).andReturn("admin");\r
106         PowerMock.replayAll();\r
107         ruleMgtResources.updateCorrelationRule(request, ruleUpdateRequest);\r
108         PowerMock.verifyAll();\r
109     }\r
110 \r
111     @Test\r
112     public void deleteCorrelationRule_correlation_exception() throws Exception {\r
113         thrown.expect(WebApplicationException.class);\r
114 \r
115         final String ruleId = "mockedRule";\r
116         ruleMgtWrapper.deleteCorrelationRule(EasyMock.anyObject(RuleDeleteRequest.class));\r
117         EasyMock.expectLastCall().andThrow(new CorrelationException(EasyMock.anyObject(String.class)));\r
118         EasyMock.expect(request.getHeader("language-option")).andReturn("en_US");\r
119         PowerMock.replayAll();\r
120         ruleMgtResources.deleteCorrelationRule(request, ruleId);\r
121         PowerMock.verifyAll();\r
122     }\r
123 \r
124     @Test\r
125     public void deleteCorrelationRule_normal() throws Exception {\r
126         final String ruleId = "mockedRule";\r
127         ruleMgtWrapper.deleteCorrelationRule(EasyMock.anyObject(RuleDeleteRequest.class));\r
128         EasyMock.expectLastCall();\r
129         EasyMock.expect(request.getHeader("language-option")).andReturn("en_US");\r
130         PowerMock.replayAll();\r
131         ruleMgtResources.deleteCorrelationRule(request, ruleId);\r
132         PowerMock.verifyAll();\r
133     }\r
134 \r
135     @Test\r
136     public void getCorrelationRules_data_format_exception() throws Exception {\r
137         thrown.expect(WebApplicationException.class);\r
138 \r
139         final String requestStr = "{\"ruleid\":\"rule_001\",\"rulename\":\"Rule-001\","\r
140                 + "\"enabled\":0,\"creator\":\"admin\"}";\r
141         EasyMock.expect(ruleMgtWrapper.getCorrelationRuleByCondition(EasyMock.anyObject(RuleQueryCondition.class)))\r
142                 .andThrow(new CorrelationException(EasyMock.anyObject(String.class)));\r
143         EasyMock.expect(request.getHeader("language-option")).andReturn("en_US").times(2);\r
144         PowerMock.replayAll();\r
145         ruleMgtResources.getCorrelationRules(request, requestStr);\r
146         PowerMock.verifyAll();\r
147     }\r
148 \r
149     @Test\r
150     public void getCorrelationRules_param_translate_exception() {\r
151         thrown.expect(JsonSyntaxException.class);\r
152 \r
153         String queryRequest = "this is error param";\r
154         EasyMock.expect(request.getHeader("language-option")).andReturn("en_US").times(2);\r
155 \r
156         PowerMock.replayAll();\r
157         ruleMgtResources.getCorrelationRules(request, queryRequest);\r
158         PowerMock.verifyAll();\r
159 \r
160     }\r
161 \r
162     @Test\r
163     public void getCorrelationRules_normal_request_string_null() throws Exception {\r
164         EasyMock.expect(ruleMgtWrapper.getCorrelationRuleByCondition(EasyMock.anyObject(RuleQueryCondition.class)))\r
165                 .andReturn(new RuleQueryListResponse());\r
166         EasyMock.expect(request.getHeader("language-option")).andReturn("en_US").times(2);\r
167         PowerMock.replayAll();\r
168         ruleMgtResources.getCorrelationRules(request, null);\r
169         PowerMock.verifyAll();\r
170     }\r
171 \r
172     @Test\r
173     public void getCorrelationRules_normal_request_string_enabled_missing() throws Exception {\r
174         final String requestStr = "{\"ruleid\":\"rule_001\",\"rulename\":\"Rule-001\","\r
175                 + "\"creator\":\"admin\"}";\r
176         EasyMock.expect(ruleMgtWrapper.getCorrelationRuleByCondition(EasyMock.anyObject(RuleQueryCondition.class)))\r
177                 .andReturn(new RuleQueryListResponse());\r
178         EasyMock.expect(request.getHeader("language-option")).andReturn("en_US").times(2);\r
179         PowerMock.replayAll();\r
180         ruleMgtResources.getCorrelationRules(request, requestStr);\r
181         PowerMock.verifyAll();\r
182     }\r
183 }