1e67527641729efd604b8b0d765b39b08571bf7a
[ccsdk/features.git] /
1 /*
2  * ============LICENSE_START=======================================================
3  * ONAP : ccsdk features
4  * ================================================================================
5  * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property.
6  * All rights reserved.
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  */
22 package org.onap.ccsdk.features.sdnr.wt.dataprovider.test;
23
24 import org.junit.AfterClass;
25 import org.junit.BeforeClass;
26 import org.junit.Test;
27 import org.onap.ccsdk.features.sdnr.wt.dataprovider.http.about.AboutHttpServlet;
28
29 import static org.junit.Assert.assertTrue;
30 import static org.mockito.Mockito.mock;
31 import static org.mockito.Mockito.verify;
32 import static org.mockito.Mockito.when;
33
34 import java.io.ByteArrayOutputStream;
35 import java.io.File;
36 import java.io.IOException;
37 import java.io.StringWriter;
38 import java.nio.file.Files;
39 import javax.servlet.ServletException;
40 import javax.servlet.ServletOutputStream;
41 import javax.servlet.http.HttpServletRequest;
42 import javax.servlet.http.HttpServletResponse;
43
44 public class TestAbout {
45
46     private static final String REPO_MDSAL_DIR = "system/org/opendaylight/mdsal/mdsal-binding-api/3.0.9/";
47     private static final String REPO_YANGTOOLS_DIR = "system/org/opendaylight/yangtools/odl-yangtools-common/2.1.11";
48
49     @BeforeClass
50     public static void before() throws IOException {
51         //create temporary odl folder structure in tmp
52         Files.createDirectories(new File(REPO_MDSAL_DIR).toPath());
53         Files.createDirectories(new File(REPO_YANGTOOLS_DIR).toPath());
54     }
55
56     @AfterClass
57     public static void after() throws IOException {
58         //delete created dirs
59         delete(new File("system/"));
60     }
61
62     private static void delete(File file) throws IOException {
63
64         for (File childFile : file.listFiles()) {
65
66             if (childFile.isDirectory()) {
67                 delete(childFile);
68             } else {
69                 if (!childFile.delete()) {
70                     throw new IOException();
71                 }
72             }
73         }
74
75         if (!file.delete()) {
76             throw new IOException();
77         }
78     }
79
80     @Test
81     public void testReadmeRequest() throws IOException, ServletException {
82         AboutHelperServlet servlet = new AboutHelperServlet();
83         HttpServletRequest request = mock(HttpServletRequest.class);
84         HttpServletResponse response = mock(HttpServletResponse.class);
85         when(request.getRequestURI()).thenReturn("/about");
86         StringWriter out = new StringWriter();
87         ServletOutputStream printOut = new ServletOutputStream() {
88
89             @Override
90             public void write(int arg0) throws IOException {
91                 out.write(arg0);
92             }
93         };
94         when(response.getOutputStream()).thenReturn(printOut);
95         servlet.doGet(request, response);
96         verify(response).setStatus(200);
97         verify(response).setContentType("text/plain");
98         System.out.println(out.getBuffer().toString());
99         assertTrue(out.getBuffer().length() > 0);
100     }
101
102     @Test
103     public void testReadmeResourceRequest() throws IOException, ServletException {
104         AboutHelperServlet servlet = new AboutHelperServlet();
105         HttpServletRequest request = mock(HttpServletRequest.class);
106         HttpServletResponse response = mock(HttpServletResponse.class);
107         when(request.getRequestURI()).thenReturn("/about/test.bmp");
108         ByteArrayOutputStream out = new ByteArrayOutputStream();
109         ServletOutputStream printOut = new ServletOutputStream() {
110
111             @Override
112             public void write(int arg0) throws IOException {
113                 out.write(arg0);
114             }
115         };
116         when(response.getOutputStream()).thenReturn(printOut);
117         servlet.doGet(request, response);
118         verify(response).setStatus(200);
119         verify(response).setContentType("image/bmp");
120         assertTrue(out.size() > 0);
121     }
122
123
124
125     private class AboutHelperServlet extends AboutHttpServlet {
126
127         /**
128          *
129          */
130         private static final long serialVersionUID = 1L;
131
132         @Override
133         public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
134             super.doGet(req, resp);
135         }
136
137     }
138 }