• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Licensed to the Apache Software Foundation (ASF) under one or more
3  * contributor license agreements.  See the NOTICE file distributed with
4  * this work for additional information regarding copyright ownership.
5  * The ASF licenses this file to You under the Apache License, Version 2.0
6  * (the "License"); you may not use this file except in compliance with
7  * the License.  You may obtain a copy of the License at
8  *
9  *     http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17 
18 package tests.api.javax.security.auth.x500;
19 
20 import java.util.HashMap;
21 import java.util.Map;
22 
23 import javax.security.auth.x500.X500Principal;
24 
25 public class X500PrincipalTest extends junit.framework.TestCase {
26 
27 	/**
28 	 * @tests javax.security.auth.x500.X500Principal#X500Principal(java.lang.String)
29 	 */
test_ConstructorLjava_lang_String()30 	public void test_ConstructorLjava_lang_String() {
31 		X500Principal principal = new X500Principal(
32 				"CN=Hermione Granger, O=Apache Software Foundation, OU=Harmony, L=Hogwarts, ST=Hants, C=GB");
33 		String name = principal.getName();
34 		String expectedOuput = "CN=Hermione Granger,O=Apache Software Foundation,OU=Harmony,L=Hogwarts,ST=Hants,C=GB";
35 		assertEquals("Output order precedence problem", expectedOuput, name);
36 	}
37 
38     /**
39      * @tests javax.security.auth.x500.X500Principal#X500Principal(java.lang.String, java.util.Map)
40      */
test_ConstructorLjava_lang_String_java_util_Map()41     public void test_ConstructorLjava_lang_String_java_util_Map(){
42         Map<String, String> keyword = new HashMap<String, String>();
43         keyword.put("CN", "2.19");
44         keyword.put("OU", "1.2.5.19");
45         keyword.put("O", "1.2.5");
46         X500Principal X500p = new X500Principal("CN=Duke, OU=JavaSoft, O=Sun Microsystems, C=US ,CN=DD",keyword);
47         String name = X500p.getName();
48         String expectedOut = "2.19=#130444756b65,1.2.5.19=#13084a617661536f6674,1.2.5=#131053756e204d6963726f73797374656d73,C=US,2.19=#13024444";
49         assertEquals("Output order precedence problem", expectedOut, name);
50     }
51 
52 	/**
53 	 * @tests javax.security.auth.x500.X500Principal#getName(java.lang.String)
54 	 */
test_getNameLjava_lang_String()55 	public void test_getNameLjava_lang_String() {
56 		X500Principal principal = new X500Principal(
57 				"CN=Dumbledore, OU=Administration, O=Hogwarts School, C=GB");
58 		String canonical = principal.getName(X500Principal.CANONICAL);
59 		String expected = "cn=dumbledore,ou=administration,o=hogwarts school,c=gb";
60 		assertEquals("CANONICAL output differs from expected result", expected,
61 				canonical);
62 	}
63 
64     /**
65      * @tests javax.security.auth.x500.X500Principal#getName(java.lang.String, java.util.Map)
66      */
test_getNameLjava_lang_String_java_util_Map()67     public void test_getNameLjava_lang_String_java_util_Map() {
68         Map<String, String> keyword = new HashMap<String, String>();
69         keyword.put("CN", "2.19");
70         keyword.put("OU", "1.2.5.19");
71         keyword.put("O", "1.2.5");
72         X500Principal X500p = new X500Principal("CN=Duke, OU=JavaSoft, O=Sun Microsystems, C=US ,CN=DD",keyword);
73         keyword = new HashMap<String, String>();
74         keyword.put("2.19", "mystring");
75         String rfc1779Name = X500p.getName("RFC1779",keyword);
76         String rfc2253Name = X500p.getName("RFC2253",keyword);
77         String expected1779Out = "mystring=Duke, OID.1.2.5.19=JavaSoft, OID.1.2.5=Sun Microsystems, C=US, mystring=DD";
78         String expected2253Out = "mystring=Duke,1.2.5.19=#13084a617661536f6674,1.2.5=#131053756e204d6963726f73797374656d73,C=US,mystring=DD";
79         assertEquals("Output order precedence problem", expected1779Out, rfc1779Name);
80         assertEquals("Output order precedence problem", expected2253Out, rfc2253Name);
81         try{
82             X500p.getName("CANONICAL",keyword);
83             fail("Should throw IllegalArgumentException exception here");
84         }
85         catch(IllegalArgumentException e){
86             //expected IllegalArgumentException here
87         }
88     }
89 }