summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--security-util-lib/src/main/java/org/onap/sdc/security/AuthenticationCookie.java34
-rw-r--r--security-util-lib/src/main/java/org/onap/sdc/security/SecurityUtil.java153
-rw-r--r--security-util-lib/src/main/java/org/onap/sdc/security/filters/SampleFilter.java4
-rw-r--r--security-util-lib/src/main/java/org/onap/sdc/security/logging/elements/HttpResponse.java40
-rw-r--r--security-util-lib/src/main/java/org/onap/sdc/security/logging/elements/LoggerFactory.java18
-rw-r--r--zusammen-lib/src/test/java/org/onap/sdc/common/zusammen/persistence/ZusammenConnectorTest.java374
6 files changed, 481 insertions, 142 deletions
diff --git a/security-util-lib/src/main/java/org/onap/sdc/security/AuthenticationCookie.java b/security-util-lib/src/main/java/org/onap/sdc/security/AuthenticationCookie.java
index 9440eea..b8f3afa 100644
--- a/security-util-lib/src/main/java/org/onap/sdc/security/AuthenticationCookie.java
+++ b/security-util-lib/src/main/java/org/onap/sdc/security/AuthenticationCookie.java
@@ -21,9 +21,13 @@
package org.onap.sdc.security;
import java.util.Set;
+import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
+import lombok.ToString;
+@EqualsAndHashCode
+@ToString
public class AuthenticationCookie {
@Getter @Setter
@@ -72,35 +76,5 @@ public class AuthenticationCookie {
this.lastName = lastName;
}
- @Override
- public boolean equals(Object o) {
- if (this == o) return true;
- if (!(o instanceof AuthenticationCookie)) return false;
- AuthenticationCookie that = (AuthenticationCookie) o;
-
- if (getMaxSessionTime() != that.getMaxSessionTime()) return false;
- if (getCurrentSessionTime() != that.getCurrentSessionTime()) return false;
- if (getUserID() != null ? !getUserID().equals(that.getUserID()) : that.getUserID() != null) return false;
- return getRoles() != null ? getRoles().containsAll(that.getRoles()) : that.getRoles() == null;
- }
-
- @Override
- public int hashCode() {
- int result = getUserID() != null ? getUserID().hashCode() : 0;
- result = 31 * result + (getRoles() != null ? getRoles().hashCode() : 0);
- result = 31 * result + (int) (getMaxSessionTime() ^ (getMaxSessionTime() >>> 32));
- result = 31 * result + (int) (getCurrentSessionTime() ^ (getCurrentSessionTime() >>> 32));
- return result;
- }
-
- @Override
- public String toString() {
- return "AuthenticationCookie{" +
- "userID='" + userID + '\'' +
- ", roles=" + roles +
- ", maxSessionTime=" + maxSessionTime +
- ", currentSessionTime=" + currentSessionTime +
- '}';
- }
}
diff --git a/security-util-lib/src/main/java/org/onap/sdc/security/SecurityUtil.java b/security-util-lib/src/main/java/org/onap/sdc/security/SecurityUtil.java
index 98410d2..27d946f 100644
--- a/security-util-lib/src/main/java/org/onap/sdc/security/SecurityUtil.java
+++ b/security-util-lib/src/main/java/org/onap/sdc/security/SecurityUtil.java
@@ -20,133 +20,148 @@
package org.onap.sdc.security;
-import fj.data.Either;
-import org.onap.sdc.security.logging.wrappers.Logger;
+import static java.nio.charset.StandardCharsets.UTF_8;
-import javax.crypto.BadPaddingException;
-import javax.crypto.Cipher;
-import javax.crypto.IllegalBlockSizeException;
-import javax.crypto.NoSuchPaddingException;
-import javax.crypto.spec.SecretKeySpec;
+import fj.data.Either;
import java.io.UnsupportedEncodingException;
-import java.nio.charset.StandardCharsets;
import java.security.InvalidKeyException;
import java.security.Key;
import java.security.NoSuchAlgorithmException;
import java.util.Base64;
+import javax.crypto.BadPaddingException;
+import javax.crypto.Cipher;
+import javax.crypto.IllegalBlockSizeException;
+import javax.crypto.NoSuchPaddingException;
+import javax.crypto.spec.SecretKeySpec;
+import org.onap.sdc.security.logging.enums.EcompLoggerErrorCode;
+import org.onap.sdc.security.logging.wrappers.Logger;
public class SecurityUtil {
- private static final Logger LOG = Logger.getLogger( SecurityUtil.class );
- private static final byte[] KEY = new byte[]{-64,5,-32 ,-117 ,-44,8,-39, 1, -9, 36,-46,-81, 62,-15,-63,-75};
+ private static final Logger LOG = Logger.getLogger(SecurityUtil.class);
+ private static final byte[] KEY =
+ new byte[] {-64, 5, -32, -117, -44, 8, -39, 1, -9, 36, -46, -81, 62, -15, -63, -75};
public static final SecurityUtil INSTANCE = new SecurityUtil();
- public static final String ALGORITHM = "AES" ;
- public static final String CHARSET = StandardCharsets.UTF_8.name();
+ public static final String ALGORITHM = "AES";
+ public static final String CHARSET = UTF_8.name();
- public static Key secKey = null ;
+ public static Key secKey = null;
/**
- *
* cmd commands >$PROGRAM_NAME decrypt "$ENCRYPTED_MSG"
- * >$PROGRAM_NAME encrypt "message"
- **/
+ * >$PROGRAM_NAME encrypt "message"
+ **/
- private SecurityUtil(){ super(); }
+ private SecurityUtil() {
+ }
static {
- try{
- secKey = generateKey( KEY, ALGORITHM );
- }
- catch(Exception e){
- LOG.warn("cannot generate key for {}", ALGORITHM);
+ try {
+ secKey = generateKey(KEY, ALGORITHM);
+ } catch (Exception e) {
+ LOG.warn(EcompLoggerErrorCode.PERMISSION_ERROR,"cannot generate key for {}", ALGORITHM);
}
}
-
- public static Key generateKey(final byte[] KEY, String algorithm){
+ public static Key generateKey(final byte[] KEY, String algorithm) {
return new SecretKeySpec(KEY, algorithm);
}
//obfuscates key prefix -> **********
- public String obfuscateKey(String sensitiveData){
+ public String obfuscateKey(String sensitiveData) {
- if (sensitiveData != null){
- int len = sensitiveData.length();
- StringBuilder builder = new StringBuilder(sensitiveData);
- for (int i=0; i<len/2; i++){
- builder.setCharAt(i, '*');
- }
- return builder.toString();
+ if (sensitiveData == null) {
+ return null;
+ }
+ int len = sensitiveData.length();
+ StringBuilder builder = new StringBuilder(sensitiveData);
+ for (int i = 0; i < len / 2; i++) {
+ builder.setCharAt(i, '*');
}
- return sensitiveData;
+ return builder.toString();
}
+
/**
- * @param strDataToEncrypt - plain string to encrypt
- * Encrypt the Data
- * a. Declare / Initialize the Data. Here the data is of type String
- * b. Convert the Input Text to Bytes
- * c. Encrypt the bytes using doFinal method
+ * @param strDataToEncrypt - plain string to encrypt
+ * Encrypt the Data
+ * a. Declare / Initialize the Data. Here the data is of type String
+ * b. Convert the Input Text to Bytes
+ * c. Encrypt the bytes using doFinal method
*/
- public Either<String,String> encrypt(String strDataToEncrypt){
- if (strDataToEncrypt != null ){
+ public Either<String, String> encrypt(String strDataToEncrypt) {
+ if (strDataToEncrypt != null) {
try {
LOG.debug("Encrypt key -> {}", secKey);
- Cipher aesCipherForEncryption = Cipher.getInstance("AES"); // Must specify the mode explicitly as most JCE providers default to ECB mode!!
+ Cipher aesCipherForEncryption = Cipher.getInstance(
+ "AES"); // Must specify the mode explicitly as most JCE providers default to ECB mode!!
aesCipherForEncryption.init(Cipher.ENCRYPT_MODE, secKey);
byte[] byteDataToEncrypt = strDataToEncrypt.getBytes();
byte[] byteCipherText = aesCipherForEncryption.doFinal(byteDataToEncrypt);
- String strCipherText = new String( Base64.getMimeEncoder().encode(byteCipherText), CHARSET );
+ String strCipherText = new String(Base64.getMimeEncoder().encode(byteCipherText), CHARSET);
LOG.debug("Cipher Text generated using AES is {}", strCipherText);
return Either.left(strCipherText);
- } catch( NoSuchAlgorithmException | UnsupportedEncodingException e){
- LOG.warn( "cannot encrypt data unknown algorithm or missing encoding for {}" ,secKey.getAlgorithm());
- } catch( InvalidKeyException e){
- LOG.warn( "invalid key recieved - > {} | {}" , Base64.getDecoder().decode( secKey.getEncoded() ), e.getMessage() );
- } catch( IllegalBlockSizeException | BadPaddingException | NoSuchPaddingException e){
- LOG.warn( "bad algorithm definition (Illegal Block Size or padding), please review you algorithm block&padding" , e.getMessage() );
+ } catch (NoSuchAlgorithmException | UnsupportedEncodingException e) {
+ LOG.warn(EcompLoggerErrorCode.PERMISSION_ERROR,
+ "cannot encrypt data unknown algorithm or missing encoding for {}", secKey.getAlgorithm());
+ } catch (InvalidKeyException e) {
+ LOG.warn(EcompLoggerErrorCode.PERMISSION_ERROR, "invalid key recieved - > {} | {}",
+ new String(Base64.getDecoder().decode(secKey.getEncoded())), e.getMessage());
+ } catch (IllegalBlockSizeException | BadPaddingException | NoSuchPaddingException e) {
+ LOG.warn(EcompLoggerErrorCode.PERMISSION_ERROR,
+ "bad algorithm definition (Illegal Block Size or padding), please review you algorithm block&padding",
+ e.getMessage());
}
}
- return Either.right("Cannot encrypt "+strDataToEncrypt);
+ return Either.right("Cannot encrypt " + strDataToEncrypt);
}
/**
* Decrypt the Data
- * @param byteCipherText - should be valid bae64 input in the length of 16bytes
+ *
+ * @param byteCipherText - should be valid bae64 input in the length of 16bytes
* @param isBase64Decoded - is data already base64 encoded&aligned to 16 bytes
- * a. Initialize a new instance of Cipher for Decryption (normally don't reuse the same object)
- * b. Decrypt the cipher bytes using doFinal method
+ * a. Initialize a new instance of Cipher for Decryption (normally don't reuse the same
+ * object)
+ * b. Decrypt the cipher bytes using doFinal method
*/
- public Either<String,String> decrypt(byte[] byteCipherText , boolean isBase64Decoded){
- if (byteCipherText != null){
+ public Either<String, String> decrypt(byte[] byteCipherText, boolean isBase64Decoded) {
+ if (byteCipherText != null) {
byte[] alignedCipherText = byteCipherText;
- try{
- if (isBase64Decoded)
+ try {
+ if (isBase64Decoded) {
alignedCipherText = Base64.getDecoder().decode(byteCipherText);
- LOG.debug("Decrypt key -> "+secKey.getEncoded());
- Cipher aesCipherForDecryption = Cipher.getInstance("AES"); // Must specify the mode explicitly as most JCE providers default to ECB mode!!
+ }
+ LOG.debug("Decrypt key -> " + secKey.getEncoded());
+ Cipher aesCipherForDecryption = Cipher.getInstance(
+ "AES"); // Must specify the mode explicitly as most JCE providers default to ECB mode!!
aesCipherForDecryption.init(Cipher.DECRYPT_MODE, secKey);
byte[] byteDecryptedText = aesCipherForDecryption.doFinal(alignedCipherText);
String strDecryptedText = new String(byteDecryptedText);
- LOG.debug("Decrypted Text message is: {}" , obfuscateKey( strDecryptedText ));
+ LOG.debug("Decrypted Text message is: {}", obfuscateKey(strDecryptedText));
return Either.left(strDecryptedText);
- } catch( NoSuchAlgorithmException e){
- LOG.warn( "cannot encrypt data unknown algorithm or missing encoding for {}" ,secKey.getAlgorithm());
- } catch( InvalidKeyException e){
- LOG.warn( "invalid key recieved - > {} | {}" , Base64.getDecoder().decode( secKey.getEncoded() ), e.getMessage() );
- } catch( IllegalBlockSizeException | BadPaddingException | NoSuchPaddingException e){
- LOG.warn( "bad algorithm definition (Illegal Block Size or padding), please review you algorithm block&padding" , e.getMessage() );
+ } catch (NoSuchAlgorithmException e) {
+ LOG.warn(EcompLoggerErrorCode.PERMISSION_ERROR,
+ "cannot encrypt data unknown algorithm or missing encoding for {}", secKey.getAlgorithm());
+ } catch (InvalidKeyException e) {
+ LOG.warn(EcompLoggerErrorCode.PERMISSION_ERROR, "invalid key recieved - > {} | {}",
+ new String(Base64.getDecoder().decode(secKey.getEncoded())), e.getMessage());
+ } catch (IllegalBlockSizeException | BadPaddingException | NoSuchPaddingException e) {
+ LOG.warn(EcompLoggerErrorCode.PERMISSION_ERROR,
+ "bad algorithm definition (Illegal Block Size or padding), please review you algorithm block&padding",
+ e.getMessage());
}
}
return Either.right("Decrypt FAILED");
}
- public Either<String,String> decrypt(String byteCipherText){
+ public Either<String, String> decrypt(String byteCipherText) {
try {
- return decrypt(byteCipherText.getBytes(CHARSET),true);
- } catch( UnsupportedEncodingException e ){
- LOG.warn( "Missing encoding for {} | {} " ,secKey.getAlgorithm() , e.getMessage());
+ return decrypt(byteCipherText.getBytes(CHARSET), true);
+ } catch (UnsupportedEncodingException e) {
+ LOG.warn(EcompLoggerErrorCode.PERMISSION_ERROR, "Missing encoding for {} | {} ", secKey.getAlgorithm(),
+ e.getMessage());
}
return Either.right("Decrypt FAILED");
}
diff --git a/security-util-lib/src/main/java/org/onap/sdc/security/filters/SampleFilter.java b/security-util-lib/src/main/java/org/onap/sdc/security/filters/SampleFilter.java
index 853c40d..0578c1d 100644
--- a/security-util-lib/src/main/java/org/onap/sdc/security/filters/SampleFilter.java
+++ b/security-util-lib/src/main/java/org/onap/sdc/security/filters/SampleFilter.java
@@ -38,8 +38,8 @@ public class SampleFilter extends SessionValidationFilter {
private static class Configuration implements ISessionValidationFilterConfiguration {
private String securityKey = "AGLDdG4D04BKm2IxIWEr8o==";
- private long maxSessionTimeOut = 24*60*60*1000;
- private long sessionIdleTimeOut = 60*60*1000;
+ private long maxSessionTimeOut = 24*60*60*1_000L;
+ private long sessionIdleTimeOut = 60*60*1_000L;
private String redirectURL = "http://portal.api.simpledemo.onap.org:8989/ECOMPPORTAL/login.htm";
private List<String> excludedUrls = new ArrayList<>(Arrays.asList("/config","/configmgr","/rest","/kibanaProxy","/healthcheck","/upload.*"));
private String cookieName = "kuku";
diff --git a/security-util-lib/src/main/java/org/onap/sdc/security/logging/elements/HttpResponse.java b/security-util-lib/src/main/java/org/onap/sdc/security/logging/elements/HttpResponse.java
index 57aaf3c..61f440c 100644
--- a/security-util-lib/src/main/java/org/onap/sdc/security/logging/elements/HttpResponse.java
+++ b/security-util-lib/src/main/java/org/onap/sdc/security/logging/elements/HttpResponse.java
@@ -20,11 +20,19 @@
package org.onap.sdc.security.logging.elements;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.ToString;
import org.apache.commons.lang3.StringUtils;
+@ToString
+@AllArgsConstructor
public class HttpResponse<T> {
+ @Getter
private final T response;
+ @Getter
private final int statusCode;
+ @Getter
private final String description;
public HttpResponse(T response, int statusCode) {
@@ -32,37 +40,5 @@ public class HttpResponse<T> {
this.statusCode = statusCode;
this.description = StringUtils.EMPTY;
}
-
- public HttpResponse(T response, int statusCode, String description) {
- this.response = response;
- this.statusCode = statusCode;
- this.description = description;
- }
-
- public T getResponse() {
- return response;
- }
- public int getStatusCode() {
- return statusCode;
- }
-
- public String getDescription() {
- return description;
- }
-
- @Override
- public String toString() {
- StringBuilder builder = new StringBuilder();
- builder.append("HttpResponse [response=");
- builder.append(response);
- builder.append(", statusCode=");
- builder.append(statusCode);
- builder.append(", description=");
- builder.append(description);
- builder.append("]");
- return builder.toString();
- }
-
-
}
diff --git a/security-util-lib/src/main/java/org/onap/sdc/security/logging/elements/LoggerFactory.java b/security-util-lib/src/main/java/org/onap/sdc/security/logging/elements/LoggerFactory.java
index fe67de1..67645d7 100644
--- a/security-util-lib/src/main/java/org/onap/sdc/security/logging/elements/LoggerFactory.java
+++ b/security-util-lib/src/main/java/org/onap/sdc/security/logging/elements/LoggerFactory.java
@@ -30,19 +30,19 @@ public class LoggerFactory {
@SuppressWarnings("unchecked")
public static <T, V> V getLogger(Class<T> type, Logger logger) {
- if (type.getName().equals(LoggerAudit.class.getName())) {
+ if (type.isAssignableFrom(LoggerAudit.class) ) {
return (V) new LoggerAudit(new LogFieldsMdcHandler(), logger);
}
- if (type.getName().equals(LoggerDebug.class.getName())) {
+ if (type.isAssignableFrom(LoggerDebug.class)) {
return (V) new LoggerDebug(new LogFieldsMdcHandler(), logger);
}
- if (type.getName().equals(LoggerMetric.class.getName())) {
+ if (type.isAssignableFrom(LoggerMetric.class)) {
return (V) new LoggerMetric(new LogFieldsMdcHandler(), logger);
}
- if (type.getName().equals(LoggerError.class.getName())) {
+ if (type.isAssignableFrom(LoggerError.class)) {
return (V) new LoggerError(new LogFieldsMdcHandler(), logger);
}
@@ -52,23 +52,23 @@ public class LoggerFactory {
@SuppressWarnings("unchecked")
public static <T, V> V getMdcLogger(Class<T> type, Logger logger) {
- if (type.getName().equals(LoggerAudit.class.getName())) {
+ if (type.isAssignableFrom(LoggerAudit.class)) {
return (V) new LoggerAudit(LogFieldsMdcHandler.getInstance(), logger);
}
- if (type.getName().equals(LoggerDebug.class.getName())) {
+ if (type.isAssignableFrom(LoggerDebug.class)) {
return (V) new LoggerDebug(LogFieldsMdcHandler.getInstance(), logger);
}
- if (type.getName().equals(LoggerMetric.class.getName())) {
+ if (type.isAssignableFrom(LoggerMetric.class)) {
return (V) new LoggerMetric(LogFieldsMdcHandler.getInstance(), logger);
}
- if (type.getName().equals(LoggerError.class.getName())) {
+ if (type.isAssignableFrom(LoggerError.class)) {
return (V) new LoggerError(LogFieldsMdcHandler.getInstance(), logger);
}
- if (type.getName().equals(LoggerSupportability.class.getName())) {
+ if (type.isAssignableFrom(LoggerSupportability.class)) {
return (V) new LoggerSupportability(LogFieldsMdcHandler.getInstance(), logger);
}
diff --git a/zusammen-lib/src/test/java/org/onap/sdc/common/zusammen/persistence/ZusammenConnectorTest.java b/zusammen-lib/src/test/java/org/onap/sdc/common/zusammen/persistence/ZusammenConnectorTest.java
new file mode 100644
index 0000000..b65cdc9
--- /dev/null
+++ b/zusammen-lib/src/test/java/org/onap/sdc/common/zusammen/persistence/ZusammenConnectorTest.java
@@ -0,0 +1,374 @@
+/*
+ * Copyright © 2019 European Support Limited
+ *
+ * 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 org.onap.sdc.common.zusammen.persistence;
+
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.fail;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import com.amdocs.zusammen.adaptor.inbound.api.health.HealthAdaptor;
+import com.amdocs.zusammen.adaptor.inbound.api.health.HealthAdaptorFactory;
+import com.amdocs.zusammen.adaptor.inbound.api.item.ElementAdaptorFactory;
+import com.amdocs.zusammen.adaptor.inbound.api.item.ItemAdaptor;
+import com.amdocs.zusammen.adaptor.inbound.api.item.ItemAdaptorFactory;
+import com.amdocs.zusammen.adaptor.inbound.api.item.ItemVersionAdaptor;
+import com.amdocs.zusammen.adaptor.inbound.api.item.ItemVersionAdaptorFactory;
+import com.amdocs.zusammen.commons.health.data.HealthInfo;
+import com.amdocs.zusammen.commons.health.data.HealthStatus;
+import com.amdocs.zusammen.datatypes.Id;
+import com.amdocs.zusammen.datatypes.SessionContext;
+import com.amdocs.zusammen.datatypes.Space;
+import com.amdocs.zusammen.datatypes.item.Info;
+import com.amdocs.zusammen.datatypes.item.Item;
+import com.amdocs.zusammen.datatypes.item.ItemVersion;
+import com.amdocs.zusammen.datatypes.item.ItemVersionData;
+import com.amdocs.zusammen.datatypes.item.ItemVersionStatus;
+import com.amdocs.zusammen.datatypes.item.SynchronizationStatus;
+import com.amdocs.zusammen.datatypes.itemversion.ItemVersionRevisions;
+import com.amdocs.zusammen.datatypes.itemversion.Tag;
+import com.amdocs.zusammen.datatypes.response.ErrorCode;
+import com.amdocs.zusammen.datatypes.response.Module;
+import com.amdocs.zusammen.datatypes.response.Response;
+import com.amdocs.zusammen.datatypes.response.ReturnCode;
+import com.google.common.collect.ImmutableList;
+import java.util.Collection;
+import java.util.List;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.junit.MockitoJUnitRunner;
+import org.onap.sdc.common.zusammen.persistence.impl.ZusammenConnectorImpl;
+
+@RunWith(MockitoJUnitRunner.class)
+public class ZusammenConnectorTest {
+
+ @Mock
+ private ItemAdaptorFactory itemAdaptorFactoryMock;
+ @Mock
+ private ItemVersionAdaptorFactory versionAdaptorFactoryMock;
+ @Mock
+ private ElementAdaptorFactory elementAdaptorFactoryMock;
+ @Mock
+ private HealthAdaptorFactory healthAdaptorFactoryMock;
+ private ZusammenConnector zusammenConnector;
+ @Mock
+ private SessionContext sessionContext;
+
+ @Before
+ public void init() {
+ zusammenConnector =
+ new ZusammenConnectorImpl(itemAdaptorFactoryMock, versionAdaptorFactoryMock, elementAdaptorFactoryMock,
+ healthAdaptorFactoryMock);
+
+ }
+
+ @Test
+ public void checkHealthTest() {
+ HealthAdaptor healthAdaptor = mock(HealthAdaptor.class);
+ when(healthAdaptorFactoryMock.createInterface(sessionContext)).thenReturn(healthAdaptor);
+ String test = "test";
+ HealthInfo healthInfos = new HealthInfo(test, HealthStatus.UP, test);
+ List<HealthInfo> healtInfoList = ImmutableList.of(healthInfos);
+ when(healthAdaptor.getHealthStatus(sessionContext)).thenReturn(healtInfoList);
+ Collection<HealthInfo> healthInfosCollection = zusammenConnector.checkHealth(sessionContext);
+ assertEquals(healtInfoList.size(), healthInfosCollection.size());
+ }
+
+ @Test
+ public void checkReleaseVersion() {
+ HealthAdaptor healthAdaptor = mock(HealthAdaptor.class);
+ when(healthAdaptorFactoryMock.createInterface(sessionContext)).thenReturn(healthAdaptor);
+ String version = "version";
+ when(healthAdaptor.getVersion()).thenReturn(version);
+ String releaseVersion = zusammenConnector.getReleaseVersion(sessionContext);
+ assertEquals(version, releaseVersion);
+ }
+
+ @Test
+ public void checkListItems() {
+ ItemAdaptor itemAdaptor = mock(ItemAdaptor.class);
+ when(itemAdaptorFactoryMock.createInterface(sessionContext)).thenReturn(itemAdaptor);
+ List<Item> items = ImmutableList.of(new Item(), new Item());
+ Response<Collection<Item>> response = new Response<>(items);
+ when(itemAdaptor.list(sessionContext)).thenReturn(response);
+ Collection<Item> itemList = zusammenConnector.listItems(sessionContext);
+ assertEquals(items.size(), itemList.size());
+ }
+
+ @Test(expected = org.onap.sdc.common.zusammen.services.exceptions.ZusammenException.class)
+ public void checkListItemFailure() {
+ ItemAdaptor itemAdaptor = mock(ItemAdaptor.class);
+ when(itemAdaptorFactoryMock.createInterface(sessionContext)).thenReturn(itemAdaptor);
+ List<Item> items = ImmutableList.of(new Item(), new Item());
+ Response<Collection<Item>> response = new Response<>(items);
+ setResponseErrorReturnCode(response);
+ when(itemAdaptor.list(sessionContext)).thenReturn(response);
+ zusammenConnector.listItems(sessionContext);
+ fail("Should never get here");
+ }
+
+ @Test
+ public void testCreateItem() {
+ ItemAdaptor itemAdaptor = mock(ItemAdaptor.class);
+ when(itemAdaptorFactoryMock.createInterface(sessionContext)).thenReturn(itemAdaptor);
+ String idStr = "idStr";
+ Id id = new Id(idStr);
+ Response<Id> response = new Response<>(id);
+ Info info = new Info();
+ when(itemAdaptor.create(sessionContext, info)).thenReturn(response);
+ Id retId = zusammenConnector.createItem(sessionContext, info);
+ assertEquals(idStr, retId.getValue());
+ }
+
+ @Test(expected = org.onap.sdc.common.zusammen.services.exceptions.ZusammenException.class)
+ public void testCreateItemFailure() {
+ ItemAdaptor itemAdaptor = mock(ItemAdaptor.class);
+ when(itemAdaptorFactoryMock.createInterface(sessionContext)).thenReturn(itemAdaptor);
+ String idStr = "idStr";
+ Id id = new Id(idStr);
+ Response<Id> response = new Response<>(id);
+ setResponseErrorReturnCode(response);
+ Info info = new Info();
+ when(itemAdaptor.create(sessionContext, info)).thenReturn(response);
+ zusammenConnector.createItem(sessionContext, info);
+
+ }
+
+
+ @Test
+ public void testDeleteItem() {
+ ItemAdaptor itemAdaptor = mock(ItemAdaptor.class);
+ when(itemAdaptorFactoryMock.createInterface(sessionContext)).thenReturn(itemAdaptor);
+ Response<Void> response = new Response<>(null);
+
+ Id itemId = new Id();
+ when(itemAdaptor.delete(sessionContext, itemId)).thenReturn(response);
+ zusammenConnector.deleteItem(sessionContext, itemId);
+ assertNotNull(zusammenConnector);
+ }
+
+ @Test
+ public void testUpdateItem() {
+ ItemAdaptor itemAdaptor = mock(ItemAdaptor.class);
+ when(itemAdaptorFactoryMock.createInterface(sessionContext)).thenReturn(itemAdaptor);
+ Response<Void> response = new Response<>(null);
+ Id itemId = new Id();
+ Info info = new Info();
+ when(itemAdaptor.update(sessionContext, itemId, info)).thenReturn(response);
+ zusammenConnector.updateItem(sessionContext, itemId, info);
+ assertNotNull(zusammenConnector);
+ }
+
+
+ @Test
+ public void testPublicVersionAdaptor() {
+ ItemVersionAdaptor itemAdaptor = mock(ItemVersionAdaptor.class);
+ when(versionAdaptorFactoryMock.createInterface(sessionContext)).thenReturn(itemAdaptor);
+ List<ItemVersion> itemVersions = ImmutableList.of(new ItemVersion(), new ItemVersion());
+ Response<Collection<ItemVersion>> response = new Response<>(itemVersions);
+ Id id = new Id();
+ when(itemAdaptor.list(sessionContext, Space.PUBLIC, id)).thenReturn(response);
+ Collection<ItemVersion> itemVersionsResult = zusammenConnector.listPublicVersions(sessionContext, id);
+ assertEquals(itemVersions.size(), itemVersionsResult.size());
+ }
+
+ @Test
+ public void testListPublicVersions() {
+ ItemVersionAdaptor itemAdaptor = mock(ItemVersionAdaptor.class);
+ when(versionAdaptorFactoryMock.createInterface(sessionContext)).thenReturn(itemAdaptor);
+ ItemVersion itemVersion = new ItemVersion();
+ Response<ItemVersion> response = new Response<>(itemVersion);
+ Id id = new Id();
+ when(itemAdaptor.get(sessionContext, Space.PUBLIC, id, id)).thenReturn(response);
+ ItemVersion itemVersionsResult = zusammenConnector.getPublicVersion(sessionContext, id, id);
+ assertEquals(itemVersion, itemVersionsResult);
+ }
+
+
+ @Test
+ public void testListPublicVersion() {
+ ItemVersionAdaptor itemAdaptor = mock(ItemVersionAdaptor.class);
+ when(versionAdaptorFactoryMock.createInterface(sessionContext)).thenReturn(itemAdaptor);
+ List<ItemVersion> itemVersions = ImmutableList.of(new ItemVersion(), new ItemVersion());
+ Response<Collection<ItemVersion>> response = new Response<>(itemVersions);
+ Id id = new Id();
+ when(itemAdaptor.list(sessionContext, Space.PUBLIC, id)).thenReturn(response);
+ Collection<ItemVersion> itemVersionsResult = zusammenConnector.listPublicVersions(sessionContext, id);
+ assertEquals(itemVersions.size(), itemVersionsResult.size());
+ }
+
+ @Test
+ public void testCreateVersion() {
+ ItemVersionAdaptor itemAdaptor = mock(ItemVersionAdaptor.class);
+ when(versionAdaptorFactoryMock.createInterface(sessionContext)).thenReturn(itemAdaptor);
+ List<ItemVersion> itemVersions = ImmutableList.of(new ItemVersion(), new ItemVersion());
+ Response<Collection<ItemVersion>> response = new Response<>(itemVersions);
+ Id id = new Id();
+ when(itemAdaptor.list(sessionContext, Space.PUBLIC, id)).thenReturn(response);
+ Collection<ItemVersion> itemVersionsResult = zusammenConnector.listPublicVersions(sessionContext, id);
+ assertEquals(itemVersions.size(), itemVersionsResult.size());
+ }
+
+ @Test
+ public void testGetPublicVersion() {
+ ItemVersionAdaptor itemAdaptor = mock(ItemVersionAdaptor.class);
+ when(versionAdaptorFactoryMock.createInterface(sessionContext)).thenReturn(itemAdaptor);
+ ItemVersion itemVersionIn = new ItemVersion();
+ Id id = new Id();
+ String myId = "myId";
+ id.setValue(myId);
+ itemVersionIn.setId(id);
+ Response<ItemVersion> response = new Response<>(itemVersionIn);
+ when(itemAdaptor.get(sessionContext, Space.PUBLIC, id, id)).thenReturn(response);
+ ItemVersion itemVersion = zusammenConnector.getPublicVersion(sessionContext, id, id);
+ assertEquals(myId, itemVersion.getId().getValue());
+ }
+
+ @Test
+ public void testCreateVersionVersion() {
+ ItemVersionAdaptor itemAdaptor = mock(ItemVersionAdaptor.class);
+ when(versionAdaptorFactoryMock.createInterface(sessionContext)).thenReturn(itemAdaptor);
+ ItemVersionData itemVersionData = new ItemVersionData();
+ Id id = new Id();
+ String myId = "myId";
+ id.setValue(myId);
+ Response<Id> response = new Response<>(id);
+ when(itemAdaptor.create(sessionContext, id, id, itemVersionData)).thenReturn(response);
+ Id outId = zusammenConnector.createVersion(sessionContext, id, id, itemVersionData);
+ assertEquals(myId, outId.getValue());
+ }
+
+ @Test
+ public void testUpdateVersionVersion() {
+ ItemVersionAdaptor itemAdaptor = mock(ItemVersionAdaptor.class);
+ when(versionAdaptorFactoryMock.createInterface(sessionContext)).thenReturn(itemAdaptor);
+ ItemVersionData itemVersionData = new ItemVersionData();
+ Id id = new Id();
+ Response<Void> response = new Response<>(null);
+ Response<Void> spyResponse = spy(response);
+ when(itemAdaptor.update(sessionContext, id, id, itemVersionData)).thenReturn(spyResponse);
+ zusammenConnector.updateVersion(sessionContext, id, id, itemVersionData);
+ verify(spyResponse).getValue();
+
+ }
+
+ @Test
+ public void testGetVersion() {
+ ItemVersionAdaptor itemAdaptor = mock(ItemVersionAdaptor.class);
+ when(versionAdaptorFactoryMock.createInterface(sessionContext)).thenReturn(itemAdaptor);
+ ItemVersion itemVersion = new ItemVersion();
+ Id id = new Id();
+ String value = "myId";
+ id.setValue(value);
+ itemVersion.setId(id);
+ Response<ItemVersion> response = new Response<>(null);
+ response.setValue(itemVersion);
+ when(itemAdaptor.get(sessionContext, Space.PRIVATE, id, id)).thenReturn(response);
+ ItemVersion version = zusammenConnector.getVersion(sessionContext, id, id);
+ assertEquals(id.getValue(), itemVersion.getId().getValue());
+ }
+
+ @Test
+ public void testGetVersionStatus() {
+ ItemVersionAdaptor itemAdaptor = mock(ItemVersionAdaptor.class);
+ when(versionAdaptorFactoryMock.createInterface(sessionContext)).thenReturn(itemAdaptor);
+ ItemVersionStatus itemVersionStatus = new ItemVersionStatus(SynchronizationStatus.OUT_OF_SYNC, true);
+ Response<ItemVersionStatus> response = new Response<>(null);
+ response.setValue(itemVersionStatus);
+ Id id = new Id();
+ when(itemAdaptor.getStatus(sessionContext, id, id)).thenReturn(response);
+ ItemVersionStatus versionStatus = zusammenConnector.getVersionStatus(sessionContext, id, id);
+ assertEquals(SynchronizationStatus.OUT_OF_SYNC, versionStatus.getSynchronizationStatus());
+ }
+
+ @Test
+ public void testTagVersion() {
+ ItemVersionAdaptor itemAdaptor = mock(ItemVersionAdaptor.class);
+ when(versionAdaptorFactoryMock.createInterface(sessionContext)).thenReturn(itemAdaptor);
+ Response<Void> response = new Response<>(null);
+ Id id = new Id();
+ String name = "mame";
+ Tag tag = new Tag(name, name);
+ Tag spyTag = spy(tag);
+ when(itemAdaptor.tag(sessionContext, id, id, null, spyTag)).thenReturn(response);
+ zusammenConnector.tagVersion(sessionContext, id, id, spyTag);
+ verify(spyTag).getName();
+
+ }
+
+
+ @Test
+ public void testResetVersionRevision() {
+ ItemVersionAdaptor itemAdaptor = mock(ItemVersionAdaptor.class);
+ ItemVersionAdaptor itemVersionAdaptor = spy(itemAdaptor);
+ Response<Void> response = new Response<>(null);
+ Id id = new Id();
+ when(versionAdaptorFactoryMock.createInterface(sessionContext)).thenReturn(itemVersionAdaptor);
+ when(itemVersionAdaptor.resetRevision(sessionContext, id, id, id)).thenReturn(response);
+ zusammenConnector.resetVersionRevision(sessionContext, id, id, id);
+ verify(itemVersionAdaptor).resetRevision(sessionContext, id, id, id);
+
+ }
+
+ @Test
+ public void testRevertVersionRevision() {
+ ItemVersionAdaptor itemAdaptor = mock(ItemVersionAdaptor.class);
+ ItemVersionAdaptor itemVersionAdaptor = spy(itemAdaptor);
+ Response<Void> response = new Response<>(null);
+ when(versionAdaptorFactoryMock.createInterface(sessionContext)).thenReturn(itemVersionAdaptor);
+ Id id = new Id();
+ when(itemVersionAdaptor.revertRevision(sessionContext, id, id, id)).thenReturn(response);
+ zusammenConnector.revertVersionRevision(sessionContext, id, id, id);
+ verify(itemVersionAdaptor).revertRevision(sessionContext, id, id, id);
+ }
+
+
+ @Test
+ public void testListVersionRevisions() {
+ ItemVersionAdaptor itemAdaptor = mock(ItemVersionAdaptor.class);
+ ItemVersionRevisions itemVersionRevisions = new ItemVersionRevisions();
+ Response<ItemVersionRevisions> response = new Response<>(itemVersionRevisions);
+ when(versionAdaptorFactoryMock.createInterface(sessionContext)).thenReturn(itemAdaptor);
+ Id id = new Id();
+ when(itemAdaptor.listRevisions(sessionContext, id, id)).thenReturn(response);
+ ItemVersionRevisions itemVersionRevisions1 = zusammenConnector.listVersionRevisions(sessionContext, id, id);
+ assertEquals(itemVersionRevisions, itemVersionRevisions1);
+ }
+
+ @Test
+ public void testPublishVersion() {
+ ItemVersionAdaptor itemVersionAdaptor = spy(ItemVersionAdaptor.class);
+ Response<Void> response = new Response<>(null);
+ when(versionAdaptorFactoryMock.createInterface(sessionContext)).thenReturn(itemVersionAdaptor);
+ Id id = new Id();
+ String blaBla = "bla bla";
+ when(itemVersionAdaptor.publish(sessionContext, id, id, blaBla)).thenReturn(response);
+ zusammenConnector.publishVersion(sessionContext, id, id, blaBla);
+ verify(itemVersionAdaptor).publish(sessionContext, id, id, blaBla);
+ }
+
+
+ private void setResponseErrorReturnCode(Response response) {
+ response.setReturnCode(new ReturnCode(ErrorCode.CL_ELEMENT_GET, Module.ZSTM, "bla bla", null));
+ }
+}