1561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/*
2561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  Licensed to the Apache Software Foundation (ASF) under one or more
3561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  contributor license agreements.  See the NOTICE file distributed with
4561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  this work for additional information regarding copyright ownership.
5561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  The ASF licenses this file to You under the Apache License, Version 2.0
6561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  (the "License"); you may not use this file except in compliance with
7561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  the License.  You may obtain a copy of the License at
8561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *
9561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *     http://www.apache.org/licenses/LICENSE-2.0
10561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *
11561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  Unless required by applicable law or agreed to in writing, software
12561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  distributed under the License is distributed on an "AS IS" BASIS,
13561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  See the License for the specific language governing permissions and
15561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  limitations under the License.
16561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */
17561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
18561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/**
19561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes* @author Vera Y. Petrashkova
20561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes*/
21561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
22561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespackage org.apache.harmony.auth.tests.javax.security.sasl;
23561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
24561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport javax.security.sasl.RealmCallback;
25561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
26561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport junit.framework.TestCase;
27561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
28561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/**
29561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Tests for constructors and methods of RealmCallback class
30561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *
31561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */
32561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
33561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespublic class RealmCallbackTest extends TestCase {
34561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    private static final String[] prompts = {
35561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            "Prompts",
36561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            "Another prompt",
37561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            "Long String for prompt Long String for prompt Long String for prompt Long String for prompt Long String for prompt Long String for prompt Long String for prompt Long String for prompt Long String for prompt Long String for prompt Long String for prompt Long String for prompt Long String for prompt Long String for prompt Long String for prompt Long String for prompt Long String for prompt Long String for prompt Long String for prompt Long String for prompt Long String for prompt" };
38561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
39561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
40561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * Test for
41561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * <code>RealmCallback(String prompt, String defaultRealmInfo)</code>
42561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * constructor
43561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * Assertion: throws IllegalArgumentException if parameters are
44561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * null or empty String
45561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
46561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test01() {
47561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
48561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            new RealmCallback(null, "def");
49561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("IllegalArgumentException should be thrown for null prompt");
50561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {
51561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
52561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
53561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            new RealmCallback("", "def");
54561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("IllegalArgumentException should be thrown for empty prompt");
55561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {
56561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
57561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
58561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            new RealmCallback("prompt", null);
59561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("IllegalArgumentException should be thrown for null default info");
60561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {
61561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
62561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
63561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            new RealmCallback("prompt", "");
64561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("IllegalArgumentException should be thrown for empty default info");
65561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {
66561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
67561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
68561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
69561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
70561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * Test for
71561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * <code>RealmCallback(String prompt, String defaultRealmInfo)</code>
72561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * constructor Assertion: creates instance of RealmCallback object
73561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
74561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test02() {
75561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String[] defInfo = {
76561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                "DefaultRealmInfo",
77561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                "Another default realm info",
78561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                "Long string for default realm info Long string for default realm info Long string for default realm info Long string for default realm info Long string for default realm info Long string for default realm info Long string for default realm info Long string for default realm info Long string for default realm info Long string for default realm info Long string for default realm info Long string for default realm info Long string for default realm info Long string for default realm info Long string for default realm info Long string for default realm info " };
79561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        RealmCallback rCB;
80561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        StringBuffer sb = new StringBuffer("");
81561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String ss;
82561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int i = 0; i < prompts.length; i++) {
83561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            for (int j = 0; j < prompts.length; j++) {
84561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                rCB = new RealmCallback(prompts[i], defInfo[j]);
85561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                assertEquals("Incorrect default info", rCB.getDefaultText(),
86561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                        defInfo[j]);
87561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                assertEquals("Incorrect prompt", rCB.getPrompt(), prompts[i]);
88561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                assertNull("Not null text", rCB.getText());
89561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                sb.replace(0, sb.length(), prompts[i]);
90561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                sb.append(defInfo[j]);
91561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                ss = sb.toString();
92561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                rCB.setText(ss);
93561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                assertEquals("Incorrect text", rCB.getText(), ss);
94561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                rCB.setText(null);
95561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                assertNull("Not null text", rCB.getText());
96561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            }
97561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
98561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
99561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
100561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
101561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * Test for <code>RealmCallback(String prompt</code> constructor
102561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * Assertion: throws IllegalArgumentException if parameter is null or empty
103561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * string
104561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
105561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test03() {
106561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
107561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            new RealmCallback(null);
108561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("IllegalArgumentException should be thrown for null prompt");
109561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {
110561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
111561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
112561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            new RealmCallback("");
113561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("IllegalArgumentException should be thrown for empty prompt");
114561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {
115561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
116561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
117561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
118561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
119561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * Test for <code>RealmCallback(String prompt)</code> constructor
120561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * Assertion: creates instance of RealmCallback object
121561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
122561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test04() {
123561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        RealmCallback rCB;
124561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        StringBuffer sb = new StringBuffer("");
125561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String ss;
126561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int i = 0; i < prompts.length; i++) {
127561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            rCB = new RealmCallback(prompts[i]);
128561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertNull("Incorrect default info", rCB.getDefaultText());
129561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals("Incorrect prompt", rCB.getPrompt(), prompts[i]);
130561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertNull("Not null text", rCB.getText());
131561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            sb = new StringBuffer(prompts[i]);
132561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            sb.replace(0, sb.length(), prompts[i]);
133561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            ss = sb.toString();
134561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            rCB.setText(ss);
135561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals("Incorrect text", rCB.getText(), ss);
136561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            rCB.setText(null);
137561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertNull("Not null text", rCB.getText());
138561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
139561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
140561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes}
141