ac2d7e483f0ae50703aa984b3a4b5b4757e60626
[aai/model-loader.git] / src / test / java / org / onap / aai / modelloader / restclient / TestAaiServiceClient.java
1 /**
2  * ============LICENSE_START=======================================================
3  * org.onap.aai
4  * ================================================================================
5  * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved.
6  * Copyright © 2017-2018 European Software Marketing Ltd.
7  * ================================================================================
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  *       http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  * ============LICENSE_END=========================================================
20  */
21 package org.onap.aai.modelloader.restclient;
22
23 import static javax.servlet.http.HttpServletResponse.SC_OK;
24 import static org.apache.commons.io.IOUtils.write;
25
26 import java.io.IOException;
27 import java.util.Properties;
28 import javax.servlet.ServletException;
29 import javax.servlet.http.HttpServletRequest;
30 import javax.servlet.http.HttpServletResponse;
31 import javax.ws.rs.core.MediaType;
32 import org.eclipse.jetty.server.Handler;
33 import org.eclipse.jetty.server.Request;
34 import org.eclipse.jetty.server.Server;
35 import org.eclipse.jetty.server.handler.AbstractHandler;
36 import org.junit.After;
37 import org.junit.Before;
38 import org.junit.Test;
39 import org.onap.aai.modelloader.config.ModelLoaderConfig;
40
41 /**
42  * Local testing of the A&AI Service client.
43  *
44  */
45 public class TestAaiServiceClient {
46
47     private Server server;
48     private AaiRestClient aaiClient;
49
50     @Before
51     public void startJetty() throws Exception {
52         server = new Server(8080);
53         server.setHandler(getMockHandler());
54         server.start();
55
56         Properties props = new Properties();
57         props.put("ml.aai.KEYSTORE_PASSWORD", "2244");
58         props.put("ml.aai.KEYSTORE_FILE", "src/test/resources/auth/aai-client-cert.p12");
59         props.put("ml.aai.KEYSTORE_PASSWORD", "OBF:1i9a1u2a1unz1lr61wn51wn11lss1unz1u301i6o");
60         ModelLoaderConfig config = new ModelLoaderConfig(props, ".");
61         aaiClient = new AaiRestClient(config);
62     }
63
64     @After
65     public void stopJetty() throws Exception {
66         server.stop();
67     }
68
69     @Test
70     public void testBuildAaiRestClient() {
71         Properties props = new Properties();
72         ModelLoaderConfig config = new ModelLoaderConfig(props, ".");
73         new AaiRestClient(config);
74     }
75
76     @Test
77     public void testOperations() {
78         String url = "http://localhost:8080";
79         String transId = "";
80         MediaType mediaType = MediaType.APPLICATION_JSON_TYPE;
81         aaiClient.getResource(url, "", mediaType);
82         aaiClient.deleteResource("http://localhost", transId, "");
83         aaiClient.getAndDeleteResource(url, transId);
84         aaiClient.postResource(url, "", transId, mediaType);
85         aaiClient.putResource(url, "", transId, mediaType);
86     }
87
88
89     /**
90      * Creates an {@link AbstractHandler handler} returning an arbitrary String as a response.
91      * 
92      * @return never <code>null</code>.
93      */
94     private Handler getMockHandler() {
95         Handler handler = new AbstractHandler() {
96             @Override
97             public void handle(String target, Request request, HttpServletRequest servletRequest,
98                     HttpServletResponse response) throws IOException, ServletException {
99                 response.setStatus(SC_OK);
100                 response.setContentType("text/json;charset=utf-8");
101                 write("", response.getOutputStream());
102                 request.setHandled(true);
103             }
104         };
105         return handler;
106     }
107 }
108