sonar issue, AuthenticationMethodTest use assertNotEquals instead
[so.git] / adapters / mso-adapter-utils / src / test / java / org / onap / so / cloud / authentication / AuthenticationMethodTest.java
index d676bca..78b5c8e 100644 (file)
@@ -3,6 +3,7 @@
  * ONAP - SO
  * ================================================================================
  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2022 Samsung Electronics.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
 
 package org.onap.so.cloud.authentication;
 
-import static org.junit.Assert.assertTrue;
-
+import static com.shazam.shazamcrest.matcher.Matchers.sameBeanAs;
+import static org.junit.Assert.assertThat;
+import static org.junit.Assert.assertEquals;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Paths;
 import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.onap.so.BaseTest;
-import org.onap.so.cloud.Application;
+import org.onap.so.cloud.authentication.models.RackspaceAuthentication;
 import org.onap.so.db.catalog.beans.AuthenticationType;
 import org.onap.so.db.catalog.beans.CloudIdentity;
-import org.onap.so.cloud.authentication.models.RackspaceAuthentication;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.context.ActiveProfiles;
-import org.springframework.test.context.junit4.SpringRunner;
-
+import org.onap.so.utils.CryptoUtils;
+import com.fasterxml.jackson.core.JsonParseException;
+import com.fasterxml.jackson.databind.JsonMappingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
 import com.woorea.openstack.keystone.model.Authentication;
 import com.woorea.openstack.keystone.model.authentication.UsernamePassword;
 
 /**
- * A few JUnit tests to evaluate the new factory that manages authentication
- * types and their associated wrapper classes. Here it is assumed that core types
- * only are tested.
+ * A few JUnit tests to evaluate the new factory that manages authentication types and their associated wrapper classes.
+ * Here it is assumed that core types only are tested.
  *
  */
-public class AuthenticationMethodTest extends BaseTest {
-
-       @Autowired
-       private AuthenticationMethodFactory authenticationMethodFactory;
-       /**
-        * 
-        */
-       public AuthenticationMethodTest() {
-               // TODO Auto-generated constructor stub
-       }
-       
-       @Test
-       public void testCustomRackspaceAuth() {
-               CloudIdentity ci = new CloudIdentity();
-               ci.setIdentityAuthenticationType(AuthenticationType.RACKSPACE_APIKEY);
-               ci.setMsoPass("FD205490A48D48475607C36B9AD902BF");
-               ci.setMsoId("test");
-               
-               Authentication auth = authenticationMethodFactory.getAuthenticationFor(ci);
-               assertTrue(RackspaceAuthentication.class.equals(auth.getClass()));
-       
-       }
-       
-       @Test
-       public void testCoreUsernamePasswordAuth() {
-               CloudIdentity ci = new CloudIdentity();
-               ci.setIdentityAuthenticationType(AuthenticationType.USERNAME_PASSWORD);
-               ci.setMsoPass("FD205490A48D48475607C36B9AD902BF");
-               ci.setMsoId("someuser");
-               
-               Authentication auth = authenticationMethodFactory.getAuthenticationFor(ci);
-               assertTrue(UsernamePassword.class.equals(auth.getClass()));
-               
-       }
-       
-       @Test
-       public void testCustomRackspaceAuthFromCloudIdentity() {
-               CloudIdentity ci = new CloudIdentity();
-               ci.setIdentityAuthenticationType(AuthenticationType.RACKSPACE_APIKEY);
-               ci.setMsoPass("FD205490A48D48475607C36B9AD902BF");
-               ci.setMsoId("test");
-               
-               Authentication auth = authenticationMethodFactory.getAuthenticationFor(ci);
-               assertTrue(RackspaceAuthentication.class.equals(auth.getClass()));
-       }
-       
-       @Test
-       public void testCoreUsernamePasswordAuthFromCloudIdentity() {
-               CloudIdentity ci = new CloudIdentity();
-               ci.setIdentityAuthenticationType(AuthenticationType.USERNAME_PASSWORD);
-               ci.setMsoPass("FD205490A48D48475607C36B9AD902BF");
-               ci.setMsoId("someuser");
-
-               Authentication auth = authenticationMethodFactory.getAuthenticationFor(ci);
-               assertTrue(UsernamePassword.class.equals(auth.getClass()));
-       
-       }
+public class AuthenticationMethodTest {
+
+    private AuthenticationMethodFactory authenticationMethodFactory = new AuthenticationMethodFactory();
+
+    /**
+     * 
+     */
+    public AuthenticationMethodTest() {
+        // TODO Auto-generated constructor stub
+    }
+
+    @Test
+    public void testCustomRackspaceAuth() {
+        CloudIdentity ci = new CloudIdentity();
+        ci.setIdentityAuthenticationType(AuthenticationType.RACKSPACE_APIKEY);
+        ci.setMsoPass("FD205490A48D48475607C36B9AD902BF");
+        ci.setMsoId("test");
+
+        Authentication auth = authenticationMethodFactory.getAuthenticationFor(ci);
+        assertEquals(RackspaceAuthentication.class, auth.getClass());
+
+    }
+
+    @Test
+    public void testCoreUsernamePasswordAuth() {
+        CloudIdentity ci = new CloudIdentity();
+        ci.setIdentityAuthenticationType(AuthenticationType.USERNAME_PASSWORD);
+        ci.setMsoPass("FD205490A48D48475607C36B9AD902BF");
+        ci.setMsoId("someuser");
+
+        Authentication auth = authenticationMethodFactory.getAuthenticationFor(ci);
+        assertEquals(UsernamePassword.class, auth.getClass());
+
+    }
+
+    @Test
+    public void testCustomRackspaceAuthFromCloudIdentity() {
+        CloudIdentity ci = new CloudIdentity();
+        ci.setIdentityAuthenticationType(AuthenticationType.RACKSPACE_APIKEY);
+        ci.setMsoPass("FD205490A48D48475607C36B9AD902BF");
+        ci.setMsoId("test");
+
+        Authentication auth = authenticationMethodFactory.getAuthenticationFor(ci);
+        assertEquals(RackspaceAuthentication.class, auth.getClass());
+    }
+
+    @Test
+    public void testCoreUsernamePasswordAuthFromCloudIdentity() {
+        CloudIdentity ci = new CloudIdentity();
+        ci.setIdentityAuthenticationType(AuthenticationType.USERNAME_PASSWORD);
+        ci.setMsoPass("FD205490A48D48475607C36B9AD902BF");
+        ci.setMsoId("someuser");
+
+        Authentication auth = authenticationMethodFactory.getAuthenticationFor(ci);
+        assertEquals(UsernamePassword.class, auth.getClass());
+
+    }
+
+    @Test
+    public void getAuthenticationForV3Test() throws JsonParseException, JsonMappingException, IOException {
+
+        CloudIdentity identity = new CloudIdentity();
+        identity.setMsoId("my-username");
+        identity.setMsoPass(CryptoUtils.encryptCloudConfigPassword("my-password"));
+        identity.setProjectDomainName("test-domain");
+        identity.setUserDomainName("user-domain");
+        ObjectMapper mapper = new ObjectMapper();
+        com.woorea.openstack.keystone.v3.model.Authentication expected = mapper.readValue(
+                new String(Files.readAllBytes(Paths.get("src/test/resources/__files/KeystoneV3Payload.json"))),
+                com.woorea.openstack.keystone.v3.model.Authentication.class);
+        com.woorea.openstack.keystone.v3.model.Authentication actual =
+                authenticationMethodFactory.getAuthenticationForV3(identity, "project-x");
+
+        assertThat(actual, sameBeanAs(expected));
+    }
 }