6be232fae282bf76e27eae04bd9899d6e555232b
[holmes/engine-management.git] / engine-d / src / test / java / org / onap / holmes / engine / resources / EngineResourcesTest.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.engine.resources;\r
18 \r
19 import org.junit.Before;\r
20 import org.junit.Rule;\r
21 import org.junit.Test;\r
22 import org.junit.rules.ExpectedException;\r
23 import org.onap.holmes.common.exception.CorrelationException;\r
24 import org.onap.holmes.engine.manager.DroolsEngine;\r
25 import org.onap.holmes.engine.request.CompileRuleRequest;\r
26 import org.onap.holmes.engine.request.DeployRuleRequest;\r
27 import org.powermock.api.easymock.PowerMock;\r
28 import org.powermock.reflect.Whitebox;\r
29 \r
30 import javax.servlet.http.HttpServletRequest;\r
31 import javax.ws.rs.WebApplicationException;\r
32 import java.util.Locale;\r
33 \r
34 import static org.easymock.EasyMock.*;\r
35 \r
36 public class EngineResourcesTest {\r
37     @Rule\r
38     public ExpectedException thrown = ExpectedException.none();\r
39     DroolsEngine droolsEngine;\r
40     private EngineResources engineResources;\r
41 \r
42     @Before\r
43     public void setUp() {\r
44         droolsEngine = PowerMock.createMock(DroolsEngine.class);\r
45         engineResources = new EngineResources();\r
46 \r
47         Whitebox.setInternalState(engineResources,"droolsEngine",droolsEngine);\r
48         PowerMock.resetAll();\r
49     }\r
50 \r
51     @Test\r
52     public void deployRule_exception() throws CorrelationException {\r
53         DeployRuleRequest deployRuleRequest = new DeployRuleRequest();\r
54         HttpServletRequest httpRequest = PowerMock.createMock(HttpServletRequest.class);\r
55 \r
56         thrown.expect(WebApplicationException.class);\r
57 \r
58         expect(httpRequest.getHeader("language-option")).andReturn("en_US");\r
59         expect(droolsEngine.deployRule(anyObject(DeployRuleRequest.class), anyObject(Locale.class))).\r
60                 andThrow(new CorrelationException(""));\r
61         PowerMock.replayAll();\r
62         engineResources.deployRule(deployRuleRequest, httpRequest);\r
63         PowerMock.verifyAll();\r
64     }\r
65 \r
66     @Test\r
67     public void deployRule_normal() throws CorrelationException {\r
68         DeployRuleRequest deployRuleRequest = new DeployRuleRequest();\r
69         deployRuleRequest.setContent("package packageName;\n\nimport xxx.xxx.xxx;");\r
70         deployRuleRequest.setLoopControlName("loopControlName");\r
71         HttpServletRequest httpRequest = PowerMock.createMock(HttpServletRequest.class);\r
72 \r
73         expect(httpRequest.getHeader("language-option")).andReturn("en_US");\r
74         expect(droolsEngine.deployRule(anyObject(DeployRuleRequest.class),\r
75                 anyObject(Locale.class))).andReturn("packageName");\r
76         PowerMock.replayAll();\r
77         engineResources.deployRule(deployRuleRequest, httpRequest);\r
78         PowerMock.verifyAll();\r
79     }\r
80 \r
81     @Test\r
82     public void undeployRule_exception() throws CorrelationException {\r
83         String packageName = "packageName";\r
84         HttpServletRequest httpRequest = PowerMock.createMock(HttpServletRequest.class);\r
85 \r
86         thrown.expect(WebApplicationException.class);\r
87 \r
88         expect(httpRequest.getHeader("language-option")).andReturn("en_US");\r
89         droolsEngine.undeployRule(anyObject(String.class), anyObject(Locale.class));\r
90         expectLastCall().andThrow(new CorrelationException(""));\r
91         PowerMock.replayAll();\r
92         engineResources.undeployRule(packageName, httpRequest);\r
93         PowerMock.verifyAll();\r
94     }\r
95 \r
96     @Test\r
97     public void undeployRule_normal() throws CorrelationException {\r
98         String packageName = "packageName";\r
99         HttpServletRequest httpRequest = PowerMock.createMock(HttpServletRequest.class);\r
100 \r
101         expect(httpRequest.getHeader("language-option")).andReturn("en_US");\r
102         droolsEngine.undeployRule(anyObject(String.class), anyObject(Locale.class));\r
103         PowerMock.replayAll();\r
104         engineResources.undeployRule(packageName, httpRequest);\r
105         PowerMock.verifyAll();\r
106     }\r
107 \r
108     @Test\r
109     public void compileRule_exception() throws CorrelationException {\r
110         CompileRuleRequest compileRuleRequest = new CompileRuleRequest();\r
111         HttpServletRequest httpRequest = PowerMock.createMock(HttpServletRequest.class);\r
112 \r
113         thrown.expect(WebApplicationException.class);\r
114 \r
115         expect(httpRequest.getHeader("language-option")).andReturn("en_US");\r
116         droolsEngine.compileRule(anyObject(String.class),anyObject(Locale.class));\r
117         expectLastCall().andThrow(new CorrelationException(""));\r
118         PowerMock.replayAll();\r
119         engineResources.compileRule(compileRuleRequest, httpRequest);\r
120         PowerMock.verifyAll();\r
121     }\r
122 \r
123     @Test\r
124     public void compileRule_normal() throws CorrelationException {\r
125         CompileRuleRequest compileRuleRequest = new CompileRuleRequest();\r
126         HttpServletRequest httpRequest = PowerMock.createMock(HttpServletRequest.class);\r
127 \r
128         expect(httpRequest.getHeader("language-option")).andReturn("en_US");\r
129         droolsEngine.compileRule(anyObject(String.class),anyObject(Locale.class));\r
130         PowerMock.replayAll();\r
131         engineResources.compileRule(compileRuleRequest, httpRequest);\r
132         PowerMock.verifyAll();\r
133     }\r
134 }\r