Package org.apache.harmony.auth.tests.javax.security.auth.callback

Source Code of org.apache.harmony.auth.tests.javax.security.auth.callback.ConfirmationCallbackTest

/*
*  Licensed to the Apache Software Foundation (ASF) under one or more
*  contributor license agreements.  See the NOTICE file distributed with
*  this work for additional information regarding copyright ownership.
*  The ASF licenses this file to You under the Apache License, Version 2.0
*  (the "License"); you may not use this file except in compliance with
*  the License.  You may obtain a copy of the License at
*
*     http://www.apache.org/licenses/LICENSE-2.0
*
*  Unless required by applicable law or agreed to in writing, software
*  distributed under the License is distributed on an "AS IS" BASIS,
*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
*  See the License for the specific language governing permissions and
*  limitations under the License.
*/

/**
* @author Maxim V. Makarov
* @version $Revision$
*/

package org.apache.harmony.auth.tests.javax.security.auth.callback;

import javax.security.auth.callback.ConfirmationCallback;

import junit.framework.TestCase;

/**
* Tests ConfirmationCallback class
*/

public class ConfirmationCallbackTest extends TestCase {

    ConfirmationCallback cc;
     int mt[] = { ConfirmationCallback.INFORMATION,
                        ConfirmationCallback.WARNING,
                        ConfirmationCallback.ERROR
                        };
     int ot[] = { ConfirmationCallback.YES_NO_OPTION,
                        ConfirmationCallback.YES_NO_CANCEL_OPTION ,
                        ConfirmationCallback.OK_CANCEL_OPTION
                        };
     int dopt[] = { ConfirmationCallback.YES,
                        ConfirmationCallback.NO,
                        ConfirmationCallback.CANCEL,
                        ConfirmationCallback.OK
                        };

    /**
     *  Ctor test 
     */
    public final void testConfirmationCallback_01() throws IllegalArgumentException {
        try {
            for (int i = 0; i < mt.length; i++) {
                cc = new ConfirmationCallback(mt[i], ot[1], dopt[1]);
            }
        } catch (IllegalArgumentException e){}
    }
   
    /**
     * Expected IAE, if messageType is not either INFORMATION, WARNING,ERROR;
     * if optionType is not either YES_NO_OPTION, YES_NO_CANCEL_OPTION,OK_CANCEL_OPTION;
     * if defaultOption does not lie within the array boundaries of options.
     */
    public final void testConfirmationCallback_02() throws IllegalArgumentException{
        try {
            cc = new ConfirmationCallback(3, ot[1], dopt[1]);
            fail("Message type should be either INFORMATION, WARNING or ERROR");
        }catch (IllegalArgumentException e){}
        try {
            cc = new ConfirmationCallback(mt[1], 3, dopt[1]);
            fail("Option type should be either YES_NO_OPTION, YES_NO_CANCEL_OPTION or OK_CANCEL_OPTION");
        } catch (IllegalArgumentException e){}
        try {
            cc = new ConfirmationCallback(mt[1], ot[1], 4);
            fail("Default option type should be either YES, NO, CANCEL or OK");
        } catch (IllegalArgumentException e){}
    }
   

    /**
     * Expected IAE, if optionType is YES_NO_OPTION and defaultOption is not YES/NO,
     * else ok.    
     */
   
    public final void testConfirmationCallback_03() throws IllegalArgumentException {
        try {
            cc = new ConfirmationCallback(ConfirmationCallback.INFORMATION, ot[0], dopt[0]);
        } catch(IllegalArgumentException e){}
        try {
            cc = new ConfirmationCallback(ConfirmationCallback.INFORMATION, ot[0], dopt[1]);
        } catch(IllegalArgumentException e){}
        try {
            cc = new ConfirmationCallback(ConfirmationCallback.INFORMATION, ot[0], dopt[2]);
            fail("1. If option type is YES_NO_OPTION then default option should be YES/NO");
        } catch(IllegalArgumentException e){}
        try {
            cc = new ConfirmationCallback(ConfirmationCallback.INFORMATION, ot[0], dopt[3]);
            fail("2. If option type is YES_NO_OPTION then default option should be YES/NO ");
        } catch(IllegalArgumentException e){}
       
}

   
    /**
     * Expected IAE, if optionType is YES_NO_CANCEL_OPTION and defaultOption is not YES/NO/CANCEL,
     * else ok.    
     */
    public final void testConfirmationCallback_04() throws IllegalArgumentException {
        try {
            cc = new ConfirmationCallback(ConfirmationCallback.INFORMATION, ot[1], dopt[0]);
        } catch(IllegalArgumentException e){}
        try {
            cc = new ConfirmationCallback(ConfirmationCallback.INFORMATION, ot[1], dopt[1]);
        } catch(IllegalArgumentException e){}
        try {
            cc = new ConfirmationCallback(ConfirmationCallback.INFORMATION, ot[1], dopt[2]);
        } catch(IllegalArgumentException e){}
        try {
            cc = new ConfirmationCallback(ConfirmationCallback.INFORMATION, ot[1], dopt[3]);
            fail("1. If option type is YES_NO_CANCEL_OPTION then default option should be YES/NO/CANCEL");
        } catch(IllegalArgumentException e){}

    }

    /**
     * Expected IAE, if optionType is OK_CANCEL_OPTION and defaultOption is not CANCEL/OK
     * else ok.    
     */
    public final void testConfirmationCallback_05() throws IllegalArgumentException {
        try {
            cc = new ConfirmationCallback(ConfirmationCallback.INFORMATION, ot[2], dopt[0]);
            fail("1. If option type is OK_CANCEL_OPTION then default option should be CANCEL/OK");
        } catch(IllegalArgumentException e){}
        try {
            cc = new ConfirmationCallback(ConfirmationCallback.INFORMATION, ot[2], dopt[1]);
            fail("2. If option type is OK_CANCEL_OPTION then default option should be CANCEL/OK");
        } catch(IllegalArgumentException e){}
        try {
            cc = new ConfirmationCallback(ConfirmationCallback.INFORMATION, ot[2], dopt[2]);
        } catch(IllegalArgumentException e){}
        try {
            cc = new ConfirmationCallback(ConfirmationCallback.INFORMATION, ot[2], dopt[3]);
        } catch(IllegalArgumentException e){}
    }

    /**
     * Expected IAE, if optionType is null or an empty and
     * defaultOption type does not lie within the array boundaries of options,
     * else ok.    
     */
   
    public final void testConfirmationCallback_06() {
        String[] opt = {"CONTINUE", "ABORT"};
        String[] opt1 = {"START", ""};
        String[] opt2 = {"START", null};
        try {
            cc = new ConfirmationCallback(ConfirmationCallback.INFORMATION, opt, 1);
        } catch(IllegalArgumentException e){}
        try {
            cc = new ConfirmationCallback(ConfirmationCallback.INFORMATION, opt1, 1);
           fail("1. Option type should not be null and empty ");
        } catch(IllegalArgumentException e){}
        try {
            cc = new ConfirmationCallback(ConfirmationCallback.INFORMATION, opt2, 1);
          fail("2. Option type should not be null and empty ");
      } catch(IllegalArgumentException e){}
      try {
          cc = new ConfirmationCallback(ConfirmationCallback.INFORMATION, opt, 3);
          fail("Default Option does not lie within the array boundaries of options ");
        } catch(IllegalArgumentException e){
        }
    }
   
    /**
     * Expected IAE, if prompt is null or an empty, else ok.
     */
     public final void testConfirmationCallback_07() {
        try {
            cc = new ConfirmationCallback("prompt", ConfirmationCallback.INFORMATION, ot[0], dopt[0]);
        } catch(IllegalArgumentException e){}
        try {
            cc = new ConfirmationCallback("", ConfirmationCallback.INFORMATION, ot[0], dopt[0]);
            fail("2. Prompt should not be null and empty ");
        } catch(IllegalArgumentException e){}
        try {
            cc = new ConfirmationCallback(null, ConfirmationCallback.INFORMATION, ot[0], dopt[0]);
            fail("2. Prompt should not be null and empty ");
        } catch(IllegalArgumentException e){}
    }

     /**
      * Expected IAE, if optionType and prompt is null or an empty, else ok.
      */
     public final void testConfirmationCallback_08() {
        String[] opt = {"CONTINUE", "ABORT"};
        String[] opt1 = {"START", ""};
        String[] opt2 = {"START", null};
        try {
            cc = new ConfirmationCallback("prompt", ConfirmationCallback.INFORMATION, opt, 1);
        } catch(IllegalArgumentException e){}
        try {
            cc = new ConfirmationCallback("prompt", ConfirmationCallback.INFORMATION, opt1, 1);
           fail("1. Option type should not be null and empty ");
        } catch(IllegalArgumentException e){}
        try {
            cc = new ConfirmationCallback("prompt", ConfirmationCallback.INFORMATION, opt2, 1);
          fail("2. Option type should not be null and empty ");
        } catch(IllegalArgumentException e){}
        try {
            cc = new ConfirmationCallback("", ConfirmationCallback.INFORMATION, opt, 1);
            fail("3. Prompt should not be null and empty ");
        } catch(IllegalArgumentException e){}
        try {
            cc = new ConfirmationCallback(null, ConfirmationCallback.INFORMATION, opt, 1);
            fail("4. Prompt should not be null and empty ");
        } catch(IllegalArgumentException e){
        }

    }

    /**
     * test of methods getOptionType(), getDefaultOption(), getMessageType()
     * getOptions(), set/getSelectedIndex
     */
    public final void testConfirmationCallback_09() throws IllegalArgumentException {
        String[] opt = {"CONTINUE", "ABORT"};
        String[] s;

            cc = new ConfirmationCallback("prompt", mt[0], opt, 1);
            assertEquals(1, cc.getDefaultOption());
            assertEquals(ConfirmationCallback.INFORMATION, cc.getMessageType());
            assertEquals(opt,cc.getOptions());
            s = cc.getOptions();
            for (int i = 0; i < opt.length; i++){
                assertEquals(opt[i], s[i]);
            }
            assertEquals("prompt", cc.getPrompt());
            assertEquals(-1, cc.getOptionType());
            assertEquals(ConfirmationCallback.UNSPECIFIED_OPTION, cc.getOptionType());
            assertNotNull(cc.getOptions());
            cc.setSelectedIndex(1);
            assertEquals(1, cc.getSelectedIndex());
    }
   
    /**
     * test of methods getOptions(), set/getSelectedIndex when options is null
     */
    public final void testConfirmationCallback_10() throws IllegalArgumentException {
       
            cc = new ConfirmationCallback("prompt", mt[0], ot[0], dopt[0]);
            assertNull(cc.getOptions());
            cc.setSelectedIndex(1);
            assertEquals(1, cc.getSelectedIndex());
    }
   
    /**
     * if optionType was specified in ctor, then selection represented as YES, NO, OK or CANCEL
     * i.e. defaultOption, thus expected IAE if selection does not lie within the array
     * boundaries of options.
     */
    public final void testSetSelection() throws IllegalArgumentException {
        cc = new ConfirmationCallback("prompt", mt[0], ot[0], dopt[0]);
        try {
           cc.setSelectedIndex(3);
           assertEquals(3, cc.getSelectedIndex());
           fail("There is not enough an information about setSelection in java doc");
        }catch (IllegalArgumentException e) {
        } catch (ArrayIndexOutOfBoundsException e){}
       
    }

    /*
     * Regression test for bug in setSelectedIndex
     */
    public final void testSetSelectedIndex() throws Exception {
        cc = new ConfirmationCallback("prompt", mt[0], ot[0], dopt[0]);
        cc.setSelectedIndex(ConfirmationCallback.YES);
    }
}
TOP

Related Classes of org.apache.harmony.auth.tests.javax.security.auth.callback.ConfirmationCallbackTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.