1 /*
2  * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * This code is free software; you can redistribute it and/or modify it
6  * under the terms of the GNU General Public License version 2 only, as
7  * published by the Free Software Foundation.
8  *
9  * This code is distributed in the hope that it will be useful, but WITHOUT
10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
12  * version 2 for more details (a copy is included in the LICENSE file that
13  * accompanied this code).
14  *
15  * You should have received a copy of the GNU General Public License version
16  * 2 along with this work; if not, write to the Free Software Foundation,
17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18  *
19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20  * or visit www.oracle.com if you need additional information or have any
21  * questions.
22  */
23 
24 /*
25  * @test
26  * @bug     6310858
27  * @summary Tests for toArray
28  * @author  Martin Buchholz
29  */
30 package test.java.util.EnumMap;
31 
32 import java.util.*;
33 
34 import org.testng.Assert;
35 import org.testng.annotations.Test;
36 
37 public class ToArray {
38     enum Country { FRENCH, POLISH }
39 
40     @Test
testToArray()41     public void testToArray() throws Throwable {
42         Map<Country, String> m = new EnumMap<Country, String>(Country.class);
43         m.put(Country.FRENCH, "connection");
44         m.put(Country.POLISH, "sausage");
45 
46         Object[] z = m.entrySet().toArray();
47         Assert.assertEquals(z.getClass(), Object[].class);
48         Assert.assertEquals(z.length, 2);
49 
50         Map.Entry[] x1 = new Map.Entry[3];
51         x1[2] = m.entrySet().iterator().next();
52         Map.Entry[] x2 = m.entrySet().toArray(x1);
53         Assert.assertEquals(x1, x2);
54         Assert.assertEquals(x2[0].getKey(), Country.FRENCH);
55         Assert.assertEquals(x2[1].getKey(), Country.POLISH);
56         Assert.assertEquals(x2[2], null);
57 
58         Map.Entry[] y1 = new Map.Entry[1];
59         Map.Entry[] y2 = m.entrySet().toArray(y1);
60         Assert.assertTrue(y1 != y2);
61         Assert.assertEquals(y2.length, 2);
62         Assert.assertEquals(y2[0].getKey(), Country.FRENCH);
63         Assert.assertEquals(y2[1].getKey(), Country.POLISH);
64     }
65 }