1/*
2 * Copyright (c) 2004, 2007, 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 5063390
27 * @summary Tests the order of Properties
28 * @author Brent Christian
29 */
30
31import java.beans.PropertyDescriptor;
32
33public class Test5063390 {
34    private int alpha;
35    private int foxtrot;
36    private int zulu;
37
38    public int getZulu() {
39        return zulu;
40    }
41
42    public void setZulu(int zulu) {
43        this.zulu = zulu;
44    }
45
46    public int getAlpha() {
47        return alpha;
48    }
49
50    public void setAlpha(int alpha) {
51        this.alpha = alpha;
52    }
53
54    public int getFoxtrot() {
55        return foxtrot;
56    }
57
58    public void setFoxtrot(int foxtrot) {
59        this.foxtrot = foxtrot;
60    }
61
62    public static void main(String[] args) {
63        String[] names = {"alpha", "class", "foxtrot", "zulu"};
64
65        PropertyDescriptor[] pd = BeanUtils.getPropertyDescriptors(Test5063390.class);
66        if (pd.length != names.length)
67            throw new Error("unexpected count of properties: " + pd.length);
68
69        for (int i = 0; i < pd.length; i++) {
70            String name = pd[i].getName();
71            System.out.println("property: " + name);
72            if (!name.equals(names[i])) {
73                System.out.println("expected: " + names[i]);
74                throw new Error("unexpected order of properties");
75            }
76        }
77    }
78}
79