jdk/test/javax/management/openmbean/ArrayTypeTest.java
author iignatyev
Mon, 23 Dec 2013 18:39:47 +0000
changeset 22195 c39aa322d33a
parent 5506 202f599c92aa
child 30376 2ccf2cf7ea48
permissions -rw-r--r--
Merge
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
     1
/*
5506
202f599c92aa 6943119: Rebrand source copyright notices
ohair
parents: 2
diff changeset
     2
 * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
     3
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
90ce3da70b43 Initial load
duke
parents:
diff changeset
     4
 *
90ce3da70b43 Initial load
duke
parents:
diff changeset
     5
 * This code is free software; you can redistribute it and/or modify it
90ce3da70b43 Initial load
duke
parents:
diff changeset
     6
 * under the terms of the GNU General Public License version 2 only, as
90ce3da70b43 Initial load
duke
parents:
diff changeset
     7
 * published by the Free Software Foundation.
90ce3da70b43 Initial load
duke
parents:
diff changeset
     8
 *
90ce3da70b43 Initial load
duke
parents:
diff changeset
     9
 * This code is distributed in the hope that it will be useful, but WITHOUT
90ce3da70b43 Initial load
duke
parents:
diff changeset
    10
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
90ce3da70b43 Initial load
duke
parents:
diff changeset
    11
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
90ce3da70b43 Initial load
duke
parents:
diff changeset
    12
 * version 2 for more details (a copy is included in the LICENSE file that
90ce3da70b43 Initial load
duke
parents:
diff changeset
    13
 * accompanied this code).
90ce3da70b43 Initial load
duke
parents:
diff changeset
    14
 *
90ce3da70b43 Initial load
duke
parents:
diff changeset
    15
 * You should have received a copy of the GNU General Public License version
90ce3da70b43 Initial load
duke
parents:
diff changeset
    16
 * 2 along with this work; if not, write to the Free Software Foundation,
90ce3da70b43 Initial load
duke
parents:
diff changeset
    17
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
90ce3da70b43 Initial load
duke
parents:
diff changeset
    18
 *
5506
202f599c92aa 6943119: Rebrand source copyright notices
ohair
parents: 2
diff changeset
    19
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
202f599c92aa 6943119: Rebrand source copyright notices
ohair
parents: 2
diff changeset
    20
 * or visit www.oracle.com if you need additional information or have any
202f599c92aa 6943119: Rebrand source copyright notices
ohair
parents: 2
diff changeset
    21
 * questions.
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    22
 */
90ce3da70b43 Initial load
duke
parents:
diff changeset
    23
90ce3da70b43 Initial load
duke
parents:
diff changeset
    24
/*
90ce3da70b43 Initial load
duke
parents:
diff changeset
    25
 * @test
90ce3da70b43 Initial load
duke
parents:
diff changeset
    26
 * @bug 5045358
90ce3da70b43 Initial load
duke
parents:
diff changeset
    27
 * @summary Test that Open MBeans support arrays of primitive types.
90ce3da70b43 Initial load
duke
parents:
diff changeset
    28
 * @author Luis-Miguel Alventosa
90ce3da70b43 Initial load
duke
parents:
diff changeset
    29
 * @run clean ArrayTypeTest
90ce3da70b43 Initial load
duke
parents:
diff changeset
    30
 * @run build ArrayTypeTest
90ce3da70b43 Initial load
duke
parents:
diff changeset
    31
 * @run main ArrayTypeTest
90ce3da70b43 Initial load
duke
parents:
diff changeset
    32
 */
90ce3da70b43 Initial load
duke
parents:
diff changeset
    33
90ce3da70b43 Initial load
duke
parents:
diff changeset
    34
import java.io.FileInputStream;
90ce3da70b43 Initial load
duke
parents:
diff changeset
    35
import java.io.FileOutputStream;
90ce3da70b43 Initial load
duke
parents:
diff changeset
    36
import java.io.ObjectInputStream;
90ce3da70b43 Initial load
duke
parents:
diff changeset
    37
import java.io.ObjectOutputStream;
90ce3da70b43 Initial load
duke
parents:
diff changeset
    38
import javax.management.ObjectName;
90ce3da70b43 Initial load
duke
parents:
diff changeset
    39
import javax.management.openmbean.ArrayType;
90ce3da70b43 Initial load
duke
parents:
diff changeset
    40
import javax.management.openmbean.OpenDataException;
90ce3da70b43 Initial load
duke
parents:
diff changeset
    41
import javax.management.openmbean.SimpleType;
90ce3da70b43 Initial load
duke
parents:
diff changeset
    42
90ce3da70b43 Initial load
duke
parents:
diff changeset
    43
public class ArrayTypeTest {
90ce3da70b43 Initial load
duke
parents:
diff changeset
    44
90ce3da70b43 Initial load
duke
parents:
diff changeset
    45
    private static final String toStringResult[] = {
90ce3da70b43 Initial load
duke
parents:
diff changeset
    46
        "javax.management.openmbean.ArrayType(name=[[Ljava.lang.String;,dimension=2,elementType=javax.management.openmbean.SimpleType(name=java.lang.String),primitiveArray=false)",
90ce3da70b43 Initial load
duke
parents:
diff changeset
    47
        "javax.management.openmbean.ArrayType(name=[I,dimension=1,elementType=javax.management.openmbean.SimpleType(name=java.lang.Integer),primitiveArray=true)",
90ce3da70b43 Initial load
duke
parents:
diff changeset
    48
        "javax.management.openmbean.ArrayType(name=[Ljava.lang.Integer;,dimension=1,elementType=javax.management.openmbean.SimpleType(name=java.lang.Integer),primitiveArray=false)",
90ce3da70b43 Initial load
duke
parents:
diff changeset
    49
        "javax.management.openmbean.ArrayType(name=[[[[I,dimension=4,elementType=javax.management.openmbean.SimpleType(name=java.lang.Integer),primitiveArray=true)",
90ce3da70b43 Initial load
duke
parents:
diff changeset
    50
        "javax.management.openmbean.ArrayType(name=[[[[Ljava.lang.Integer;,dimension=4,elementType=javax.management.openmbean.SimpleType(name=java.lang.Integer),primitiveArray=false)",
90ce3da70b43 Initial load
duke
parents:
diff changeset
    51
        "javax.management.openmbean.ArrayType(name=[Ljava.lang.String;,dimension=1,elementType=javax.management.openmbean.SimpleType(name=java.lang.String),primitiveArray=false)",
90ce3da70b43 Initial load
duke
parents:
diff changeset
    52
        "OpenDataException",
90ce3da70b43 Initial load
duke
parents:
diff changeset
    53
        "javax.management.openmbean.ArrayType(name=[Ljava.lang.Integer;,dimension=1,elementType=javax.management.openmbean.SimpleType(name=java.lang.Integer),primitiveArray=false)",
90ce3da70b43 Initial load
duke
parents:
diff changeset
    54
        "javax.management.openmbean.ArrayType(name=[[Ljava.lang.Integer;,dimension=2,elementType=javax.management.openmbean.SimpleType(name=java.lang.Integer),primitiveArray=false)",
90ce3da70b43 Initial load
duke
parents:
diff changeset
    55
        "javax.management.openmbean.ArrayType(name=[[I,dimension=2,elementType=javax.management.openmbean.SimpleType(name=java.lang.Integer),primitiveArray=true)",
90ce3da70b43 Initial load
duke
parents:
diff changeset
    56
        "javax.management.openmbean.ArrayType(name=[[[I,dimension=3,elementType=javax.management.openmbean.SimpleType(name=java.lang.Integer),primitiveArray=true)",
90ce3da70b43 Initial load
duke
parents:
diff changeset
    57
        "javax.management.openmbean.ArrayType(name=[F,dimension=1,elementType=javax.management.openmbean.SimpleType(name=java.lang.Float),primitiveArray=true)",
90ce3da70b43 Initial load
duke
parents:
diff changeset
    58
        "javax.management.openmbean.ArrayType(name=[[F,dimension=2,elementType=javax.management.openmbean.SimpleType(name=java.lang.Float),primitiveArray=true)",
90ce3da70b43 Initial load
duke
parents:
diff changeset
    59
        "javax.management.openmbean.ArrayType(name=[Ljavax.management.ObjectName;,dimension=1,elementType=javax.management.openmbean.SimpleType(name=javax.management.ObjectName),primitiveArray=false)",
90ce3da70b43 Initial load
duke
parents:
diff changeset
    60
        "javax.management.openmbean.ArrayType(name=[[Ljavax.management.ObjectName;,dimension=2,elementType=javax.management.openmbean.SimpleType(name=javax.management.ObjectName),primitiveArray=false)",
90ce3da70b43 Initial load
duke
parents:
diff changeset
    61
        "javax.management.openmbean.ArrayType(name=[[[Ljava.lang.String;,dimension=3,elementType=javax.management.openmbean.SimpleType(name=java.lang.String),primitiveArray=false)",
90ce3da70b43 Initial load
duke
parents:
diff changeset
    62
        "javax.management.openmbean.ArrayType(name=[[[Ljava.lang.String;,dimension=3,elementType=javax.management.openmbean.SimpleType(name=java.lang.String),primitiveArray=false)",
90ce3da70b43 Initial load
duke
parents:
diff changeset
    63
        "javax.management.openmbean.ArrayType(name=[I,dimension=1,elementType=javax.management.openmbean.SimpleType(name=java.lang.Integer),primitiveArray=true)",
90ce3da70b43 Initial load
duke
parents:
diff changeset
    64
        "javax.management.openmbean.ArrayType(name=[[Z,dimension=2,elementType=javax.management.openmbean.SimpleType(name=java.lang.Boolean),primitiveArray=true)",
90ce3da70b43 Initial load
duke
parents:
diff changeset
    65
        "javax.management.openmbean.ArrayType(name=[Ljava.lang.Long;,dimension=1,elementType=javax.management.openmbean.SimpleType(name=java.lang.Long),primitiveArray=false)",
90ce3da70b43 Initial load
duke
parents:
diff changeset
    66
        "javax.management.openmbean.ArrayType(name=[Ljava.lang.Double;,dimension=1,elementType=javax.management.openmbean.SimpleType(name=java.lang.Double),primitiveArray=false)",
90ce3da70b43 Initial load
duke
parents:
diff changeset
    67
    };
90ce3da70b43 Initial load
duke
parents:
diff changeset
    68
90ce3da70b43 Initial load
duke
parents:
diff changeset
    69
    private static int checkResult(int i, ArrayType a) {
90ce3da70b43 Initial load
duke
parents:
diff changeset
    70
        if (a.toString().equals(toStringResult[i])) {
90ce3da70b43 Initial load
duke
parents:
diff changeset
    71
            System.out.println("Test passed!");
90ce3da70b43 Initial load
duke
parents:
diff changeset
    72
            return 0;
90ce3da70b43 Initial load
duke
parents:
diff changeset
    73
        } else {
90ce3da70b43 Initial load
duke
parents:
diff changeset
    74
            System.out.println("Test failed!");
90ce3da70b43 Initial load
duke
parents:
diff changeset
    75
            return 1;
90ce3da70b43 Initial load
duke
parents:
diff changeset
    76
        }
90ce3da70b43 Initial load
duke
parents:
diff changeset
    77
    }
90ce3da70b43 Initial load
duke
parents:
diff changeset
    78
90ce3da70b43 Initial load
duke
parents:
diff changeset
    79
    private static int checkGetters(ArrayType a,
90ce3da70b43 Initial load
duke
parents:
diff changeset
    80
                                    String className,
90ce3da70b43 Initial load
duke
parents:
diff changeset
    81
                                    String description,
90ce3da70b43 Initial load
duke
parents:
diff changeset
    82
                                    String typeName,
90ce3da70b43 Initial load
duke
parents:
diff changeset
    83
                                    boolean isArray,
90ce3da70b43 Initial load
duke
parents:
diff changeset
    84
                                    boolean isPrimitiveArray,
90ce3da70b43 Initial load
duke
parents:
diff changeset
    85
                                    int dimension) {
90ce3da70b43 Initial load
duke
parents:
diff changeset
    86
        int error = 0;
90ce3da70b43 Initial load
duke
parents:
diff changeset
    87
        if (a.getClassName().equals(className)) {
90ce3da70b43 Initial load
duke
parents:
diff changeset
    88
            System.out.println("\tArrayType.getClassName() OK!");
90ce3da70b43 Initial load
duke
parents:
diff changeset
    89
        } else {
90ce3da70b43 Initial load
duke
parents:
diff changeset
    90
            System.out.println("\tArrayType.getClassName() KO!");
90ce3da70b43 Initial load
duke
parents:
diff changeset
    91
            System.out.println("\t\t---> expecting " + className);
90ce3da70b43 Initial load
duke
parents:
diff changeset
    92
            error++;
90ce3da70b43 Initial load
duke
parents:
diff changeset
    93
        }
90ce3da70b43 Initial load
duke
parents:
diff changeset
    94
        if (a.getDescription().equals(description)) {
90ce3da70b43 Initial load
duke
parents:
diff changeset
    95
            System.out.println("\tArrayType.getDescription() OK!");
90ce3da70b43 Initial load
duke
parents:
diff changeset
    96
        } else {
90ce3da70b43 Initial load
duke
parents:
diff changeset
    97
            System.out.println("\tArrayType.getDescription() KO!");
90ce3da70b43 Initial load
duke
parents:
diff changeset
    98
            System.out.println("\t\t---> expecting " + description);
90ce3da70b43 Initial load
duke
parents:
diff changeset
    99
            error++;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   100
        }
90ce3da70b43 Initial load
duke
parents:
diff changeset
   101
        if (a.getTypeName().equals(typeName)) {
90ce3da70b43 Initial load
duke
parents:
diff changeset
   102
            System.out.println("\tArrayType.getTypeName() OK!");
90ce3da70b43 Initial load
duke
parents:
diff changeset
   103
        } else {
90ce3da70b43 Initial load
duke
parents:
diff changeset
   104
            System.out.println("\tArrayType.getTypeName() KO!");
90ce3da70b43 Initial load
duke
parents:
diff changeset
   105
            System.out.println("\t\t---> expecting " + typeName);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   106
            error++;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   107
        }
90ce3da70b43 Initial load
duke
parents:
diff changeset
   108
        if (a.isArray() == isArray) {
90ce3da70b43 Initial load
duke
parents:
diff changeset
   109
            System.out.println("\tArrayType.isArray() OK!");
90ce3da70b43 Initial load
duke
parents:
diff changeset
   110
        } else {
90ce3da70b43 Initial load
duke
parents:
diff changeset
   111
            System.out.println("\tArrayType.isArray() KO!");
90ce3da70b43 Initial load
duke
parents:
diff changeset
   112
            System.out.println("\t\t---> expecting " + isArray);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   113
            error++;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   114
        }
90ce3da70b43 Initial load
duke
parents:
diff changeset
   115
        if (a.isPrimitiveArray() == isPrimitiveArray) {
90ce3da70b43 Initial load
duke
parents:
diff changeset
   116
            System.out.println("\tArrayType.isPrimitiveArray() OK!");
90ce3da70b43 Initial load
duke
parents:
diff changeset
   117
        } else {
90ce3da70b43 Initial load
duke
parents:
diff changeset
   118
            System.out.println("\tArrayType.isPrimitiveArray() KO!");
90ce3da70b43 Initial load
duke
parents:
diff changeset
   119
            System.out.println("\t\t---> expecting " + isPrimitiveArray);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   120
            error++;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   121
        }
90ce3da70b43 Initial load
duke
parents:
diff changeset
   122
        if (a.getDimension() == dimension) {
90ce3da70b43 Initial load
duke
parents:
diff changeset
   123
            System.out.println("\tArrayType.getDimension() OK!");
90ce3da70b43 Initial load
duke
parents:
diff changeset
   124
        } else {
90ce3da70b43 Initial load
duke
parents:
diff changeset
   125
            System.out.println("\tArrayType.getDimension() KO!");
90ce3da70b43 Initial load
duke
parents:
diff changeset
   126
            System.out.println("\t\t---> expecting " + dimension);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   127
            error++;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   128
        }
90ce3da70b43 Initial load
duke
parents:
diff changeset
   129
90ce3da70b43 Initial load
duke
parents:
diff changeset
   130
        if (error > 0) {
90ce3da70b43 Initial load
duke
parents:
diff changeset
   131
            System.out.println("Test failed!");
90ce3da70b43 Initial load
duke
parents:
diff changeset
   132
            return 1;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   133
        } else {
90ce3da70b43 Initial load
duke
parents:
diff changeset
   134
            System.out.println("Test passed!");
90ce3da70b43 Initial load
duke
parents:
diff changeset
   135
            return 0;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   136
        }
90ce3da70b43 Initial load
duke
parents:
diff changeset
   137
    }
90ce3da70b43 Initial load
duke
parents:
diff changeset
   138
90ce3da70b43 Initial load
duke
parents:
diff changeset
   139
    private static void printArrayType(ArrayType a) {
90ce3da70b43 Initial load
duke
parents:
diff changeset
   140
        System.out.println("\tArrayType.getClassName() = " + a.getClassName());
90ce3da70b43 Initial load
duke
parents:
diff changeset
   141
        System.out.println("\tArrayType.getDescription() = " + a.getDescription());
90ce3da70b43 Initial load
duke
parents:
diff changeset
   142
        System.out.println("\tArrayType.getTypeName() = " + a.getTypeName());
90ce3da70b43 Initial load
duke
parents:
diff changeset
   143
        System.out.println("\tArrayType.isArray() = " + a.isArray());
90ce3da70b43 Initial load
duke
parents:
diff changeset
   144
        System.out.println("\tArrayType.isPrimitiveArray() = " + a.isPrimitiveArray());
90ce3da70b43 Initial load
duke
parents:
diff changeset
   145
        System.out.println("\tArrayType.getDimension() = " + a.getDimension());
90ce3da70b43 Initial load
duke
parents:
diff changeset
   146
    }
90ce3da70b43 Initial load
duke
parents:
diff changeset
   147
90ce3da70b43 Initial load
duke
parents:
diff changeset
   148
    public static void main(String[] args) throws Exception {
90ce3da70b43 Initial load
duke
parents:
diff changeset
   149
90ce3da70b43 Initial load
duke
parents:
diff changeset
   150
        System.out.println("\nTest that Open MBeans support arrays of primitive types.");
90ce3da70b43 Initial load
duke
parents:
diff changeset
   151
90ce3da70b43 Initial load
duke
parents:
diff changeset
   152
        int index = 0;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   153
        int error = 0;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   154
90ce3da70b43 Initial load
duke
parents:
diff changeset
   155
        //
90ce3da70b43 Initial load
duke
parents:
diff changeset
   156
        // Constructor tests
90ce3da70b43 Initial load
duke
parents:
diff changeset
   157
        //
90ce3da70b43 Initial load
duke
parents:
diff changeset
   158
        System.out.println("\n>>> Constructor tests");
90ce3da70b43 Initial load
duke
parents:
diff changeset
   159
90ce3da70b43 Initial load
duke
parents:
diff changeset
   160
        System.out.println("\nArrayType<String[][]> a1 = new ArrayType<String[][]>(2, SimpleType.STRING)");
90ce3da70b43 Initial load
duke
parents:
diff changeset
   161
        ArrayType<String[][]> a1 = new ArrayType<String[][]>(2, SimpleType.STRING);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   162
        printArrayType(a1);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   163
        error += checkResult(index++, a1);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   164
90ce3da70b43 Initial load
duke
parents:
diff changeset
   165
        System.out.println("\nArrayType<int[]> a2 = new ArrayType<int[]>(SimpleType.INTEGER, true)");
90ce3da70b43 Initial load
duke
parents:
diff changeset
   166
        ArrayType<int[]> a2 = new ArrayType<int[]>(SimpleType.INTEGER, true);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   167
        printArrayType(a2);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   168
        error += checkResult(index++, a2);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   169
90ce3da70b43 Initial load
duke
parents:
diff changeset
   170
        System.out.println("\nArrayType<Integer[]> a3 = new ArrayType<Integer[]>(SimpleType.INTEGER, false)");
90ce3da70b43 Initial load
duke
parents:
diff changeset
   171
        ArrayType<Integer[]> a3 = new ArrayType<Integer[]>(SimpleType.INTEGER, false);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   172
        printArrayType(a3);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   173
        error += checkResult(index++, a3);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   174
90ce3da70b43 Initial load
duke
parents:
diff changeset
   175
        System.out.println("\nArrayType<int[][][][]> a4 = new ArrayType<int[][][][]>(3, a2)");
90ce3da70b43 Initial load
duke
parents:
diff changeset
   176
        ArrayType<int[][][][]> a4 = new ArrayType<int[][][][]>(3, a2);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   177
        printArrayType(a4);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   178
        error += checkResult(index++, a4);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   179
90ce3da70b43 Initial load
duke
parents:
diff changeset
   180
        System.out.println("\nArrayType<Integer[][][][]> a5 = new ArrayType<Integer[][][][]>(3, a3)");
90ce3da70b43 Initial load
duke
parents:
diff changeset
   181
        ArrayType<Integer[][][][]> a5 = new ArrayType<Integer[][][][]>(3, a3);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   182
        printArrayType(a5);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   183
        error += checkResult(index++, a5);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   184
90ce3da70b43 Initial load
duke
parents:
diff changeset
   185
        System.out.println("\nArrayType<String[]> a6 = new ArrayType<String[]>(SimpleType.STRING, false)");
90ce3da70b43 Initial load
duke
parents:
diff changeset
   186
        ArrayType<String[]> a6 = new ArrayType<String[]>(SimpleType.STRING, false);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   187
        printArrayType(a6);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   188
        error += checkResult(index++, a6);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   189
90ce3da70b43 Initial load
duke
parents:
diff changeset
   190
        System.out.println("\nArrayType<String[]> a7 = new ArrayType<String[]>(SimpleType.STRING, true)");
90ce3da70b43 Initial load
duke
parents:
diff changeset
   191
        index++; // skip this dummy entry in the toStringResult array
90ce3da70b43 Initial load
duke
parents:
diff changeset
   192
        try {
90ce3da70b43 Initial load
duke
parents:
diff changeset
   193
            ArrayType<String[]> a7 =
90ce3da70b43 Initial load
duke
parents:
diff changeset
   194
                new ArrayType<String[]>(SimpleType.STRING, true);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   195
            System.out.println("\tDid not get expected OpenDataException!");
90ce3da70b43 Initial load
duke
parents:
diff changeset
   196
            System.out.println("Test failed!");
90ce3da70b43 Initial load
duke
parents:
diff changeset
   197
            error++;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   198
        } catch (OpenDataException e) {
90ce3da70b43 Initial load
duke
parents:
diff changeset
   199
            System.out.println("\tGot expected OpenDataException: " + e);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   200
            System.out.println("Test passed!");
90ce3da70b43 Initial load
duke
parents:
diff changeset
   201
        }
90ce3da70b43 Initial load
duke
parents:
diff changeset
   202
90ce3da70b43 Initial load
duke
parents:
diff changeset
   203
        //
90ce3da70b43 Initial load
duke
parents:
diff changeset
   204
        // Factory tests
90ce3da70b43 Initial load
duke
parents:
diff changeset
   205
        //
90ce3da70b43 Initial load
duke
parents:
diff changeset
   206
        System.out.println("\n>>> Factory tests");
90ce3da70b43 Initial load
duke
parents:
diff changeset
   207
90ce3da70b43 Initial load
duke
parents:
diff changeset
   208
        System.out.println("\nArrayType<Integer[]> a8 = ArrayType.getArrayType(SimpleType.INTEGER)");
90ce3da70b43 Initial load
duke
parents:
diff changeset
   209
        ArrayType<Integer[]> a8 = ArrayType.getArrayType(SimpleType.INTEGER);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   210
        printArrayType(a8);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   211
        error += checkResult(index++, a8);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   212
90ce3da70b43 Initial load
duke
parents:
diff changeset
   213
        System.out.println("\nArrayType<Integer[][]> a9 = ArrayType.getArrayType(a8)");
90ce3da70b43 Initial load
duke
parents:
diff changeset
   214
        ArrayType<Integer[][]> a9 = ArrayType.getArrayType(a8);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   215
        printArrayType(a9);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   216
        error += checkResult(index++, a9);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   217
90ce3da70b43 Initial load
duke
parents:
diff changeset
   218
        System.out.println("\nArrayType<int[][]> a10 = ArrayType.getPrimitiveArrayType(int[][].class)");
90ce3da70b43 Initial load
duke
parents:
diff changeset
   219
        ArrayType<int[][]> a10 = ArrayType.getPrimitiveArrayType(int[][].class);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   220
        printArrayType(a10);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   221
        error += checkResult(index++, a10);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   222
90ce3da70b43 Initial load
duke
parents:
diff changeset
   223
        System.out.println("\nArrayType<int[][][]> a11 = ArrayType.getArrayType(a10)");
90ce3da70b43 Initial load
duke
parents:
diff changeset
   224
        ArrayType<int[][][]> a11 = ArrayType.getArrayType(a10);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   225
        printArrayType(a11);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   226
        error += checkResult(index++, a11);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   227
90ce3da70b43 Initial load
duke
parents:
diff changeset
   228
        System.out.println("\nArrayType<float[]> a12 = ArrayType.getPrimitiveArrayType(float[].class)");
90ce3da70b43 Initial load
duke
parents:
diff changeset
   229
        ArrayType<float[]> a12 = ArrayType.getPrimitiveArrayType(float[].class);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   230
        printArrayType(a12);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   231
        error += checkResult(index++, a12);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   232
90ce3da70b43 Initial load
duke
parents:
diff changeset
   233
        System.out.println("\nArrayType<float[][]> a13 = ArrayType.getArrayType(a12)");
90ce3da70b43 Initial load
duke
parents:
diff changeset
   234
        ArrayType<float[][]> a13 = ArrayType.getArrayType(a12);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   235
        printArrayType(a13);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   236
        error += checkResult(index++, a13);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   237
90ce3da70b43 Initial load
duke
parents:
diff changeset
   238
        System.out.println("\nArrayType<ObjectName[]> a14 = ArrayType.getArrayType(SimpleType.OBJECTNAME)");
90ce3da70b43 Initial load
duke
parents:
diff changeset
   239
        ArrayType<ObjectName[]> a14 = ArrayType.getArrayType(SimpleType.OBJECTNAME);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   240
        printArrayType(a14);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   241
        error += checkResult(index++, a14);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   242
90ce3da70b43 Initial load
duke
parents:
diff changeset
   243
        System.out.println("\nArrayType<ObjectName[][]> a15 = ArrayType.getArrayType(a14)");
90ce3da70b43 Initial load
duke
parents:
diff changeset
   244
        ArrayType<ObjectName[][]> a15 = ArrayType.getArrayType(a14);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   245
        printArrayType(a15);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   246
        error += checkResult(index++, a15);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   247
90ce3da70b43 Initial load
duke
parents:
diff changeset
   248
        System.out.println("\nArrayType<String[][][]> a16 = new ArrayType<String[][][]>(3, SimpleType.STRING)");
90ce3da70b43 Initial load
duke
parents:
diff changeset
   249
        ArrayType<String[][][]> a16 = new ArrayType<String[][][]>(3, SimpleType.STRING);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   250
        printArrayType(a16);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   251
        error += checkResult(index++, a16);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   252
90ce3da70b43 Initial load
duke
parents:
diff changeset
   253
        System.out.println("\nArrayType<String[]> a17 = new ArrayType<String[]>(1, SimpleType.STRING)");
90ce3da70b43 Initial load
duke
parents:
diff changeset
   254
        System.out.println("ArrayType<String[][]> a18 = new ArrayType<String[][]>(1, a17)");
90ce3da70b43 Initial load
duke
parents:
diff changeset
   255
        System.out.println("ArrayType<String[][][]> a19 = new ArrayType<String[][][]>(1, a18)");
90ce3da70b43 Initial load
duke
parents:
diff changeset
   256
        ArrayType<String[]> a17 = new ArrayType<String[]>(1, SimpleType.STRING);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   257
        ArrayType<String[][]> a18 = new ArrayType<String[][]>(1, a17);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   258
        ArrayType<String[][][]> a19 = new ArrayType<String[][][]>(1, a18);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   259
        printArrayType(a19);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   260
        error += checkResult(index++, a19);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   261
90ce3da70b43 Initial load
duke
parents:
diff changeset
   262
        //
90ce3da70b43 Initial load
duke
parents:
diff changeset
   263
        // Serialization tests
90ce3da70b43 Initial load
duke
parents:
diff changeset
   264
        //
90ce3da70b43 Initial load
duke
parents:
diff changeset
   265
        System.out.println("\n>>> Serialization tests\n");
90ce3da70b43 Initial load
duke
parents:
diff changeset
   266
90ce3da70b43 Initial load
duke
parents:
diff changeset
   267
        ArrayType<int[]> i1 = ArrayType.getPrimitiveArrayType(int[].class);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   268
        ArrayType<int[]> i2 = null;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   269
90ce3da70b43 Initial load
duke
parents:
diff changeset
   270
        ArrayType<boolean[][]> b1 = ArrayType.getPrimitiveArrayType(boolean[][].class);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   271
        ArrayType<boolean[][]> b2 = null;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   272
90ce3da70b43 Initial load
duke
parents:
diff changeset
   273
        ArrayType<Long[]> l1 = ArrayType.getArrayType(SimpleType.LONG);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   274
        ArrayType<Long[]> l2 = null;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   275
90ce3da70b43 Initial load
duke
parents:
diff changeset
   276
        ArrayType<Double[]> d1 = ArrayType.getArrayType(SimpleType.DOUBLE);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   277
        ArrayType<Double[]> d2 = null;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   278
90ce3da70b43 Initial load
duke
parents:
diff changeset
   279
        // serialize the objects
90ce3da70b43 Initial load
duke
parents:
diff changeset
   280
        try {
90ce3da70b43 Initial load
duke
parents:
diff changeset
   281
            FileOutputStream fo = new FileOutputStream("serial.tmp");
90ce3da70b43 Initial load
duke
parents:
diff changeset
   282
            ObjectOutputStream so = new ObjectOutputStream(fo);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   283
            System.out.println("Serialize ArrayType<int[]> i1 = ArrayType.getPrimitiveArrayType(int[].class)");
90ce3da70b43 Initial load
duke
parents:
diff changeset
   284
            so.writeObject(i1);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   285
            System.out.println("Serialize ArrayType<boolean[][]> b1 = ArrayType.getPrimitiveArrayType(boolean[][].class)");
90ce3da70b43 Initial load
duke
parents:
diff changeset
   286
            so.writeObject(b1);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   287
            System.out.println("Serialize ArrayType<Long[]> l1 = ArrayType.getArrayType(SimpleType.LONG)");
90ce3da70b43 Initial load
duke
parents:
diff changeset
   288
            so.writeObject(l1);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   289
            System.out.println("Serialize ArrayType<Double[]> d1 = ArrayType.getArrayType(SimpleType.DOUBLE)");
90ce3da70b43 Initial load
duke
parents:
diff changeset
   290
            so.writeObject(d1);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   291
            so.flush();
90ce3da70b43 Initial load
duke
parents:
diff changeset
   292
        } catch (Exception e) {
90ce3da70b43 Initial load
duke
parents:
diff changeset
   293
            System.out.println(e);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   294
            System.exit(1);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   295
        }
90ce3da70b43 Initial load
duke
parents:
diff changeset
   296
90ce3da70b43 Initial load
duke
parents:
diff changeset
   297
        // deserialize the objects
90ce3da70b43 Initial load
duke
parents:
diff changeset
   298
        try {
90ce3da70b43 Initial load
duke
parents:
diff changeset
   299
            FileInputStream fi = new FileInputStream("serial.tmp");
90ce3da70b43 Initial load
duke
parents:
diff changeset
   300
            ObjectInputStream si = new ObjectInputStream(fi);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   301
            System.out.println("Deserialize ArrayType<int[]> i1 = ArrayType.getPrimitiveArrayType(int[].class)");
90ce3da70b43 Initial load
duke
parents:
diff changeset
   302
            i2 = (ArrayType<int[]>) si.readObject();
90ce3da70b43 Initial load
duke
parents:
diff changeset
   303
            System.out.println("Deserialize ArrayType<boolean[][]> b1 = ArrayType.getPrimitiveArrayType(boolean[][].class)");
90ce3da70b43 Initial load
duke
parents:
diff changeset
   304
            b2 = (ArrayType<boolean[][]>) si.readObject();
90ce3da70b43 Initial load
duke
parents:
diff changeset
   305
            System.out.println("Deserialize ArrayType<Long[]> l1 = ArrayType.getArrayType(SimpleType.LONG)");
90ce3da70b43 Initial load
duke
parents:
diff changeset
   306
            l2 = (ArrayType<Long[]>) si.readObject();
90ce3da70b43 Initial load
duke
parents:
diff changeset
   307
            System.out.println("Deserialize ArrayType<Double[]> d1 = ArrayType.getArrayType(SimpleType.DOUBLE)");
90ce3da70b43 Initial load
duke
parents:
diff changeset
   308
            d2 = (ArrayType<Double[]>) si.readObject();
90ce3da70b43 Initial load
duke
parents:
diff changeset
   309
        } catch (Exception e) {
90ce3da70b43 Initial load
duke
parents:
diff changeset
   310
            System.out.println(e);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   311
            System.exit(1);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   312
        }
90ce3da70b43 Initial load
duke
parents:
diff changeset
   313
90ce3da70b43 Initial load
duke
parents:
diff changeset
   314
        if (i1.toString().equals(toStringResult[index++]) &&
90ce3da70b43 Initial load
duke
parents:
diff changeset
   315
            i1.toString().equals(i2.toString())) {
90ce3da70b43 Initial load
duke
parents:
diff changeset
   316
            System.out.println("Test passed for ArrayType<int[]> i1 = ArrayType.getPrimitiveArrayType(int[].class)");
90ce3da70b43 Initial load
duke
parents:
diff changeset
   317
        } else {
90ce3da70b43 Initial load
duke
parents:
diff changeset
   318
            System.out.println("Test failed for ArrayType<int[]> i1 = ArrayType.getPrimitiveArrayType(int[].class)");
90ce3da70b43 Initial load
duke
parents:
diff changeset
   319
            error++;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   320
        }
90ce3da70b43 Initial load
duke
parents:
diff changeset
   321
        if (b1.toString().equals(toStringResult[index++]) &&
90ce3da70b43 Initial load
duke
parents:
diff changeset
   322
            b1.toString().equals(b2.toString())) {
90ce3da70b43 Initial load
duke
parents:
diff changeset
   323
            System.out.println("Test passed for ArrayType<boolean[][]> b1 = ArrayType.getPrimitiveArrayType(boolean[][].class)");
90ce3da70b43 Initial load
duke
parents:
diff changeset
   324
        } else {
90ce3da70b43 Initial load
duke
parents:
diff changeset
   325
            System.out.println("Test failed for ArrayType<boolean[][]> b1 = ArrayType.getPrimitiveArrayType(boolean[][].class)");
90ce3da70b43 Initial load
duke
parents:
diff changeset
   326
            error++;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   327
        }
90ce3da70b43 Initial load
duke
parents:
diff changeset
   328
        if (l1.toString().equals(toStringResult[index++]) &&
90ce3da70b43 Initial load
duke
parents:
diff changeset
   329
            l1.toString().equals(l2.toString())) {
90ce3da70b43 Initial load
duke
parents:
diff changeset
   330
            System.out.println("Test passed for ArrayType<Long[]> l1 = ArrayType.getArrayType(SimpleType.LONG)");
90ce3da70b43 Initial load
duke
parents:
diff changeset
   331
        } else {
90ce3da70b43 Initial load
duke
parents:
diff changeset
   332
            System.out.println("Test failed for ArrayType<Long[]> l1 = ArrayType.getArrayType(SimpleType.LONG)");
90ce3da70b43 Initial load
duke
parents:
diff changeset
   333
            error++;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   334
        }
90ce3da70b43 Initial load
duke
parents:
diff changeset
   335
        if (d1.toString().equals(toStringResult[index++]) &&
90ce3da70b43 Initial load
duke
parents:
diff changeset
   336
            d1.toString().equals(d2.toString())) {
90ce3da70b43 Initial load
duke
parents:
diff changeset
   337
            System.out.println("Test passed for ArrayType<Double[]> d1 = ArrayType.getArrayType(SimpleType.DOUBLE)");
90ce3da70b43 Initial load
duke
parents:
diff changeset
   338
        } else {
90ce3da70b43 Initial load
duke
parents:
diff changeset
   339
            System.out.println("Test failed for ArrayType<Double[]> d1 = ArrayType.getArrayType(SimpleType.DOUBLE)");
90ce3da70b43 Initial load
duke
parents:
diff changeset
   340
            error++;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   341
        }
90ce3da70b43 Initial load
duke
parents:
diff changeset
   342
90ce3da70b43 Initial load
duke
parents:
diff changeset
   343
        //
90ce3da70b43 Initial load
duke
parents:
diff changeset
   344
        // Test getters
90ce3da70b43 Initial load
duke
parents:
diff changeset
   345
        //
90ce3da70b43 Initial load
duke
parents:
diff changeset
   346
        System.out.println("\n>>> Getter tests");
90ce3da70b43 Initial load
duke
parents:
diff changeset
   347
90ce3da70b43 Initial load
duke
parents:
diff changeset
   348
        System.out.println("\nArrayType<Integer[][]> g1 = new ArrayType<Integer[][]>(2, SimpleType.INTEGER)");
90ce3da70b43 Initial load
duke
parents:
diff changeset
   349
        ArrayType<Integer[][]> g1 = new ArrayType<Integer[][]>(2, SimpleType.INTEGER);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   350
        printArrayType(g1);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   351
        error += checkGetters(g1,
90ce3da70b43 Initial load
duke
parents:
diff changeset
   352
                              "[[Ljava.lang.Integer;",
90ce3da70b43 Initial load
duke
parents:
diff changeset
   353
                              "2-dimension array of java.lang.Integer",
90ce3da70b43 Initial load
duke
parents:
diff changeset
   354
                              "[[Ljava.lang.Integer;",
90ce3da70b43 Initial load
duke
parents:
diff changeset
   355
                              true,
90ce3da70b43 Initial load
duke
parents:
diff changeset
   356
                              false,
90ce3da70b43 Initial load
duke
parents:
diff changeset
   357
                              2);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   358
90ce3da70b43 Initial load
duke
parents:
diff changeset
   359
        System.out.println("\nArrayType<int[][]> g2 = ArrayType.getPrimitiveArrayType(int[][].class)");
90ce3da70b43 Initial load
duke
parents:
diff changeset
   360
        ArrayType<int[][]> g2 = ArrayType.getPrimitiveArrayType(int[][].class);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   361
        printArrayType(g2);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   362
        error += checkGetters(g2,
90ce3da70b43 Initial load
duke
parents:
diff changeset
   363
                              "[[I",
90ce3da70b43 Initial load
duke
parents:
diff changeset
   364
                              "2-dimension array of int",
90ce3da70b43 Initial load
duke
parents:
diff changeset
   365
                              "[[I",
90ce3da70b43 Initial load
duke
parents:
diff changeset
   366
                              true,
90ce3da70b43 Initial load
duke
parents:
diff changeset
   367
                              true,
90ce3da70b43 Initial load
duke
parents:
diff changeset
   368
                              2);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   369
90ce3da70b43 Initial load
duke
parents:
diff changeset
   370
        if (error > 0) {
90ce3da70b43 Initial load
duke
parents:
diff changeset
   371
            final String msg = "\nTest FAILED! Got " + error + " error(s)";
90ce3da70b43 Initial load
duke
parents:
diff changeset
   372
            System.out.println(msg);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   373
            throw new IllegalArgumentException(msg);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   374
        } else {
90ce3da70b43 Initial load
duke
parents:
diff changeset
   375
            System.out.println("\nTest PASSED!");
90ce3da70b43 Initial load
duke
parents:
diff changeset
   376
        }
90ce3da70b43 Initial load
duke
parents:
diff changeset
   377
    }
90ce3da70b43 Initial load
duke
parents:
diff changeset
   378
}