rt/emul/compacttest/src/test/java/org/apidesign/bck2brwsr/tck/ClassTest.java
author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
Tue, 10 May 2016 04:52:05 +0200
changeset 1962 9d46ae9d4a2e
parent 1787 ea12a3bb4b33
permissions -rw-r--r--
Don't obfuscate names of fields in objects - otherwise fields provided by two modules may clash
jaroslav@355
     1
/**
jaroslav@355
     2
 * Back 2 Browser Bytecode Translator
jaroslav@1787
     3
 * Copyright (C) 2012-2015 Jaroslav Tulach <jaroslav.tulach@apidesign.org>
jaroslav@355
     4
 *
jaroslav@355
     5
 * This program is free software: you can redistribute it and/or modify
jaroslav@355
     6
 * it under the terms of the GNU General Public License as published by
jaroslav@355
     7
 * the Free Software Foundation, version 2 of the License.
jaroslav@355
     8
 *
jaroslav@355
     9
 * This program is distributed in the hope that it will be useful,
jaroslav@355
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
jaroslav@355
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
jaroslav@355
    12
 * GNU General Public License for more details.
jaroslav@355
    13
 *
jaroslav@355
    14
 * You should have received a copy of the GNU General Public License
jaroslav@355
    15
 * along with this program. Look for COPYING file in the top folder.
jaroslav@355
    16
 * If not, see http://opensource.org/licenses/GPL-2.0.
jaroslav@355
    17
 */
jaroslav@355
    18
package org.apidesign.bck2brwsr.tck;
jaroslav@355
    19
jaroslav@355
    20
import org.apidesign.bck2brwsr.vmtest.Compare;
jaroslav@355
    21
import org.apidesign.bck2brwsr.vmtest.VMTest;
jaroslav@355
    22
import org.testng.annotations.Factory;
jaroslav@355
    23
jaroslav@355
    24
/**
jaroslav@355
    25
 *
jaroslav@355
    26
 * @author Jaroslav Tulach <jtulach@netbeans.org>
jaroslav@355
    27
 */
jaroslav@1634
    28
public class ClassTest {
jaroslav@413
    29
    @Compare
jaroslav@1634
    30
    public boolean isDoubleArrayAssignableToObject() throws Exception {
jaroslav@1634
    31
        double[] dbl = new double[0];
jaroslav@1634
    32
        Class<?> dblCls = dbl.getClass();
jaroslav@1634
    33
        return Object.class.isAssignableFrom(dblCls);
jaroslav@355
    34
    }
jaroslav@355
    35
jaroslav@1634
    36
    @Compare
jaroslav@1634
    37
    public boolean isDoubleArrayAssignableToString() throws Exception {
jaroslav@1634
    38
        double[] dbl = new double[0];
jaroslav@1634
    39
        Class<?> dblCls = dbl.getClass();
jaroslav@1634
    40
        return String.class.isAssignableFrom(dblCls);
jaroslav@392
    41
    }
jaroslav@1898
    42
jaroslav@1898
    43
    private String toClassInfo(Class<?> c) {
jaroslav@1898
    44
        StringBuilder sb = new StringBuilder();
jaroslav@1898
    45
        sb.append("\n");
jaroslav@1898
    46
        sb.append("name: ").append(c.getName()).append("\n");
jaroslav@1898
    47
        sb.append("local: ").append(c.isLocalClass()).append("\n");
jaroslav@1898
    48
        sb.append("member: ").append(c.isMemberClass()).append("\n");
jaroslav@1898
    49
        sb.append("annonymous: ").append(c.isAnonymousClass()).append("\n");
jaroslav@1898
    50
        return sb.toString();
jaroslav@1898
    51
    }
jaroslav@1898
    52
jaroslav@1898
    53
jaroslav@1898
    54
    @Compare
jaroslav@1898
    55
    public String globalClass() throws Exception {
jaroslav@1898
    56
        return toClassInfo(ClassTest.class);
jaroslav@1898
    57
    }
jaroslav@1898
    58
jaroslav@1898
    59
    @Compare
jaroslav@1898
    60
    public String localClass() throws Exception {
jaroslav@1898
    61
        class Local {
jaroslav@1898
    62
        }
jaroslav@1898
    63
        return toClassInfo(Local.class);
jaroslav@1898
    64
    }
jaroslav@1898
    65
jaroslav@1898
    66
    class Member {
jaroslav@1898
    67
    }
jaroslav@1898
    68
jaroslav@1898
    69
    @Compare
jaroslav@1898
    70
    public String memberClass() throws Exception {
jaroslav@1898
    71
        return toClassInfo(Member.class);
jaroslav@1898
    72
    }
jaroslav@1898
    73
jaroslav@1898
    74
    static class NonMember {
jaroslav@1898
    75
    }
jaroslav@1898
    76
jaroslav@1898
    77
    @Compare
jaroslav@1898
    78
    public String nonMemberClass() throws Exception {
jaroslav@1898
    79
        return toClassInfo(NonMember.class);
jaroslav@1898
    80
    }
jaroslav@355
    81
    
jaroslav@355
    82
    @Factory
jaroslav@355
    83
    public static Object[] create() {
jaroslav@1634
    84
        return VMTest.create(ClassTest.class);
jaroslav@411
    85
    }
jaroslav@355
    86
}