[DMAAP-KAFKA] Kafka Upgrade
[dmaap/kafka11aaf.git] / src / test / java / org / onap / dmaap / kafkaAuthorize / PlainSaslServer1Test.java
index 8826f17..c354378 100644 (file)
 package org.onap.dmaap.kafkaAuthorize;
 
 import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
 
 import javax.security.sasl.SaslException;
 
+import org.apache.kafka.common.errors.SaslAuthenticationException;
 import org.apache.kafka.common.security.JaasContext;
-import org.apache.kafka.common.security.plain.PlainSaslServer;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -34,14 +35,16 @@ import org.mockito.MockitoAnnotations;
 import org.onap.dmaap.commonauth.kafka.base.authorization.AuthorizationProvider;
 import org.onap.dmaap.commonauth.kafka.base.authorization.AuthorizationProviderFactory;
 import org.powermock.api.mockito.PowerMockito;
+import org.powermock.core.classloader.annotations.PowerMockIgnore;
 import org.powermock.core.classloader.annotations.PrepareForTest;
 import org.powermock.modules.junit4.PowerMockRunner;
 
 @RunWith(PowerMockRunner.class)
+@PowerMockIgnore({"javax.security.auth.*", "jdk.internal.reflect.*", "javax.crypto.*"})
 @PrepareForTest({ AuthorizationProviderFactory.class })
 public class PlainSaslServer1Test {
 
-       PlainSaslServer1 sslServer = new PlainSaslServer1(null);
+       PlainSaslServer1 sslServer = new PlainSaslServer1();
        @Mock
        JaasContext jaasContext;
        @Mock
@@ -58,11 +61,103 @@ public class PlainSaslServer1Test {
                PowerMockito.when(factory.getProvider()).thenReturn(provider);
        }
 
-       @Test
        public void testAuthentication() throws Exception {
                String response = "authorizationID\u0000username\u0000password";
                PowerMockito.when(provider.authenticate("username", "password")).thenReturn(null);
                assertNotNull(sslServer.evaluateResponse(response.getBytes()));
 
        }
+
+       @Test
+       public void testAuthenticationEmptyAuth() throws Exception {
+               String response = "\u0000username\u0000password";
+               PowerMockito.when(provider.authenticate("username", "password")).thenReturn(null);
+               sslServer.evaluateResponse(response.getBytes());
+               assert(true);
+       }
+
+       @Test
+       public void testAuthenticationEmptyUser() throws Exception {
+               String response = "authorizationID\u0000\u0000password";
+               PowerMockito.when(provider.authenticate("username", "password")).thenReturn(null);
+               
+               try {
+                       sslServer.evaluateResponse(response.getBytes());
+               }
+               catch (SaslAuthenticationException e) {
+                       assertNotNull(e);
+               }
+       }
+       @Test
+       public void testAuthenticationEmptyPassword() throws Exception {
+               String response = "authorizationID\u0000username\u0000";
+               PowerMockito.when(provider.authenticate("username", "password")).thenReturn(null);
+               try {
+                       sslServer.evaluateResponse(response.getBytes());
+               }
+               catch (SaslAuthenticationException e) {
+                       assertNotNull(e);
+               }
+       }
+       
+       @Test
+       public void testGetAuthorizationIdWithException() {
+               
+               try {
+               sslServer.getAuthorizationID();
+               }
+               catch (IllegalStateException ise) {
+                       assertTrue(ise.getMessage().equalsIgnoreCase("Authentication exchange has not completed"));
+               }
+       }
+
+       @Test
+       public void testGetNegotiatedPropertyWithException() {
+               
+               try {
+               sslServer.getNegotiatedProperty("test");
+               }
+               catch (IllegalStateException ise) {
+                       assertTrue(ise.getMessage().equalsIgnoreCase("Authentication exchange has not completed"));
+               }
+       }
+       
+       @Test
+       public void testIsComplete() {
+               
+               try {
+               sslServer.getNegotiatedProperty("test");
+               }
+               catch (IllegalStateException ise) {
+                       assertTrue(ise.getMessage().equalsIgnoreCase("Authentication exchange has not completed"));
+               }
+               assert(true);
+       }       
+
+       
+       @Test
+       public void testUnwrap() {
+               try {
+               sslServer.unwrap(new byte[1], 0, 0);
+               }
+               catch (IllegalStateException ise) {
+                       assertTrue(ise.getMessage().equalsIgnoreCase("Authentication exchange has not completed"));
+               } catch (SaslAuthenticationException e) {
+                       e.printStackTrace();
+               }
+               assert(true);
+       }       
+       
+       @Test
+       public void testWrap() {
+               try {
+               sslServer.wrap(new byte[1], 0, 0);
+               }
+               catch (IllegalStateException ise) {
+                       assertTrue(ise.getMessage().equalsIgnoreCase("Authentication exchange has not completed"));
+               } catch (SaslAuthenticationException e) {
+                       e.printStackTrace();
+               }
+               assert(true);
+       }       
 }