From c2829de2f8f4d5c774bcafd0c36daae54b7434d9 Mon Sep 17 00:00:00 2001
From: Alinga Yeung <Alinga.Yeung@nrc-cnrc.gc.ca>
Date: Thu, 3 Sep 2015 11:48:38 -0700
Subject: [PATCH] Story 1657 rework. Added a test case for unsupported
 principal.

---
 .../ca/nrc/cadc/ac/client/UserClientTest.java | 21 +++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/projects/cadcAccessControl/test/src/ca/nrc/cadc/ac/client/UserClientTest.java b/projects/cadcAccessControl/test/src/ca/nrc/cadc/ac/client/UserClientTest.java
index 76a37a3b..73847151 100644
--- a/projects/cadcAccessControl/test/src/ca/nrc/cadc/ac/client/UserClientTest.java
+++ b/projects/cadcAccessControl/test/src/ca/nrc/cadc/ac/client/UserClientTest.java
@@ -73,7 +73,9 @@ import java.net.MalformedURLException;
 import java.net.URI;
 import java.net.URISyntaxException;
 import java.net.URL;
+import java.security.Principal;
 
+import javax.management.remote.JMXPrincipal;
 import javax.security.auth.Subject;
 
 import org.apache.log4j.Level;
@@ -163,6 +165,25 @@ public class UserClientTest
         }
     }
     
+    @Test
+    public void testSubjectWithUnsupportedPrincipal() throws URISyntaxException, MalformedURLException
+    {
+    	Principal principal = new JMXPrincipal("APIName");
+        try
+        {
+            // test subject augmentation given a subject with more than one principal
+            Subject subject = new Subject();
+            subject.getPrincipals().add(principal);
+            this.createUserClient().augmentSubject(subject);
+            Assert.fail("Expecting an IllegalArgumentException.");
+        }
+        catch(IllegalArgumentException e)
+        {
+            String expected = "Subject has unsupported principal " + principal.getName();
+            Assert.assertEquals(expected, e.getMessage());
+        }
+    }
+   
     protected UserClient createUserClient() throws URISyntaxException, MalformedURLException
     {
     	RegistryClient regClient = new RegistryClient();
-- 
GitLab