diff options
Diffstat (limited to 'sdnr/wt/helpserver/provider/src/test')
-rw-r--r-- | sdnr/wt/helpserver/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/helpserver/test/TestExtract.java | 88 | ||||
-rw-r--r-- | sdnr/wt/helpserver/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/helpserver/test/TestHelpInfObject.java | 69 | ||||
-rw-r--r-- | sdnr/wt/helpserver/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/helpserver/test/TestHelpInfrastructure.java (renamed from sdnr/wt/helpserver/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/helpserver/test/TestHelpServer.java) | 28 | ||||
-rw-r--r-- | sdnr/wt/helpserver/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/helpserver/test/TestMyServlet.java | 161 | ||||
-rw-r--r-- | sdnr/wt/helpserver/provider/src/test/resources/log4j.properties | 12 | ||||
-rw-r--r-- | sdnr/wt/helpserver/provider/src/test/resources/simplelogger.properties | 37 |
6 files changed, 375 insertions, 20 deletions
diff --git a/sdnr/wt/helpserver/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/helpserver/test/TestExtract.java b/sdnr/wt/helpserver/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/helpserver/test/TestExtract.java new file mode 100644 index 000000000..5f8558270 --- /dev/null +++ b/sdnr/wt/helpserver/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/helpserver/test/TestExtract.java @@ -0,0 +1,88 @@ +/******************************************************************************* + * ============LICENSE_START======================================================================== + * ONAP : ccsdk feature sdnr wt + * ================================================================================================= + * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved. + * ================================================================================================= + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express + * or implied. See the License for the specific language governing permissions and limitations under + * the License. + * ============LICENSE_END========================================================================== + ******************************************************************************/ +package org.onap.ccsdk.features.sdnr.wt.helpserver.test; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; +import java.io.File; +import java.net.URL; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Enumeration; +import java.util.List; +import org.junit.Test; +import org.mockito.Mockito; +import org.onap.ccsdk.features.sdnr.wt.helpserver.data.ExtactBundleResource; +import org.osgi.framework.Bundle; + +public class TestExtract extends Mockito { + + private boolean called = false; + private String testFile; + + @Test + public void test() { + + Bundle myBundle = mock(Bundle.class); + + final ClassLoader loader = this.getClass().getClassLoader(); + try { + when(myBundle.getEntryPaths(anyString())).thenAnswer(invocation -> { + if (!called) { + Object[] args = invocation.getArguments(); + System.out.println("Get files from: " + args[0]); + Enumeration<URL> e = loader.getResources((String) args[0]); + List<String> res = new ArrayList<>(); + while (e.hasMoreElements()) { + String resourceFileName = e.nextElement().toString(); + System.out.println("is file: " + resourceFileName); + res.add(resourceFileName); + } + called = true; + return Collections.enumeration(res); + } else { + return null; + } + }); + when(myBundle.getEntry(anyString())).thenAnswer(invocation -> { + Object[] args = invocation.getArguments(); + System.out.println("GetEntrye input: "+args[0]); + return new URL(testFile = (String) args[0]); + }); + + String TMPDATAFOLDER = "tmpData"; + + ExtactBundleResource.copyBundleResoucesRecursively(myBundle, TMPDATAFOLDER, "help/meta.json"); + + assertTrue("Test file not found: "+testFile, new File(TMPDATAFOLDER+testFile).exists()); + + ExtactBundleResource.deleteRecursively(new File(TMPDATAFOLDER+"file:")); + + assertFalse("Test not deleted: "+testFile, new File(TMPDATAFOLDER+"file:").exists()); + + } catch (Exception e) { + e.printStackTrace(); + fail("Exception" + e); + } + + + + } + +} diff --git a/sdnr/wt/helpserver/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/helpserver/test/TestHelpInfObject.java b/sdnr/wt/helpserver/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/helpserver/test/TestHelpInfObject.java new file mode 100644 index 000000000..9d63da500 --- /dev/null +++ b/sdnr/wt/helpserver/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/helpserver/test/TestHelpInfObject.java @@ -0,0 +1,69 @@ +/******************************************************************************* + * ============LICENSE_START======================================================================== + * ONAP : ccsdk feature sdnr wt + * ================================================================================================= + * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved. + * ================================================================================================= + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express + * or implied. See the License for the specific language governing permissions and limitations under + * the License. + * ============LICENSE_END========================================================================== + ******************************************************************************/ +package org.onap.ccsdk.features.sdnr.wt.helpserver.test; + +import static org.junit.Assert.*; + +import java.io.File; +import java.io.IOException; +import java.net.URISyntaxException; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.onap.ccsdk.features.sdnr.wt.helpserver.data.ExtactBundleResource; +import org.onap.ccsdk.features.sdnr.wt.helpserver.data.HelpInfrastructureObject; + +public class TestHelpInfObject { + + private static final String GETHELPDIRECTORYBASE = "data"; + private static final String ROOT = "tmp"; + private static final String CONTENT = "abc"; + + @Before + public void init() { + try { + ExtactBundleResource.deleteRecursively(new File(GETHELPDIRECTORYBASE)); + } catch (IOException e) { + e.printStackTrace(); + } + } + @After + public void deinit() { + this.init(); + } + @Test + public void test() { + File root=new File(HelpInfrastructureObject.getHelpDirectoryBase()+"/"+ROOT); + TestMyServlet.createHelpFile("/"+ROOT+"/test/0.4.0/README.md", CONTENT); + TestMyServlet.createHelpFile("/"+ROOT+"/test2/0.4.0/README.md", CONTENT); + TestMyServlet.createHelpFile("/"+ROOT+"/test3/abc/0.4.0/README.md", CONTENT); + TestMyServlet.createHelpFile("/"+ROOT+"/test3/abc1/0.4.0/README.md", CONTENT); + TestMyServlet.createHelpFile("/"+ROOT+"/test5/0.4.0/README.md", CONTENT); + + try { + new HelpInfrastructureObject(root.toPath()); + } catch (URISyntaxException e) { + fail(e.getMessage()); + } + + + } + + +} diff --git a/sdnr/wt/helpserver/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/helpserver/test/TestHelpServer.java b/sdnr/wt/helpserver/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/helpserver/test/TestHelpInfrastructure.java index db6d783b9..dfe649a87 100644 --- a/sdnr/wt/helpserver/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/helpserver/test/TestHelpServer.java +++ b/sdnr/wt/helpserver/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/helpserver/test/TestHelpInfrastructure.java @@ -1,4 +1,3 @@ -package org.onap.ccsdk.features.sdnr.wt.helpserver.test; /******************************************************************************* * ============LICENSE_START======================================================================== * ONAP : ccsdk feature sdnr wt @@ -16,20 +15,33 @@ package org.onap.ccsdk.features.sdnr.wt.helpserver.test; * the License. * ============LICENSE_END========================================================================== ******************************************************************************/ -import static org.junit.Assert.assertNotNull; +package org.onap.ccsdk.features.sdnr.wt.helpserver.test; + +import static org.junit.Assert.fail; +import java.net.URISyntaxException; +import java.net.URL; +import java.nio.file.Path; +import java.nio.file.Paths; import org.junit.Test; -import org.onap.ccsdk.features.sdnr.wt.helpserver.HelpServlet; +import org.onap.ccsdk.features.sdnr.wt.helpserver.data.HelpInfrastructureObject; -public class TestHelpServer { +public class TestHelpInfrastructure { @Test - public void test() throws Exception { + public void test() { - HelpServlet helpServelet = new HelpServlet(); + final ClassLoader loader = this.getClass().getClassLoader(); + URL url = loader.getResource("help/meta.json"); + Path path; + try { + path = Paths.get(url.toURI()); + HelpInfrastructureObject helpInfrastuctureObject = new HelpInfrastructureObject(path); + System.out.println("Help: "+helpInfrastuctureObject); + } catch (URISyntaxException e) { + fail(e.getMessage()); + } - assertNotNull("Helpservelet created", helpServelet); - helpServelet.close(); } } diff --git a/sdnr/wt/helpserver/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/helpserver/test/TestMyServlet.java b/sdnr/wt/helpserver/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/helpserver/test/TestMyServlet.java new file mode 100644 index 000000000..e51cc6843 --- /dev/null +++ b/sdnr/wt/helpserver/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/helpserver/test/TestMyServlet.java @@ -0,0 +1,161 @@ +/******************************************************************************* + * ============LICENSE_START======================================================================== + * ONAP : ccsdk feature sdnr wt + * ================================================================================================= + * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved. + * ================================================================================================= + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express + * or implied. See the License for the specific language governing permissions and limitations under + * the License. + * ============LICENSE_END========================================================================== + ******************************************************************************/ +package org.onap.ccsdk.features.sdnr.wt.helpserver.test; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.fail; + +import java.io.File; +import java.io.IOException; +import java.io.StringWriter; +import java.nio.file.Files; +import java.nio.file.OpenOption; +import javax.servlet.ServletException; +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.mockito.Mockito; +import org.onap.ccsdk.features.sdnr.wt.helpserver.HelpServlet; +import org.onap.ccsdk.features.sdnr.wt.helpserver.data.ExtactBundleResource; +import org.onap.ccsdk.features.sdnr.wt.helpserver.data.HelpInfrastructureObject; +import static java.nio.file.StandardOpenOption.CREATE_NEW; +import static java.nio.file.StandardOpenOption.WRITE; +import static java.nio.file.StandardOpenOption.CREATE; +import static java.nio.file.StandardOpenOption.TRUNCATE_EXISTING; + +public class TestMyServlet extends Mockito { + + private static final String GETHELPDIRECTORYBASE = "data"; + private static final String CONTENT = "abbccdfkamaosie aksdmais"; + + public static void createHelpFile(String filename,String content) { + File file=new File(HelpInfrastructureObject.getHelpDirectoryBase() + filename); + File folder = file.getParentFile(); + if(!folder.exists()) { + folder.mkdirs(); + } + try { + if(file.exists()) { + file.delete(); + } + Files.write( file.toPath(),content.getBytes(),new OpenOption[] { WRITE, CREATE_NEW , CREATE, TRUNCATE_EXISTING}); + } catch (IOException e1) { + fail(e1.getMessage()); + } + } + + @Before + public void init() { + try { + ExtactBundleResource.deleteRecursively(new File(GETHELPDIRECTORYBASE)); + } catch (IOException e) { + e.printStackTrace(); + } + } + @After + public void deinit() { + this.init(); + } + + @Test + public void testServlet() throws Exception { + + System.out.println("Test get"); + + HttpServletRequest request = mock(HttpServletRequest.class); + HttpServletResponse response = mock(HttpServletResponse.class); + + when(request.getRequestURI()).thenReturn("help/"); + when(request.getQueryString()).thenReturn("?meta"); + + StringWriter stringWriter = new StringWriter(); + ServletOutputStream out=new ServletOutputStream() { + + @Override + public void write(int arg0) throws IOException { + stringWriter.write(arg0); + } + }; + when(response.getOutputStream()).thenReturn(out); + + HelpServlet helpServlet=null; + try { + helpServlet = new HelpServlet(); + System.out.println("Server created"); + createHelpFile("/meta.json",CONTENT); + + helpServlet.doOptions(request, response); + System.out.println("Get calling"); + helpServlet.doGet(request, response); + System.out.println("Get called"); + } catch (Exception e) { + fail(e.getMessage()); + } + if (helpServlet != null) { + helpServlet.close(); + } + + String result = stringWriter.toString().trim(); + System.out.println("Result: '" + result + "'"); + assertEquals(CONTENT,result); + } + + @Test + public void testServlet2() { + this.testGetRequest("test/0.4.0/test.txt"); + this.testGetRequest("test.css"); + this.testGetRequest("test.eps"); + this.testGetRequest("test.pdf"); + } + + private void testGetRequest(String fn) { + HelpServlet helpServlet = new HelpServlet(); + createHelpFile("/"+fn,CONTENT); + HttpServletRequest request = mock(HttpServletRequest.class); + HttpServletResponse response = mock(HttpServletResponse.class); + + when(request.getRequestURI()).thenReturn("help/"+fn); + StringWriter sw = new StringWriter(); + ServletOutputStream out = new ServletOutputStream() { + + @Override + public void write(int arg0) throws IOException { + sw.write(arg0); + } + }; + try { + when(response.getOutputStream()).thenReturn(out); + helpServlet.doGet(request, response); + } catch (ServletException | IOException e) { + fail(e.getMessage()); + } + try { + out.close(); + } catch (Exception e) { + } + try { + helpServlet.close(); + } catch (Exception e) { + } + + assertEquals(CONTENT,sw.toString().trim()); + } +} diff --git a/sdnr/wt/helpserver/provider/src/test/resources/log4j.properties b/sdnr/wt/helpserver/provider/src/test/resources/log4j.properties deleted file mode 100644 index 142663bd2..000000000 --- a/sdnr/wt/helpserver/provider/src/test/resources/log4j.properties +++ /dev/null @@ -1,12 +0,0 @@ -log4j.rootLogger=INFO, out - -log4j.logger.org.apache.camel.impl.converter=WARN -log4j.logger.org.apache.camel.management=WARN -log4j.logger.org.apache.camel.impl.DefaultPackageScanClassResolver=WARN -log4j.logger.org.springframework=ERROR - -# CONSOLE appender not used by default -log4j.appender.out=org.apache.log4j.ConsoleAppender -log4j.appender.out.layout=org.apache.log4j.PatternLayout -log4j.appender.out.layout.ConversionPattern=%d [%-15.15t] %-5p %-30.30c{1} - %m%n - diff --git a/sdnr/wt/helpserver/provider/src/test/resources/simplelogger.properties b/sdnr/wt/helpserver/provider/src/test/resources/simplelogger.properties new file mode 100644 index 000000000..6f38b507a --- /dev/null +++ b/sdnr/wt/helpserver/provider/src/test/resources/simplelogger.properties @@ -0,0 +1,37 @@ +# SLF4J's SimpleLogger configuration file +# Simple implementation of Logger that sends all enabled log messages, for all defined loggers, to System.err. + +# Default logging detail level for all instances of SimpleLogger. +# Must be one of ("trace", "debug", "info", "warn", or "error"). +# If not specified, defaults to "info". +org.slf4j.simpleLogger.defaultLogLevel=trace + +# Logging detail level for a SimpleLogger instance named "xxx.yyy.zzz". +# Must be one of ("trace", "debug", "info", "warn", or "error"). +# If not specified, the default logging detail level is used. +# org.slf4j.simpleLogger.log.xxx.yyy=debug +org.slf4j.simpleLogger.log.org.onap.ccsdk.features.sdnr.wt.devicemanager=debug +org.slf4j.simpleLogger.log.org.onap.ccsdk.features.sdnr.wt.devicemanager.base.internalTypes.Resources=info +org.slf4j.simpleLogger.log.org.onap.ccsdk.features.sdnr.wt.devicemanager.base.netconf.container=trace + +# Set to true if you want the current date and time to be included in output messages. +# Default is false, and will output the number of milliseconds elapsed since startup. +#org.slf4j.simpleLogger.showDateTime=false + +# The date and time format to be used in the output messages. +# The pattern describing the date and time format is the same that is used in java.text.SimpleDateFormat. +# If the format is not specified or is invalid, the default format is used. +# The default format is yyyy-MM-dd HH:mm:ss:SSS Z. +#org.slf4j.simpleLogger.dateTimeFormat=yyyy-MM-dd HH:mm:ss:SSS Z + +# Set to true if you want to output the current thread name. +# Defaults to true. +#org.slf4j.simpleLogger.showThreadName=true + +# Set to true if you want the Logger instance name to be included in output messages. +# Defaults to true. +#org.slf4j.simpleLogger.showLogName=true + +# Set to true if you want the last component of the name to be included in output messages. +# Defaults to false. +#org.slf4j.simpleLogger.showShortLogName=false |