summaryrefslogtreecommitdiffstats
path: root/infra/minimal-distribution/src/test/java/io/fd/honeycomb
diff options
context:
space:
mode:
Diffstat (limited to 'infra/minimal-distribution/src/test/java/io/fd/honeycomb')
-rw-r--r--infra/minimal-distribution/src/test/java/io/fd/honeycomb/infra/distro/BaseMinimalDistributionTest.java181
-rw-r--r--infra/minimal-distribution/src/test/java/io/fd/honeycomb/infra/distro/Modules.java44
-rw-r--r--infra/minimal-distribution/src/test/java/io/fd/honeycomb/infra/distro/activation/ActiveModuleProviderTest.java91
3 files changed, 0 insertions, 316 deletions
diff --git a/infra/minimal-distribution/src/test/java/io/fd/honeycomb/infra/distro/BaseMinimalDistributionTest.java b/infra/minimal-distribution/src/test/java/io/fd/honeycomb/infra/distro/BaseMinimalDistributionTest.java
deleted file mode 100644
index e39dba8a0..000000000
--- a/infra/minimal-distribution/src/test/java/io/fd/honeycomb/infra/distro/BaseMinimalDistributionTest.java
+++ /dev/null
@@ -1,181 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * 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.
- */
-
-package io.fd.honeycomb.infra.distro;
-
-import static org.hamcrest.CoreMatchers.containsString;
-import static org.junit.Assert.assertThat;
-import static org.junit.Assert.assertTrue;
-
-import com.google.common.base.Charsets;
-import com.google.common.io.ByteStreams;
-import com.jcraft.jsch.Channel;
-import com.jcraft.jsch.ChannelSubsystem;
-import com.jcraft.jsch.JSch;
-import com.jcraft.jsch.Session;
-import com.mashape.unirest.http.HttpResponse;
-import com.mashape.unirest.http.Unirest;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.Socket;
-import java.util.Properties;
-import javax.net.ssl.SSLContext;
-import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
-import org.apache.http.conn.ssl.TrustSelfSignedStrategy;
-import org.apache.http.impl.client.CloseableHttpClient;
-import org.apache.http.impl.client.HttpClients;
-import org.apache.http.ssl.SSLContexts;
-import org.junit.Before;
-import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class BaseMinimalDistributionTest {
-
- private static final Logger LOG = LoggerFactory.getLogger(BaseMinimalDistributionTest.class);
-
- private static final int HTTP_PORT = 8182;
- private static final int HTTPS_PORT = 8444;
- private static final String UNAME = "admin";
- private static final String PASSWORD = "admin";
- private static final String CERT_PASSWORD = "testing";
- private static final int NETCONF_TCP_PORT = 7778;
- private static final int NETCONF_SSH_PORT = 2832;
- private static final String NETCONF_NAMESPACE = "urn:ietf:params:xml:ns:netconf:base:1.0";
- private static final int HELLO_WAIT = 2500;
-
- @Before
- public void setUp() throws Exception {
- SSLContext sslcontext = SSLContexts.custom()
- .loadTrustMaterial(getClass().getResource("/honeycomb-keystore"),
- CERT_PASSWORD.toCharArray(), new TrustSelfSignedStrategy())
- .build();
-
- SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslcontext);
- CloseableHttpClient httpclient = HttpClients.custom()
- .setSSLSocketFactory(sslsf)
- .build();
- Unirest.setHttpClient(httpclient);
- }
-
- /**
- * Start base distribution and check all northbound interfaces
- */
- @Test(timeout = 120000)
- public void test() throws Exception {
- Main.init();
-
- LOG.info("Testing Honeycomb base distribution");
- LOG.info("Testing NETCONF TCP");
- assertNetconfTcp();
- LOG.info("Testing NETCONF SSH");
- assertNetconfSsh();
- LOG.info("Testing RESTCONF HTTP");
- assertRestconfHttp();
- LOG.info("Testing RESTCONF HTTPS");
- assertRestconfHttps();
- }
-
- private void assertNetconfTcp() throws Exception {
- try (final Socket localhost = new Socket("127.0.0.1", NETCONF_TCP_PORT);
- final InputStream inputStream = localhost.getInputStream()) {
- // Wait until hello msg is sent from server
- Thread.sleep(HELLO_WAIT);
- final String helloMessage = inputStreamToString(inputStream);
-
- LOG.info("NETCONF TCP sent hello: {}", helloMessage);
-
- assertThat(helloMessage, containsString("hello"));
- assertThat(helloMessage, containsString(NETCONF_NAMESPACE));
- }
- }
-
- private byte[] readMessage(final InputStream inputStream) throws IOException {
- final int available = inputStream.available();
- final byte[] msg = new byte[available];
- ByteStreams.read(inputStream, msg, 0, available);
- return msg;
- }
- private String inputStreamToString(final InputStream inputStream) throws IOException {
- return new String(readMessage(inputStream), Charsets.UTF_8);
- }
-
- private void assertNetconfSsh() throws Exception {
- JSch jsch = new JSch();
- final Session session = jsch.getSession(UNAME, "127.0.0.1", NETCONF_SSH_PORT);
- session.setPassword(PASSWORD);
- Properties config = new Properties();
- config.put("StrictHostKeyChecking", "no");
- session.setConfig(config);
- session.connect(20000);
-
- Channel channel = session.openChannel("subsystem");
-
- ((ChannelSubsystem) channel).setSubsystem("netconf");
- ((ChannelSubsystem) channel).setPty(true);
- final InputStream inputStream = channel.getInputStream();
- channel.connect(20000);
-
- // Wait until hello msg is sent from server
- Thread.sleep(HELLO_WAIT);
- final String helloMessage = inputStreamToString(inputStream);
- LOG.info("NETCONF SSH sent hello: {}", helloMessage);
-
- assertThat(helloMessage, containsString("hello"));
- assertThat(helloMessage, containsString(NETCONF_NAMESPACE));
-
- channel.disconnect();
- session.disconnect();
- }
-
- private void assertRestconfHttp() throws Exception {
- final String url =
- "http://127.0.0.1:" + HTTP_PORT + "/restconf/operational/ietf-netconf-monitoring:netconf-state";
- LOG.info("RESTCONF HTTP GET to {}", url);
- final HttpResponse<String> jsonNodeHttpResponse = Unirest.get(url)
- .basicAuth(UNAME, PASSWORD)
- .asString();
- LOG.info("RESTCONF HTTP GET to {}, status: {}, data: {}",
- url, jsonNodeHttpResponse.getStatus(), jsonNodeHttpResponse.getBody());
-
- assertSuccessStatus(jsonNodeHttpResponse);
- assertSuccessResponseForNetconfMonitoring(jsonNodeHttpResponse);
- }
-
- private void assertRestconfHttps() throws Exception {
- final String url =
- "https://127.0.0.1:" + HTTPS_PORT + "/restconf/operational/ietf-netconf-monitoring:netconf-state";
- LOG.info("RESTCONF HTTPS GET to {}", url);
- final HttpResponse<String> jsonNodeHttpResponse = Unirest.get(url)
- .basicAuth(UNAME, PASSWORD)
- .asString();
- LOG.info("RESTCONF HTTPS GET to {}, status: {}, data: {}",
- url, jsonNodeHttpResponse.getStatus(), jsonNodeHttpResponse.getBody());
-
- assertSuccessStatus(jsonNodeHttpResponse);
- assertSuccessResponseForNetconfMonitoring(jsonNodeHttpResponse);
- }
-
- private void assertSuccessResponseForNetconfMonitoring(final HttpResponse<String> jsonNodeHttpResponse) {
- assertThat(jsonNodeHttpResponse.getBody(), containsString("schemas"));
- assertThat(jsonNodeHttpResponse.getBody(), containsString(NETCONF_NAMESPACE));
- }
-
- private void assertSuccessStatus(final HttpResponse<String> jsonNodeHttpResponse) {
- assertTrue(jsonNodeHttpResponse.getStatus() >= 200);
- assertTrue(jsonNodeHttpResponse.getStatus() < 400);
- }
-} \ No newline at end of file
diff --git a/infra/minimal-distribution/src/test/java/io/fd/honeycomb/infra/distro/Modules.java b/infra/minimal-distribution/src/test/java/io/fd/honeycomb/infra/distro/Modules.java
deleted file mode 100644
index e30fb87ca..000000000
--- a/infra/minimal-distribution/src/test/java/io/fd/honeycomb/infra/distro/Modules.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * 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.
- */
-
-package io.fd.honeycomb.infra.distro;
-
-import com.google.inject.AbstractModule;
-import com.google.inject.Binder;
-import com.google.inject.Module;
-
-public class Modules {
-
- public static class ChildModule1 implements Module {
- @Override
- public void configure(final Binder binder) {
- }
- }
-
- public static class ChildModule2 implements Module {
- @Override
- public void configure(final Binder binder) {
- }
- }
-
- public static class ChildModule3 extends AbstractModule {
- @Override
- protected void configure() {
- }
- }
-
- public static class NonModule{}
-}
diff --git a/infra/minimal-distribution/src/test/java/io/fd/honeycomb/infra/distro/activation/ActiveModuleProviderTest.java b/infra/minimal-distribution/src/test/java/io/fd/honeycomb/infra/distro/activation/ActiveModuleProviderTest.java
deleted file mode 100644
index fd2c6c860..000000000
--- a/infra/minimal-distribution/src/test/java/io/fd/honeycomb/infra/distro/activation/ActiveModuleProviderTest.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Copyright (c) 2017 Cisco and/or its affiliates.
- *
- * 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.
- */
-
-package io.fd.honeycomb.infra.distro.activation;
-
-
-import static com.google.common.collect.ImmutableList.of;
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.Matchers.empty;
-import static org.hamcrest.Matchers.hasItem;
-import static org.hamcrest.Matchers.hasItems;
-import static org.hamcrest.Matchers.hasSize;
-import static org.hamcrest.Matchers.isA;
-import static org.hamcrest.core.Is.is;
-
-import com.google.common.collect.ImmutableList;
-import com.google.inject.Module;
-import java.util.List;
-import java.util.Set;
-import org.junit.Test;
-
-public class ActiveModuleProviderTest {
-
- @Test
- public void testLoadActiveModulesSuccessfull() {
- final ImmutableList<String> rawResources = of(
- "// this should be skipped",
- "// io.fd.honeycomb.infra.distro.Modules$ChildModule1",
- " io.fd.honeycomb.infra.distro.Modules$ChildModule2",
- "io.fd.honeycomb.infra.distro.Modules$ChildModule3 ",
- "io.fd.honeycomb.infra.distro.Modules$ChildModule3",
- "io.fd.honeycomb.infra.distro.Modules$NonModule"
- );
- // have to be without wildcard, otherwise mockito has problem with it
- final Set<Module> activeModules = (Set<Module>) new ActiveModules(ActiveModuleProvider.loadActiveModules(rawResources)).createModuleInstances();
-
- // first and second line should be ignored due to comment
- // second,third,and fourth are valid,but should reduce module count to 2,because of duplicity
- // last one does is not ancestor of Module, so it should be ignored/skipped
- assertThat(activeModules, hasSize(2));
- //hasItems or containsInAnyOrder does not have/is deprecated in variant with matcher
- assertThat(activeModules, hasItem(isA(io.fd.honeycomb.infra.distro.Modules.ChildModule2.class)));
- assertThat(activeModules, hasItem(isA(io.fd.honeycomb.infra.distro.Modules.ChildModule3.class)));
- }
-
- @Test(expected = IllegalStateException.class)
- public void testLoadActiveModulesFailed() {
- final ImmutableList rawResources = of(
- "// this should be skipped",
- "// io.fd.honeycomb.infra.distro.Modules$ChildModule1",
- " io.fd.honeycomb.infra.distro.Modules$ChildModule2",
- "### io.fd.honeycomb.infra.distro.Modules$ChildModule3 ",// it should fail because of this
- "io.fd.honeycomb.infra.distro.Modules$ChildModule3",
- "io.fd.honeycomb.infra.distro.Modules$NonModule"
- );
-
- ActiveModuleProvider.loadActiveModules(rawResources);
- }
-
- @Test
- public void testAggregateResourcesNonEmpty() {
- final List<String> aggregatedResources =
- ActiveModuleProvider.aggregateResources("modules", this.getClass().getClassLoader());
- assertThat(aggregatedResources, hasSize(5));
- assertThat(aggregatedResources, hasItems(" Non-commented non-trimmed",
- "//Commented",
- "// Commented non-trimmed",
- "Not commented",
- "// Line from second file"));
- }
-
- @Test
- public void testAggregateResourcesEmpty() {
- assertThat(ActiveModuleProvider.aggregateResources("/non-existing-folder", this.getClass().getClassLoader()),
- is(empty()));
- }
-
-}