From 59d971d7b0095bbf07e079f84ec36caeb44735a3 Mon Sep 17 00:00:00 2001 From: Tomasz Golabek Date: Thu, 5 Sep 2019 10:35:58 +0200 Subject: Increasing code quality - Removal of commons-codecs - Additional code coverage Change-Id: Ib004cc3c893ea3b22f2f929e4fd211e83b203532 Issue-ID: SDC-2326 Signed-off-by: Tomasz Golabek --- pom.xml | 1 + sdc-distribution-ci/pom.xml | 7 -- .../src/main/java/org/onap/test/Decoder.java | 16 +-- sdc-distribution-client/pom.xml | 19 ++- .../java/org/onap/sdc/http/HttpAsdcClient.java | 5 +- .../onap/sdc/impl/DistributionClientFactory.java | 38 ------ .../java/org/onap/sdc/impl/StatusDataImpl.java | 7 +- .../DistributionClientDownloadResultStubImpl.java | 81 ------------ .../mock/DistributionClientResultStubImpl.java | 40 ------ .../sdc/impl/mock/DistributionClientStubImpl.java | 129 ------------------- .../main/java/org/onap/sdc/utils/GeneralUtils.java | 22 ++-- .../onap/sdc/api/asdc/RegistrationRequestTest.java | 45 +++++++ .../onap/sdc/api/asdc/ServerListResponseTest.java | 32 +++++ .../onap/sdc/impl/DistributionClientFactory.java | 35 ++++++ .../impl/DistributionStatusMessageImplTest.java | 138 +++++++++++++++++++++ .../java/org/onap/sdc/impl/StatusDataImplTest.java | 42 +++++++ .../DistributionClientDownloadResultStubImpl.java | 81 ++++++++++++ .../mock/DistributionClientResultStubImpl.java | 40 ++++++ .../sdc/impl/mock/DistributionClientStubImpl.java | 129 +++++++++++++++++++ .../java/org/onap/sdc/utils/ArtifactsUtils.java | 40 +++--- .../java/org/onap/sdc/utils/GeneralUtilsTest.java | 66 ++++++++++ 21 files changed, 665 insertions(+), 348 deletions(-) delete mode 100644 sdc-distribution-client/src/main/java/org/onap/sdc/impl/DistributionClientFactory.java delete mode 100644 sdc-distribution-client/src/main/java/org/onap/sdc/impl/mock/DistributionClientDownloadResultStubImpl.java delete mode 100644 sdc-distribution-client/src/main/java/org/onap/sdc/impl/mock/DistributionClientResultStubImpl.java delete mode 100644 sdc-distribution-client/src/main/java/org/onap/sdc/impl/mock/DistributionClientStubImpl.java create mode 100644 sdc-distribution-client/src/test/java/org/onap/sdc/api/asdc/RegistrationRequestTest.java create mode 100644 sdc-distribution-client/src/test/java/org/onap/sdc/api/asdc/ServerListResponseTest.java create mode 100644 sdc-distribution-client/src/test/java/org/onap/sdc/impl/DistributionClientFactory.java create mode 100644 sdc-distribution-client/src/test/java/org/onap/sdc/impl/DistributionStatusMessageImplTest.java create mode 100644 sdc-distribution-client/src/test/java/org/onap/sdc/impl/StatusDataImplTest.java create mode 100644 sdc-distribution-client/src/test/java/org/onap/sdc/impl/mock/DistributionClientDownloadResultStubImpl.java create mode 100644 sdc-distribution-client/src/test/java/org/onap/sdc/impl/mock/DistributionClientResultStubImpl.java create mode 100644 sdc-distribution-client/src/test/java/org/onap/sdc/impl/mock/DistributionClientStubImpl.java create mode 100644 sdc-distribution-client/src/test/java/org/onap/sdc/utils/GeneralUtilsTest.java diff --git a/pom.xml b/pom.xml index 3e0cbe6..9da77f3 100644 --- a/pom.xml +++ b/pom.xml @@ -42,6 +42,7 @@ 1.14 21.0 9.4.18.v20190429 + 0.11 diff --git a/sdc-distribution-ci/pom.xml b/sdc-distribution-ci/pom.xml index 1914d07..7b32b37 100644 --- a/sdc-distribution-ci/pom.xml +++ b/sdc-distribution-ci/pom.xml @@ -44,13 +44,6 @@ compile - - commons-codec - commons-codec - 1.9 - compile - - ch.qos.logback logback-classic diff --git a/sdc-distribution-ci/src/main/java/org/onap/test/Decoder.java b/sdc-distribution-ci/src/main/java/org/onap/test/Decoder.java index 384d26d..fc029ff 100644 --- a/sdc-distribution-ci/src/main/java/org/onap/test/Decoder.java +++ b/sdc-distribution-ci/src/main/java/org/onap/test/Decoder.java @@ -3,13 +3,14 @@ * sdc-distribution-client * ================================================================================ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Modifications copyright (C) 2019 Nokia. 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. @@ -23,22 +24,21 @@ package org.onap.test; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; -import org.apache.commons.codec.binary.Base64; +import java.util.Base64; public class Decoder { public static String encode(byte[] byteArrayToEncode) { - return new String(Base64.encodeBase64(byteArrayToEncode)); + return new String(Base64.getEncoder().encode(byteArrayToEncode)); } public static String decode(String strEncoded) { - return new String(Base64.decodeBase64(strEncoded)); + return new String(Base64.getDecoder().decode(strEncoded)); } public static String readFileToString(String file) throws IOException { - try (FileReader fileReader = new FileReader(file); - BufferedReader reader = new BufferedReader(fileReader)) { + try (FileReader fileReader = new FileReader(file); BufferedReader reader = new BufferedReader(fileReader)) { String line; StringBuilder stringBuilder = new StringBuilder(); String ls = System.getProperty("line.separator"); @@ -47,7 +47,7 @@ public class Decoder { stringBuilder.append(line); stringBuilder.append(ls); } - + reader.close(); fileReader.close(); return stringBuilder.toString(); diff --git a/sdc-distribution-client/pom.xml b/sdc-distribution-client/pom.xml index a1999f3..00a1149 100644 --- a/sdc-distribution-client/pom.xml +++ b/sdc-distribution-client/pom.xml @@ -62,13 +62,6 @@ 2.5 - - commons-codec - commons-codec - 1.9 - compile - - org.apache.httpcomponents @@ -100,6 +93,12 @@ compile + + com.google.guava + guava + ${guava.version} + + org.eclipse.jetty @@ -130,9 +129,9 @@ - com.google.guava - guava - ${guava.version} + com.google.code.bean-matchers + bean-matchers + ${bean-matchers.version} test diff --git a/sdc-distribution-client/src/main/java/org/onap/sdc/http/HttpAsdcClient.java b/sdc-distribution-client/src/main/java/org/onap/sdc/http/HttpAsdcClient.java index a93b4a7..7871816 100644 --- a/sdc-distribution-client/src/main/java/org/onap/sdc/http/HttpAsdcClient.java +++ b/sdc-distribution-client/src/main/java/org/onap/sdc/http/HttpAsdcClient.java @@ -3,6 +3,7 @@ * sdc-distribution-client * ================================================================================ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Modifications copyright (C) 2019 Nokia. 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. @@ -29,6 +30,7 @@ import java.security.KeyStore; import java.security.cert.CertificateException; import java.security.cert.X509Certificate; import java.util.ArrayList; +import java.util.Base64; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -41,7 +43,6 @@ import javax.net.ssl.TrustManager; import javax.net.ssl.TrustManagerFactory; import javax.net.ssl.X509TrustManager; -import org.apache.commons.codec.binary.Base64; import org.apache.http.Header; import org.apache.http.HttpEntity; import org.apache.http.HttpStatus; @@ -83,7 +84,7 @@ public class HttpAsdcClient implements IHttpAsdcClient { initSSL(username, password, configuraion.getKeyStorePath(), configuraion.getKeyStorePassword(), configuraion.activateServerTLSAuth()); String userNameAndPassword = username + ":" + password; - this.authHeaderValue = "Basic " + Base64.encodeBase64String(userNameAndPassword.getBytes()); + this.authHeaderValue = "Basic " + Base64.getEncoder().encodeToString(userNameAndPassword.getBytes()); } // @SuppressWarnings("deprecation") diff --git a/sdc-distribution-client/src/main/java/org/onap/sdc/impl/DistributionClientFactory.java b/sdc-distribution-client/src/main/java/org/onap/sdc/impl/DistributionClientFactory.java deleted file mode 100644 index f7a0041..0000000 --- a/sdc-distribution-client/src/main/java/org/onap/sdc/impl/DistributionClientFactory.java +++ /dev/null @@ -1,38 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * sdc-distribution-client - * ================================================================================ - * Copyright (C) 2017 AT&T 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.sdc.impl; - -import org.onap.sdc.api.IDistributionClient; -import org.onap.sdc.impl.mock.DistributionClientStubImpl; - -public class DistributionClientFactory { - - private DistributionClientFactory() { - } - - public static IDistributionClient createDistributionClient() { - return new DistributionClientImpl(); - } - - public static IDistributionClient createMockDistributionClient() { - return new DistributionClientStubImpl(); - } -} diff --git a/sdc-distribution-client/src/main/java/org/onap/sdc/impl/StatusDataImpl.java b/sdc-distribution-client/src/main/java/org/onap/sdc/impl/StatusDataImpl.java index 1d46186..de5d1ec 100644 --- a/sdc-distribution-client/src/main/java/org/onap/sdc/impl/StatusDataImpl.java +++ b/sdc-distribution-client/src/main/java/org/onap/sdc/impl/StatusDataImpl.java @@ -3,6 +3,7 @@ * SDC * ================================================================================ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Modifications copyright (C) 2019 Nokia. 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. @@ -27,7 +28,7 @@ public class StatusDataImpl implements IStatusData { private String distributionID; private String consumerID; - private long timestamp; + private Long timestamp; private String artifactURL; private DistributionStatusEnum status; private String componentName; @@ -56,7 +57,7 @@ public class StatusDataImpl implements IStatusData { return timestamp; } - public void setTimestamp(long timestamp) { + public void setTimestamp(Long timestamp) { this.timestamp = timestamp; } @@ -81,7 +82,7 @@ public class StatusDataImpl implements IStatusData { @Override public String toString() { - return "StatusDataImpl [distributionId=" + distributionID + ", consumerId=" + consumerID + ", timestamp=" + timestamp + ", artifactURL=" + artifactURL + ", status=" + status + ", errorReason=" + errorReason + "]"; + return "StatusDataImpl [distributionID=" + distributionID + ", consumerID=" + consumerID + ", timestamp=" + timestamp + ", artifactURL=" + artifactURL + ", status=" + status + ", errorReason=" + errorReason + "]"; } @Override diff --git a/sdc-distribution-client/src/main/java/org/onap/sdc/impl/mock/DistributionClientDownloadResultStubImpl.java b/sdc-distribution-client/src/main/java/org/onap/sdc/impl/mock/DistributionClientDownloadResultStubImpl.java deleted file mode 100644 index 5ffb655..0000000 --- a/sdc-distribution-client/src/main/java/org/onap/sdc/impl/mock/DistributionClientDownloadResultStubImpl.java +++ /dev/null @@ -1,81 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * sdc-distribution-client - * ================================================================================ - * Copyright (C) 2017 AT&T 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.sdc.impl.mock; - -import org.onap.sdc.api.results.IDistributionClientDownloadResult; - -/** - * Mock Implementation - */ -public class DistributionClientDownloadResultStubImpl extends DistributionClientResultStubImpl implements IDistributionClientDownloadResult { - - @Override - public byte[] getArtifactPayload() { - String mockPayload = - "heat_template_version: 2013-05-23\r\n" - + "\r\n" - + "description: >\r\n" - + " HOT template that creates one COR network (direct).\r\n" - + "\r\n" - + "parameters:\r\n" - + " cor_direct_net_name:\r\n" - + " type: string\r\n" - + " description: Name of COR direct network\r\n" - + " cor_direct_net_cidr:\r\n" - + " type: string\r\n" - + " description: Direct network address (CIDR notation)\r\n" - + " cor_direct_net_gateway:\r\n" - + " type: string\r\n" - + " description: Direct network gateway address\r\n" - + " cor_direct_net_RT:\r\n" - + " type: string\r\n" - + " description: Direct network route-target (RT)\r\n" - + "\r\n" - + "resources:\r\n" - + " cor_direct_net:\r\n" - + " type: OS::Contrail::VirtualNetwork\r\n" - + " properties:\r\n" - + " name: { get_param: cor_direct_net_name }\r\n" - + " route_targets: [ get_param: cor_direct_net_RT ]\r\n" - + "\r\n" - + " cor_direct_ip_subnet:\r\n" - + " type: OS::Neutron::Subnet\r\n" - + " properties:\r\n" - + " network_id: { get_resource: cor_direct_net }\r\n" - + " cidr: {get_param: cor_direct_net_cidr}\r\n" - + " gateway_ip: { get_param: cor_direct_net_gateway }\r\n"; - - return mockPayload.getBytes(); - } - - @Override - public String getArtifactName() { - // TODO Auto-generated method stub - return "MackArtifactName"; - } - - @Override - public String getArtifactFilename() { - // TODO Auto-generated method stub - return "MackArtifactName"; - } - -} diff --git a/sdc-distribution-client/src/main/java/org/onap/sdc/impl/mock/DistributionClientResultStubImpl.java b/sdc-distribution-client/src/main/java/org/onap/sdc/impl/mock/DistributionClientResultStubImpl.java deleted file mode 100644 index d176608..0000000 --- a/sdc-distribution-client/src/main/java/org/onap/sdc/impl/mock/DistributionClientResultStubImpl.java +++ /dev/null @@ -1,40 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * sdc-distribution-client - * ================================================================================ - * Copyright (C) 2017 AT&T 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.sdc.impl.mock; - -import org.onap.sdc.api.results.IDistributionClientResult; -import org.onap.sdc.utils.DistributionActionResultEnum; - -/** - * Mock Implementation - */ -public class DistributionClientResultStubImpl implements IDistributionClientResult { - @Override - public DistributionActionResultEnum getDistributionActionResult() { - return DistributionActionResultEnum.SUCCESS; - } - - @Override - public String getDistributionMessageResult() { - return "Stub Result, method not implemented!"; - } - -} diff --git a/sdc-distribution-client/src/main/java/org/onap/sdc/impl/mock/DistributionClientStubImpl.java b/sdc-distribution-client/src/main/java/org/onap/sdc/impl/mock/DistributionClientStubImpl.java deleted file mode 100644 index 40e1869..0000000 --- a/sdc-distribution-client/src/main/java/org/onap/sdc/impl/mock/DistributionClientStubImpl.java +++ /dev/null @@ -1,129 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * sdc-distribution-client - * ================================================================================ - * Copyright (C) 2017 AT&T 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.sdc.impl.mock; - -import java.util.List; - -import org.onap.sdc.api.IDistributionClient; -import org.onap.sdc.api.consumer.IComponentDoneStatusMessage; -import org.onap.sdc.api.consumer.IConfiguration; -import org.onap.sdc.api.consumer.IDistributionStatusMessage; -import org.onap.sdc.api.consumer.IFinalDistrStatusMessage; -import org.onap.sdc.api.consumer.INotificationCallback; -import org.onap.sdc.api.consumer.IStatusCallback; -import org.onap.sdc.api.notification.IArtifactInfo; -import org.onap.sdc.api.notification.IVfModuleMetadata; -import org.onap.sdc.api.results.IDistributionClientDownloadResult; -import org.onap.sdc.api.results.IDistributionClientResult; - -/** - * Mock Implementation - */ -public class DistributionClientStubImpl implements IDistributionClient { - - - public IDistributionClientResult updateConfiguration(IConfiguration newConf) { - return new DistributionClientResultStubImpl(); - } - - public IDistributionClientResult start() { - return new DistributionClientResultStubImpl(); - } - - public IDistributionClientResult stop() { - return new DistributionClientResultStubImpl(); - } - - public IDistributionClientResult sendDownloadStatus(IDistributionStatusMessage statusMessage) { - return new DistributionClientResultStubImpl(); - } - - public IDistributionClientResult sendDeploymentStatus(IDistributionStatusMessage statusMessage) { - return new DistributionClientResultStubImpl(); - } - - @Override - public IDistributionClientDownloadResult download(IArtifactInfo artifactInfo) { - return new DistributionClientDownloadResultStubImpl(); - } - - @Override - public IDistributionClientResult init(IConfiguration conf, INotificationCallback callback) { - return new DistributionClientResultStubImpl(); - } - - @Override - public IDistributionClientResult init(IConfiguration conf, INotificationCallback notificationCallback, - IStatusCallback statusCallback) { - return new DistributionClientResultStubImpl(); - } - - @Override - public IConfiguration getConfiguration() { - // TODO Auto-generated method stub - return null; - } - - @Override - public IDistributionClientResult sendDownloadStatus( - IDistributionStatusMessage statusMessage, String errorReason) { - // TODO Auto-generated method stub - return null; - } - - @Override - public IDistributionClientResult sendDeploymentStatus( - IDistributionStatusMessage statusMessage, String errorReason) { - // TODO Auto-generated method stub - return null; - } - - @Override - public IDistributionClientResult sendComponentDoneStatus(IComponentDoneStatusMessage statusMessage) { - return null; - } - - @Override - public IDistributionClientResult sendFinalDistrStatus(IFinalDistrStatusMessage statusMessage) { - return null; - } - - @Override - public List decodeVfModuleArtifact(byte[] artifactPayload) { - // TODO Auto-generated method stub - return null; - } - - @Override - public IDistributionClientResult sendComponentDoneStatus(IComponentDoneStatusMessage statusMessage, - String errorReason) { - // TODO Auto-generated method stub - return null; - } - - @Override - public IDistributionClientResult sendFinalDistrStatus(IFinalDistrStatusMessage statusMessage, String errorReason) { - // TODO Auto-generated method stub - return null; - } - - -} diff --git a/sdc-distribution-client/src/main/java/org/onap/sdc/utils/GeneralUtils.java b/sdc-distribution-client/src/main/java/org/onap/sdc/utils/GeneralUtils.java index ac2a904..d550b74 100644 --- a/sdc-distribution-client/src/main/java/org/onap/sdc/utils/GeneralUtils.java +++ b/sdc-distribution-client/src/main/java/org/onap/sdc/utils/GeneralUtils.java @@ -3,6 +3,7 @@ * sdc-distribution-client * ================================================================================ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Modifications copyright (C) 2019 Nokia. 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. @@ -20,13 +21,15 @@ package org.onap.sdc.utils; +import com.google.common.base.Charsets; +import com.google.common.hash.Hashing; import java.net.InetAddress; import java.net.UnknownHostException; import java.util.ArrayList; +import java.util.Base64; import java.util.List; import java.util.regex.Pattern; -import org.apache.commons.codec.binary.Base64; import org.onap.sdc.api.results.IDistributionClientResult; import org.onap.sdc.impl.DistributionClientResultImpl; import org.slf4j.Logger; @@ -36,24 +39,21 @@ import fj.data.Either; public class GeneralUtils { private static final Logger LOGGER = LoggerFactory.getLogger(GeneralUtils.class.getName()); - public static final int STRING_LENGTH_DIVIDER = 4; + private static final int STRING_LENGTH_DIVIDER = 4; private GeneralUtils() { - } public static String calculateMD5(String data) { - String calculatedMd5 = org.apache.commons.codec.digest.DigestUtils.md5Hex(data); + String calculatedMd5 = Hashing.md5().hashString(data, Charsets.UTF_8).toString(); // encode base-64 result - byte[] encodeBase64 = Base64.encodeBase64(calculatedMd5.getBytes()); - String encodeBase64Str = new String(encodeBase64); - return encodeBase64Str; - + byte[] encodeBase64 = Base64.getEncoder().encode(calculatedMd5.getBytes()); + return new String(encodeBase64); } public static String calculateMD5(byte[] decodedPayload) { - String decodedMd5 = org.apache.commons.codec.digest.DigestUtils.md5Hex(decodedPayload); - byte[] encodeMd5 = Base64.encodeBase64(decodedMd5.getBytes()); + String decodedMd5 = Hashing.md5().hashBytes(decodedPayload).toString(); + byte[] encodeMd5 = Base64.getEncoder().encode(decodedMd5.getBytes()); return new String(encodeMd5); } @@ -61,7 +61,7 @@ public class GeneralUtils { boolean isEncoded = false; try { // If no exception is caught, then it is possibly a base64 encoded string - byte[] data = Base64.decodeBase64(str); + byte[] data = Base64.getDecoder().decode(str); // checks if the string was properly padded to the isEncoded = ((str.length() % STRING_LENGTH_DIVIDER == 0) && (Pattern.matches("\\A[a-zA-Z0-9/+]+={1,2}\\z", str))); diff --git a/sdc-distribution-client/src/test/java/org/onap/sdc/api/asdc/RegistrationRequestTest.java b/sdc-distribution-client/src/test/java/org/onap/sdc/api/asdc/RegistrationRequestTest.java new file mode 100644 index 0000000..50ff94c --- /dev/null +++ b/sdc-distribution-client/src/test/java/org/onap/sdc/api/asdc/RegistrationRequestTest.java @@ -0,0 +1,45 @@ +/*- + * ============LICENSE_START======================================================= + * SDC + * ================================================================================ + * Copyright (C) 2019 Nokia. 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.sdc.api.asdc; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import java.util.Collections; +import java.util.List; +import org.junit.Test; + +public class RegistrationRequestTest { + + private static final List DIST_ENV_END_POINTS = Collections.emptyList(); + private static final boolean IS_CONSUMER_TO_SDC_DISTR_STATUS_TOPIC = true; + private static final String ENV_NAME = "ENV_NAME"; + private static final String API_KEY = "API_KEY"; + + @Test + public void testConstructorShouldSetProperties() { + RegistrationRequest registrationRequest = + new RegistrationRequest(API_KEY, ENV_NAME, IS_CONSUMER_TO_SDC_DISTR_STATUS_TOPIC, DIST_ENV_END_POINTS); + assertEquals(registrationRequest.getApiPublicKey(), API_KEY); + assertEquals(registrationRequest.getDistEnvEndPoints(), DIST_ENV_END_POINTS); + assertEquals(registrationRequest.getDistrEnvName(), ENV_NAME); + assertTrue(registrationRequest.getIsConsumerToSdcDistrStatusTopic()); + } +} \ No newline at end of file diff --git a/sdc-distribution-client/src/test/java/org/onap/sdc/api/asdc/ServerListResponseTest.java b/sdc-distribution-client/src/test/java/org/onap/sdc/api/asdc/ServerListResponseTest.java new file mode 100644 index 0000000..449eca8 --- /dev/null +++ b/sdc-distribution-client/src/test/java/org/onap/sdc/api/asdc/ServerListResponseTest.java @@ -0,0 +1,32 @@ +/*- + * ============LICENSE_START======================================================= + * SDC + * ================================================================================ + * Copyright (C) 2019 Nokia. 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.sdc.api.asdc; + +import static com.google.code.beanmatchers.BeanMatchers.hasValidGettersAndSetters; +import static org.junit.Assert.assertThat; + +import org.junit.Test; + +public class ServerListResponseTest { + @Test + public void shouldHaveValidGettersAndSetters() { + assertThat(ServerListResponse.class, hasValidGettersAndSetters()); + } +} \ No newline at end of file diff --git a/sdc-distribution-client/src/test/java/org/onap/sdc/impl/DistributionClientFactory.java b/sdc-distribution-client/src/test/java/org/onap/sdc/impl/DistributionClientFactory.java new file mode 100644 index 0000000..6262f06 --- /dev/null +++ b/sdc-distribution-client/src/test/java/org/onap/sdc/impl/DistributionClientFactory.java @@ -0,0 +1,35 @@ +/*- + * ============LICENSE_START======================================================= + * sdc-distribution-client + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Modifications copyright (C) 2019 Nokia. 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.sdc.impl; + +import org.onap.sdc.api.IDistributionClient; + +public class DistributionClientFactory { + + private DistributionClientFactory() { + } + + public static IDistributionClient createDistributionClient() { + return new DistributionClientImpl(); + } + +} diff --git a/sdc-distribution-client/src/test/java/org/onap/sdc/impl/DistributionStatusMessageImplTest.java b/sdc-distribution-client/src/test/java/org/onap/sdc/impl/DistributionStatusMessageImplTest.java new file mode 100644 index 0000000..bf78a2a --- /dev/null +++ b/sdc-distribution-client/src/test/java/org/onap/sdc/impl/DistributionStatusMessageImplTest.java @@ -0,0 +1,138 @@ +/*- + * ============LICENSE_START======================================================= + * SDC + * ================================================================================ + * Copyright (C) 2019 Nokia. 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.sdc.impl; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; +import org.onap.sdc.api.consumer.IComponentDoneStatusMessage; +import org.onap.sdc.api.consumer.IDistributionStatusMessage; +import org.onap.sdc.api.consumer.IFinalDistrStatusMessage; +import org.onap.sdc.utils.DistributionStatusEnum; + +public class DistributionStatusMessageImplTest { + + private static final String ARTIFACT = "ARTIFACT"; + private static final String DISTRIBUTION_ID = "DISTRIBUTION_ID"; + private static final String CONSUMER_ID = "CONSUMER_ID"; + private static final String COMPONENT_NAME = "COMPONENT_NAME"; + + @Test + public void shouldProperlySetPropertiesFromIDistributionStatusMessage() { + IDistributionStatusMessage copyFrom = new IDistributionStatusMessage() { + @Override + public String getArtifactURL() { + return ARTIFACT; + } + + @Override + public String getDistributionID() { + return DISTRIBUTION_ID; + } + + @Override + public String getConsumerID() { + return CONSUMER_ID; + } + + @Override + public long getTimestamp() { + return 0; + } + + @Override + public DistributionStatusEnum getStatus() { + return DistributionStatusEnum.ALREADY_DEPLOYED; + } + }; + + DistributionStatusMessageImpl result = new DistributionStatusMessageImpl(copyFrom); + assertEquals(result.getArtifactURL(), copyFrom.getArtifactURL()); + assertEquals(result.getConsumerID(), copyFrom.getConsumerID()); + assertEquals(result.getDistributionID(), copyFrom.getDistributionID()); + assertEquals(result.getStatus(), copyFrom.getStatus()); + assertEquals(result.getTimestamp(), copyFrom.getTimestamp()); + } + + @Test + public void shouldProperlySetPropertiesFromIComponentDoneStatusMessage() { + IComponentDoneStatusMessage copyFrom = new IComponentDoneStatusMessage() { + @Override + public String getComponentName() { + return COMPONENT_NAME; + } + + @Override + public String getDistributionID() { + return DISTRIBUTION_ID; + } + + @Override + public String getConsumerID() { + return CONSUMER_ID; + } + + @Override + public long getTimestamp() { + return 0; + } + + @Override + public DistributionStatusEnum getStatus() { + return DistributionStatusEnum.ALREADY_DEPLOYED; + } + }; + + DistributionStatusMessageImpl result = new DistributionStatusMessageImpl(copyFrom); + assertEquals(result.getArtifactURL(), copyFrom.getArtifactURL()); + assertEquals(result.getConsumerID(), copyFrom.getConsumerID()); + assertEquals(result.getDistributionID(), copyFrom.getDistributionID()); + assertEquals(result.getStatus(), copyFrom.getStatus()); + assertEquals(result.getTimestamp(), copyFrom.getTimestamp()); + } + + @Test + public void shouldProperlySetPropertiesFromIFinalDistrStatusMessage() { + IFinalDistrStatusMessage copyFrom = new IFinalDistrStatusMessage() { + + @Override + public String getDistributionID() { + return DISTRIBUTION_ID; + } + + @Override + public long getTimestamp() { + return 0; + } + + @Override + public DistributionStatusEnum getStatus() { + return DistributionStatusEnum.ALREADY_DEPLOYED; + } + }; + + DistributionStatusMessageImpl result = new DistributionStatusMessageImpl(copyFrom); + assertEquals(result.getConsumerID(), copyFrom.getConsumerID()); + assertEquals(result.getDistributionID(), copyFrom.getDistributionID()); + assertEquals(result.getStatus(), copyFrom.getStatus()); + assertEquals(result.getTimestamp(), copyFrom.getTimestamp()); + } + +} \ No newline at end of file diff --git a/sdc-distribution-client/src/test/java/org/onap/sdc/impl/StatusDataImplTest.java b/sdc-distribution-client/src/test/java/org/onap/sdc/impl/StatusDataImplTest.java new file mode 100644 index 0000000..82416fa --- /dev/null +++ b/sdc-distribution-client/src/test/java/org/onap/sdc/impl/StatusDataImplTest.java @@ -0,0 +1,42 @@ +/*- + * ============LICENSE_START======================================================= + * SDC + * ================================================================================ + * Copyright (C) 2019 Nokia. 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.sdc.impl; + +import static com.google.code.beanmatchers.BeanMatchers.hasValidBeanToStringExcluding; +import static com.google.code.beanmatchers.BeanMatchers.hasValidGettersAndSettersExcluding; +import static org.junit.Assert.assertThat; + +import org.junit.Test; + +public class StatusDataImplTest { + + private static final String COMPONENT_NAME = "componentName"; + private static final String ERROR_REASON = "errorReason"; + + @Test + public void shouldHaveValidGettersAndSetters() { + assertThat(StatusDataImpl.class, hasValidGettersAndSettersExcluding(COMPONENT_NAME, ERROR_REASON)); + } + + @Test + public void shouldHaveValidToString() { + assertThat(StatusDataImpl.class, hasValidBeanToStringExcluding(COMPONENT_NAME, ERROR_REASON)); + } +} \ No newline at end of file diff --git a/sdc-distribution-client/src/test/java/org/onap/sdc/impl/mock/DistributionClientDownloadResultStubImpl.java b/sdc-distribution-client/src/test/java/org/onap/sdc/impl/mock/DistributionClientDownloadResultStubImpl.java new file mode 100644 index 0000000..5ffb655 --- /dev/null +++ b/sdc-distribution-client/src/test/java/org/onap/sdc/impl/mock/DistributionClientDownloadResultStubImpl.java @@ -0,0 +1,81 @@ +/*- + * ============LICENSE_START======================================================= + * sdc-distribution-client + * ================================================================================ + * Copyright (C) 2017 AT&T 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.sdc.impl.mock; + +import org.onap.sdc.api.results.IDistributionClientDownloadResult; + +/** + * Mock Implementation + */ +public class DistributionClientDownloadResultStubImpl extends DistributionClientResultStubImpl implements IDistributionClientDownloadResult { + + @Override + public byte[] getArtifactPayload() { + String mockPayload = + "heat_template_version: 2013-05-23\r\n" + + "\r\n" + + "description: >\r\n" + + " HOT template that creates one COR network (direct).\r\n" + + "\r\n" + + "parameters:\r\n" + + " cor_direct_net_name:\r\n" + + " type: string\r\n" + + " description: Name of COR direct network\r\n" + + " cor_direct_net_cidr:\r\n" + + " type: string\r\n" + + " description: Direct network address (CIDR notation)\r\n" + + " cor_direct_net_gateway:\r\n" + + " type: string\r\n" + + " description: Direct network gateway address\r\n" + + " cor_direct_net_RT:\r\n" + + " type: string\r\n" + + " description: Direct network route-target (RT)\r\n" + + "\r\n" + + "resources:\r\n" + + " cor_direct_net:\r\n" + + " type: OS::Contrail::VirtualNetwork\r\n" + + " properties:\r\n" + + " name: { get_param: cor_direct_net_name }\r\n" + + " route_targets: [ get_param: cor_direct_net_RT ]\r\n" + + "\r\n" + + " cor_direct_ip_subnet:\r\n" + + " type: OS::Neutron::Subnet\r\n" + + " properties:\r\n" + + " network_id: { get_resource: cor_direct_net }\r\n" + + " cidr: {get_param: cor_direct_net_cidr}\r\n" + + " gateway_ip: { get_param: cor_direct_net_gateway }\r\n"; + + return mockPayload.getBytes(); + } + + @Override + public String getArtifactName() { + // TODO Auto-generated method stub + return "MackArtifactName"; + } + + @Override + public String getArtifactFilename() { + // TODO Auto-generated method stub + return "MackArtifactName"; + } + +} diff --git a/sdc-distribution-client/src/test/java/org/onap/sdc/impl/mock/DistributionClientResultStubImpl.java b/sdc-distribution-client/src/test/java/org/onap/sdc/impl/mock/DistributionClientResultStubImpl.java new file mode 100644 index 0000000..d176608 --- /dev/null +++ b/sdc-distribution-client/src/test/java/org/onap/sdc/impl/mock/DistributionClientResultStubImpl.java @@ -0,0 +1,40 @@ +/*- + * ============LICENSE_START======================================================= + * sdc-distribution-client + * ================================================================================ + * Copyright (C) 2017 AT&T 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.sdc.impl.mock; + +import org.onap.sdc.api.results.IDistributionClientResult; +import org.onap.sdc.utils.DistributionActionResultEnum; + +/** + * Mock Implementation + */ +public class DistributionClientResultStubImpl implements IDistributionClientResult { + @Override + public DistributionActionResultEnum getDistributionActionResult() { + return DistributionActionResultEnum.SUCCESS; + } + + @Override + public String getDistributionMessageResult() { + return "Stub Result, method not implemented!"; + } + +} diff --git a/sdc-distribution-client/src/test/java/org/onap/sdc/impl/mock/DistributionClientStubImpl.java b/sdc-distribution-client/src/test/java/org/onap/sdc/impl/mock/DistributionClientStubImpl.java new file mode 100644 index 0000000..40e1869 --- /dev/null +++ b/sdc-distribution-client/src/test/java/org/onap/sdc/impl/mock/DistributionClientStubImpl.java @@ -0,0 +1,129 @@ +/*- + * ============LICENSE_START======================================================= + * sdc-distribution-client + * ================================================================================ + * Copyright (C) 2017 AT&T 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.sdc.impl.mock; + +import java.util.List; + +import org.onap.sdc.api.IDistributionClient; +import org.onap.sdc.api.consumer.IComponentDoneStatusMessage; +import org.onap.sdc.api.consumer.IConfiguration; +import org.onap.sdc.api.consumer.IDistributionStatusMessage; +import org.onap.sdc.api.consumer.IFinalDistrStatusMessage; +import org.onap.sdc.api.consumer.INotificationCallback; +import org.onap.sdc.api.consumer.IStatusCallback; +import org.onap.sdc.api.notification.IArtifactInfo; +import org.onap.sdc.api.notification.IVfModuleMetadata; +import org.onap.sdc.api.results.IDistributionClientDownloadResult; +import org.onap.sdc.api.results.IDistributionClientResult; + +/** + * Mock Implementation + */ +public class DistributionClientStubImpl implements IDistributionClient { + + + public IDistributionClientResult updateConfiguration(IConfiguration newConf) { + return new DistributionClientResultStubImpl(); + } + + public IDistributionClientResult start() { + return new DistributionClientResultStubImpl(); + } + + public IDistributionClientResult stop() { + return new DistributionClientResultStubImpl(); + } + + public IDistributionClientResult sendDownloadStatus(IDistributionStatusMessage statusMessage) { + return new DistributionClientResultStubImpl(); + } + + public IDistributionClientResult sendDeploymentStatus(IDistributionStatusMessage statusMessage) { + return new DistributionClientResultStubImpl(); + } + + @Override + public IDistributionClientDownloadResult download(IArtifactInfo artifactInfo) { + return new DistributionClientDownloadResultStubImpl(); + } + + @Override + public IDistributionClientResult init(IConfiguration conf, INotificationCallback callback) { + return new DistributionClientResultStubImpl(); + } + + @Override + public IDistributionClientResult init(IConfiguration conf, INotificationCallback notificationCallback, + IStatusCallback statusCallback) { + return new DistributionClientResultStubImpl(); + } + + @Override + public IConfiguration getConfiguration() { + // TODO Auto-generated method stub + return null; + } + + @Override + public IDistributionClientResult sendDownloadStatus( + IDistributionStatusMessage statusMessage, String errorReason) { + // TODO Auto-generated method stub + return null; + } + + @Override + public IDistributionClientResult sendDeploymentStatus( + IDistributionStatusMessage statusMessage, String errorReason) { + // TODO Auto-generated method stub + return null; + } + + @Override + public IDistributionClientResult sendComponentDoneStatus(IComponentDoneStatusMessage statusMessage) { + return null; + } + + @Override + public IDistributionClientResult sendFinalDistrStatus(IFinalDistrStatusMessage statusMessage) { + return null; + } + + @Override + public List decodeVfModuleArtifact(byte[] artifactPayload) { + // TODO Auto-generated method stub + return null; + } + + @Override + public IDistributionClientResult sendComponentDoneStatus(IComponentDoneStatusMessage statusMessage, + String errorReason) { + // TODO Auto-generated method stub + return null; + } + + @Override + public IDistributionClientResult sendFinalDistrStatus(IFinalDistrStatusMessage statusMessage, String errorReason) { + // TODO Auto-generated method stub + return null; + } + + +} diff --git a/sdc-distribution-client/src/test/java/org/onap/sdc/utils/ArtifactsUtils.java b/sdc-distribution-client/src/test/java/org/onap/sdc/utils/ArtifactsUtils.java index b562ab7..dad6d4a 100644 --- a/sdc-distribution-client/src/test/java/org/onap/sdc/utils/ArtifactsUtils.java +++ b/sdc-distribution-client/src/test/java/org/onap/sdc/utils/ArtifactsUtils.java @@ -3,13 +3,14 @@ * sdc-distribution-client * ================================================================================ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Modifications copyright (C) 2019 Nokia. 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. @@ -21,26 +22,27 @@ package org.onap.sdc.utils; - -import org.apache.commons.codec.binary.Base64; +import java.util.Base64; import org.onap.sdc.impl.mock.DistributionClientDownloadResultStubImpl; public class ArtifactsUtils { - static DistributionClientDownloadResultStubImpl distributionClientDownloadResultStubImpl = new DistributionClientDownloadResultStubImpl(); - - public static byte [] getArtifactPayload(){ - return distributionClientDownloadResultStubImpl.getArtifactPayload(); - } - - public static String getValidChecksum(){ - - String payloadStr = new String(distributionClientDownloadResultStubImpl.getArtifactPayload()); - - byte[] decodedPayload = Base64.decodeBase64(payloadStr); - String checkSum = GeneralUtils.calculateMD5 (new String(decodedPayload)); - - return checkSum; - } + + static DistributionClientDownloadResultStubImpl distributionClientDownloadResultStubImpl = + new DistributionClientDownloadResultStubImpl(); + + public static byte[] getArtifactPayload() { + return distributionClientDownloadResultStubImpl.getArtifactPayload(); + } + + public static String getValidChecksum() { + + String payloadStr = new String(distributionClientDownloadResultStubImpl.getArtifactPayload()); + + byte[] decodedPayload = Base64.getDecoder().decode(payloadStr); + String checkSum = GeneralUtils.calculateMD5(new String(decodedPayload)); + + return checkSum; + } } diff --git a/sdc-distribution-client/src/test/java/org/onap/sdc/utils/GeneralUtilsTest.java b/sdc-distribution-client/src/test/java/org/onap/sdc/utils/GeneralUtilsTest.java new file mode 100644 index 0000000..3ed80c3 --- /dev/null +++ b/sdc-distribution-client/src/test/java/org/onap/sdc/utils/GeneralUtilsTest.java @@ -0,0 +1,66 @@ +/*- + * ============LICENSE_START======================================================= + * SDC + * ================================================================================ + * Copyright (C) 2019 Nokia. 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.sdc.utils; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import com.google.common.base.Charsets; +import com.google.common.hash.HashCode; +import com.google.common.hash.Hashing; +import java.util.Base64; +import org.junit.Test; + +public class GeneralUtilsTest { + + private static final String TEXT_TO_CODE = "This is example text."; + + @Test + public void shouldCalculateMD5ForBytes() { + String hashed = GeneralUtils.calculateMD5(TEXT_TO_CODE.getBytes()); + byte[] decoded = Base64.getDecoder().decode(hashed); + HashCode expected = Hashing.md5().hashString(TEXT_TO_CODE, Charsets.UTF_8); + assertEquals(expected.toString(), new String(decoded)); + } + + @Test + public void shouldCalculateMD5ForString() { + String hashed = GeneralUtils.calculateMD5(TEXT_TO_CODE); + byte[] decoded = Base64.getDecoder().decode(hashed); + HashCode expected = Hashing.md5().hashString(TEXT_TO_CODE, Charsets.UTF_8); + assertEquals(expected.toString(), new String(decoded)); + } + + @Test + public void shouldValidateBase64EncodedString() { + HashCode expected = Hashing.md5().hashString(TEXT_TO_CODE, Charsets.UTF_8); + String base64String = Base64.getEncoder().encodeToString(expected.asBytes()); + assertTrue(GeneralUtils.isBase64Encoded(base64String)); + } + + @Test + public void shouldInvalidateBase64EncodedString() { + String base64String = Base64.getEncoder().encodeToString(TEXT_TO_CODE.getBytes()); + assertFalse(GeneralUtils.isBase64Encoded(base64String)); + } + +} \ No newline at end of file -- cgit 1.2.3-korg