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 Hughespackage org.apache.harmony.xnet.tests.javax.net.ssl; 19561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 20561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport javax.net.ssl.SSLEngineResult; 21561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 22561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport junit.framework.TestCase; 23561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 24561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/** 25561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Tests for SSLEngineResult class 26561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 27561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespublic class SSLEngineResultTest extends TestCase { 28561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 29561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 30561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Test for <code>SSLEngineResult(SSLEngineResult.Status status, 318d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * SSLEngineResult.HandshakeStatus handshakeStatus, 328d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * int bytesConsumed, 338d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * int bytesProduced) </code> constructor and 34561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * <code>getHandshakeStatus()</code> 35561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * <code>getStatus()</code> 36561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * <code>bytesConsumed()</code> 37561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * <code>bytesProduced()</code> 38561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * <code>toString()</code> 39561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * methods 408d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * Assertions: 41561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * constructor throws IllegalArgumentException when bytesConsumed 42561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * or bytesProduced is negative or when status or handshakeStatus 438d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * is null 44561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 45561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testSSLEngineResultConstructor() { 468d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 47561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes int[] neg = { -1, -10, -1000, Integer.MIN_VALUE, 48561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes (Integer.MIN_VALUE + 1) }; 49561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes int[] pos = { 0, 1, 1000, Integer.MAX_VALUE, (Integer.MAX_VALUE - 1) }; 50561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 51561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new SSLEngineResult(null, SSLEngineResult.HandshakeStatus.FINISHED, 52561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1, 1); 53561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("IllegalArgumentException must be thrown"); 54561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalArgumentException e) { 55561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 56561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 57561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new SSLEngineResult(SSLEngineResult.Status.BUFFER_OVERFLOW, null, 58561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1, 1); 59561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("IllegalArgumentException must be thrown"); 60561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalArgumentException e) { 61561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 62561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < neg.length; i++) { 63561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 64561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new SSLEngineResult(SSLEngineResult.Status.BUFFER_OVERFLOW, 65561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SSLEngineResult.HandshakeStatus.FINISHED, neg[i], 1); 66561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("IllegalArgumentException must be thrown"); 67561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalArgumentException e) { 68561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 69561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 70561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < neg.length; i++) { 71561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 72561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new SSLEngineResult(SSLEngineResult.Status.BUFFER_OVERFLOW, 73561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SSLEngineResult.HandshakeStatus.FINISHED, 1, neg[i]); 74561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("IllegalArgumentException must be thrown"); 75561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalArgumentException e) { 76561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 77561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 788d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath SSLEngineResult.Status[] enS = SSLEngineResult.Status.values(); 798d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath SSLEngineResult.HandshakeStatus[] enHS = SSLEngineResult.HandshakeStatus 80561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .values(); 81561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SSLEngineResult res; 82561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String toS; 83561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < enS.length; i++) { 84561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int j = 0; j < enHS.length; j++) { 85561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int n = 0; n < pos.length; n++) { 86561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int l = 0; l < pos.length; l++) { 87561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes res = new SSLEngineResult(enS[i], enHS[j], pos[n], 88561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes pos[l]); 89561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 90561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Incorrect bytesProduced", res 91561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .bytesProduced(), pos[l]); 92561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Incorrect bytesConsumed", res 93561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .bytesConsumed(), pos[n]); 94561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Incorrect HandshakeStatus", res 95561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getHandshakeStatus(), enHS[j]); 96561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Incorrect Status", res.getStatus(), 97561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes enS[i]); 98561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes toS = res.toString(); 99561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNotNull("Result of toSring() method is null", toS); 100561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 101561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 102561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 103561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1048d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 105561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1068d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 107561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 108561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Test for <code>SSLEngineResult.Status.values()</code> method 109561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 110561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 111561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testStatus01() { 1128d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath SSLEngineResult.Status[] enS = SSLEngineResult.Status.values(); 113561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Incorrect array of Status objects", enS.length > 0); 114561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("OK object does not define", findEl(enS, 115561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SSLEngineResult.Status.OK)); 116561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("CLOSED object does not define", findEl(enS, 117561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SSLEngineResult.Status.CLOSED)); 118561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("BUFFER_OVERFLOW object does not define", findEl(enS, 119561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SSLEngineResult.Status.BUFFER_OVERFLOW)); 120561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("BUFFER_UNDERFLOW object does not define", findEl(enS, 121561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SSLEngineResult.Status.BUFFER_UNDERFLOW)); 122561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1238d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 124561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 125561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Test for <code>SSLEngineResult.Status.valueOf(String name)</code> method 1268d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * Assertion: 127561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * throws IllegalArgumentException when there is no constan with specified 1288d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * name 129561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 130561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 131561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testStatus02() { 1328d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath String[] invalid = { "", "OK1", "BUFFER_overflow", "BUFFER_UND", 133561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "CLOSED_CLOSED", "Bad string for verification valueOf method" 134561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes }; 135561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(SSLEngineResult.Status.valueOf("BUFFER_OVERFLOW"), 136561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SSLEngineResult.Status.BUFFER_OVERFLOW); 137561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(SSLEngineResult.Status.valueOf("BUFFER_UNDERFLOW"), 138561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SSLEngineResult.Status.BUFFER_UNDERFLOW); 139561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(SSLEngineResult.Status.valueOf("CLOSED"), 140561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SSLEngineResult.Status.CLOSED); 141561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(SSLEngineResult.Status.valueOf("OK"), 142561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SSLEngineResult.Status.OK); 143561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < invalid.length; i++) { 144561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 145561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SSLEngineResult.Status.valueOf(invalid[i]); 146561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("IllegalArgumentException must be thrown for name: " + invalid[i]); 1478d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } catch (IllegalArgumentException e) { 148561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1498d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 150561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1518d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 152561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 153561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Test for <code>SSLEngineResult.HandshakeStatus.values()</code> method 154561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 155561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 156561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testHandshakeStatus01() { 1578d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath SSLEngineResult.HandshakeStatus[] enHS = SSLEngineResult.HandshakeStatus 158561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .values(); 159561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Incorrect array of HandshakeStatus objects", 160561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes enHS.length > 0); 161561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("FINISHED object does not define", findEl(enHS, 162561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SSLEngineResult.HandshakeStatus.FINISHED)); 163561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("NEED_UNWRAP object does not define", findEl(enHS, 164561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SSLEngineResult.HandshakeStatus.NEED_UNWRAP)); 165561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("NEED_WRAP object does not define", findEl(enHS, 166561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SSLEngineResult.HandshakeStatus.NEED_WRAP)); 167561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("NEED_TASK object does not define", findEl(enHS, 168561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SSLEngineResult.HandshakeStatus.NEED_TASK)); 169561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("NOT_HANDSHAKING object does not define", findEl(enHS, 170561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SSLEngineResult.HandshakeStatus.NOT_HANDSHAKING)); 171561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1728d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 173561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 174561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Test for <code>SSLEngineResult.HandshakeStatus.valueOf(String name)</code> method 1758d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * Assertion: 176561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * throws IllegalArgumentException when there is no constan with specified 1778d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * name 178561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 179561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 180561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testHandshakeStatus02() { 1818d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath String[] invalid = { "", "FINISHED1", "NEED_task", "NEED_UN", 182561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "NEED_WRAP_WRAP", "not_HANDSHAKING", "Bad string for verification valueOf method" 183561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes }; 184561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(SSLEngineResult.HandshakeStatus.valueOf("NOT_HANDSHAKING"), 185561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SSLEngineResult.HandshakeStatus.NOT_HANDSHAKING); 186561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(SSLEngineResult.HandshakeStatus.valueOf("NEED_WRAP"), 187561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SSLEngineResult.HandshakeStatus.NEED_WRAP); 188561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(SSLEngineResult.HandshakeStatus.valueOf("NEED_UNWRAP"), 189561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SSLEngineResult.HandshakeStatus.NEED_UNWRAP); 190561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(SSLEngineResult.HandshakeStatus.valueOf("FINISHED"), 191561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SSLEngineResult.HandshakeStatus.FINISHED); 192561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(SSLEngineResult.HandshakeStatus.valueOf("NEED_TASK"), 193561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SSLEngineResult.HandshakeStatus.NEED_TASK); 194561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < invalid.length; i++) { 195561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 196561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes SSLEngineResult.HandshakeStatus.valueOf(invalid[i]); 197561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("IllegalArgumentException must be thrown for name: " + invalid[i]); 1988d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } catch (IllegalArgumentException e) { 199561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 200561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 2018d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 2028d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 203561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private boolean findEl(Object[] arr, Object el) { 204561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes boolean ok = false; 205561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < arr.length; i++) { 206561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (arr[i].equals(el)) { 207561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ok = true; 208561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes break; 209561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 210561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 211561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return ok; 212561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 213561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 214561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes} 215