Home | History | Annotate | Download | only in ssl
      1 /*
      2  * Copyright (C) 2007 The Android Open Source Project
      3  *
      4  * Licensed under the Apache License, Version 2.0 (the "License");
      5  * you may not use this file except in compliance with the License.
      6  * You may obtain a copy of the License at
      7  *
      8  *     http://www.apache.org/licenses/LICENSE-2.0
      9  *
     10  * Unless required by applicable law or agreed to in writing, software
     11  * distributed under the License is distributed on an "AS IS" BASIS,
     12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13  * See the License for the specific language governing permissions and
     14  * limitations under the License.
     15  */
     16 package org.apache.harmony.tests.javax.net.ssl;
     17 
     18 import javax.net.ssl.KeyManagerFactorySpi;
     19 import javax.net.ssl.KeyStoreBuilderParameters;
     20 import java.security.KeyStore;
     21 import java.util.ArrayList;
     22 import java.util.List;
     23 
     24 import junit.framework.TestCase;
     25 
     26 public class KeyStoreBuilderParametersTest extends TestCase {
     27 
     28     /**
     29      * javax.net.ssl.KeyStoreBuilderParameters#KeyStoreBuilderParameters(KeyStore.Builder builder)
     30      */
     31     public void test_Constructor01() {
     32         // Null parameter
     33         try {
     34             new KeyStoreBuilderParameters((KeyStore.Builder) null);
     35             fail();
     36         } catch (NullPointerException expected) {
     37         }
     38 
     39         // Not null parameter
     40         KeyStore.ProtectionParameter pp = new ProtectionParameterImpl();
     41         KeyStore.Builder bld = KeyStore.Builder.newInstance("testType", null, pp);
     42         assertNotNull("Null object KeyStore.Builder", bld);
     43         KeyStoreBuilderParameters ksp = new KeyStoreBuilderParameters(bld);
     44         assertNotNull(ksp.getParameters());
     45     }
     46 
     47     /**
     48      * javax.net.ssl.KeyStoreBuilderParameters#KeyStoreBuilderParameters(List parameters)
     49      */
     50     public void test_Constructor02() {
     51 
     52         // Null parameter
     53         try {
     54             KeyStoreBuilderParameters ksp = new KeyStoreBuilderParameters((List) null);
     55             fail();
     56         } catch (NullPointerException expected) {
     57         }
     58 
     59         // Empty parameter
     60         List lsEmpty = new ArrayList<String>();
     61         try {
     62             KeyStoreBuilderParameters ksp = new KeyStoreBuilderParameters(lsEmpty);
     63             fail();
     64         } catch (IllegalArgumentException expected) {
     65         }
     66 
     67         // Not null parameter
     68         List lsFiled = new ArrayList<String>();
     69         lsFiled.add("Parameter1");
     70         lsFiled.add("Parameter2");
     71         new KeyStoreBuilderParameters(lsFiled);
     72     }
     73 
     74     /**
     75      * javax.net.ssl.KeyStoreBuilderParameters#getParameters()
     76      */
     77     public void test_getParameters() {
     78         String[] param = {"Parameter1", "Parameter2", "Parameter3"};
     79         List ls = new ArrayList<String>();
     80         for (int i = 0; i < param.length; i++) {
     81             ls.add(param[i]);
     82         }
     83         KeyStoreBuilderParameters ksp = new KeyStoreBuilderParameters(ls);
     84         List res_list = ksp.getParameters();
     85         try {
     86             res_list.add("test");
     87             fail();
     88         } catch (UnsupportedOperationException expected) {
     89         }
     90         Object[] res = res_list.toArray();
     91         assertEquals(res.length, param.length);
     92         for (int i = 0; i < res.length; i++) {
     93             assertEquals(param[i], res[i]);
     94         }
     95     }
     96 
     97     private static class ProtectionParameterImpl implements KeyStore.ProtectionParameter {
     98         private ProtectionParameterImpl() {}
     99     }
    100 }
    101 
    102