1526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt/* 2526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt * Licensed to the Apache Software Foundation (ASF) under one or more 3526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt * contributor license agreements. See the NOTICE file distributed with 4526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt * this work for additional information regarding copyright ownership. 5526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt * The ASF licenses this file to You under the Apache License, Version 2.0 6526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt * (the "License"); you may not use this file except in compliance with 7526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt * the License. You may obtain a copy of the License at 8526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt * 9526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt * http://www.apache.org/licenses/LICENSE-2.0 10526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt * 11526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt * Unless required by applicable law or agreed to in writing, software 12526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt * distributed under the License is distributed on an "AS IS" BASIS, 13526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt * See the License for the specific language governing permissions and 15526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt * limitations under the License. 16526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt */ 17526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt 18526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt/** 19526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt* @author Vera Y. Petrashkova 20526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt*/ 21526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt 22526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidtpackage org.apache.harmony.auth.tests.javax.security.sasl.serialization; 23526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt 24526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidtimport java.io.Serializable; 25526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt 26526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidtimport javax.security.sasl.RealmChoiceCallback; 27526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt 28526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidtimport org.apache.harmony.testframework.serialization.SerializationTest; 29526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt 30526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt/** 31526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt * Test for RealmChoiceCallback serialization 32526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt * 33526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt */ 34526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt 35526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidtpublic class RealmChoiceCallbackTest extends SerializationTest implements 36526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt SerializationTest.SerializableAssert { 37526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt 38526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt public static String[] msgs = { 39526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt "New String", 40526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt "Another string", 41526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt "Long string. Long string. Long string. Long string. Long string. Long string. Long string. Long string. Long string. Long string. Long string. Long string. Long string. Long string. Long string. Long string. Long string.", 42526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt "t"}; 43526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt 44526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt public static final int [] idx = {2, 3}; 45526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt 46526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt @Override 47526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt protected Object[] getData() { 48526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt Object [] oo = { 49526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt new RealmChoiceCallback(msgs[0], msgs, 0, true), 50526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt new RealmChoiceCallback(msgs[1], msgs, 1, true), 51526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt new RealmChoiceCallback(msgs[1], msgs, 0, false), 52526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt new RealmChoiceCallback(msgs[2], msgs, 0, false) 53526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt 54526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt }; 55526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt for (Object element : oo) { 56526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt RealmChoiceCallback rc = (RealmChoiceCallback)element; 57526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt if (rc.allowMultipleSelections()) { 58526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt rc.setSelectedIndexes(idx); 59526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt } else { 60526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt rc.setSelectedIndex(msgs.length - 1); 61526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt } 62526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt } 63526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt return oo; 64526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt } 65526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt 66526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt public void assertDeserialized(Serializable oref, Serializable otest) { 67526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt RealmChoiceCallback ref = (RealmChoiceCallback) oref; 68526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt RealmChoiceCallback test = (RealmChoiceCallback) otest; 69526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt 70526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt boolean all = ref.allowMultipleSelections(); 71526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt assertEquals(all, test.allowMultipleSelections()); 72526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt String prompt = ref.getPrompt(); 73526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt assertEquals(prompt, test.getPrompt()); 74526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt 75526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt String [] ch = ref.getChoices(); 76526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt String [] tCh = test.getChoices(); 77526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt assertEquals(ch.length, tCh.length); 78526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt for (int i = 0; i < ch.length; i++) { 79526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt assertEquals(ch[i], tCh[i]); 80526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt } 81526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt assertEquals(ref.getDefaultChoice(), test.getDefaultChoice()); 82526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt int [] in = ref.getSelectedIndexes(); 83526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt int [] tIn = test.getSelectedIndexes(); 84526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt// assertNull("in is not null", in); 85526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt// assertNull("tIn is not null", tIn); 86526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt 87526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt if (!all) { 88526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt assertEquals("Incorrect length in ", in.length, 1); 89526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt assertEquals("Incorrect length tIn ", tIn.length, 1); 90526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt assertEquals("Incorrect index", in[0], tIn[0]); 91526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt } else { 92526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt assertEquals("Incorrect length", in.length, tIn.length); 93526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt for (int i = 0; i < in.length; i++) { 94526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt assertEquals(in[i], tIn[i]); 95526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt } 96526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt } 97526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt } 98526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt}