rt/vm/src/test/java/org/apidesign/vm4brwsr/LibUseTest.java
author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
Fri, 10 Jun 2016 08:24:36 +0200
branchLibraries
changeset 1974 a5fc49f9ef40
parent 1972 a83ae75ebf89
permissions -rw-r--r--
Including failing arrayForEach test
     1 /**
     2  * Back 2 Browser Bytecode Translator
     3  * Copyright (C) 2012-2015 Jaroslav Tulach <jaroslav.tulach@apidesign.org>
     4  *
     5  * This program is free software: you can redistribute it and/or modify
     6  * it under the terms of the GNU General Public License as published by
     7  * the Free Software Foundation, version 2 of the License.
     8  *
     9  * This program is distributed in the hope that it will be useful,
    10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
    11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    12  * GNU General Public License for more details.
    13  *
    14  * You should have received a copy of the GNU General Public License
    15  * along with this program. Look for COPYING file in the top folder.
    16  * If not, see http://opensource.org/licenses/GPL-2.0.
    17  */
    18 package org.apidesign.vm4brwsr;
    19 
    20 import org.testng.annotations.AfterClass;
    21 import org.testng.annotations.BeforeClass;
    22 import org.testng.annotations.Test;
    23 
    24 public class LibUseTest {
    25     private static TestVM code;
    26 
    27     @BeforeClass
    28     public static void initVM() throws Exception {
    29         code = TestVM.compileClass("org/apidesign/vm4brwsr/LibUse");
    30     }
    31     @AfterClass
    32     public static void releaseTheCode() {
    33         code = null;
    34     }
    35 
    36     @Test
    37     public void fourtyTwo() throws Exception {
    38         code.assertExec("Fourty two", LibUse.class, "fourtyTwo__I", 42);
    39     }
    40 
    41     @Test
    42     public void readAHiProperty() throws Exception {
    43         code.assertExec(
    44             "Object has property x", LibUse.class,
    45             "hiProperty__Ljava_lang_String_2Ljava_lang_String_2",
    46             "Hi", (Object)null
    47         );
    48     }
    49 
    50     @Test
    51     public void writeAHiProperty() throws Exception {
    52         code.assertExec(
    53             "Object has property x", LibUse.class,
    54             "hiProperty__Ljava_lang_String_2Ljava_lang_String_2",
    55             "Ahoj", "Ahoj"
    56         );
    57     }
    58 
    59    @Test
    60     public void optionalParams1() throws Exception {
    61         code.assertExec(
    62             "Fifteen", LibUse.class,
    63             "parse__DLjava_lang_String_2",
    64             15, "0xF"
    65         );
    66     }
    67 
    68     @Test
    69     public void optionalParams2() throws Exception {
    70         code.assertExec(
    71             "Fifteen", LibUse.class,
    72             "parse__DLjava_lang_String_2I",
    73             15, "F", 16
    74         );
    75     }
    76 
    77     @Test
    78     public void verifyNaN() throws Exception {
    79         code.assertExec(
    80             "Check NaN", LibUse.class,
    81             "checkNaN__Z",
    82             true
    83         );
    84     }
    85 
    86     @Test
    87     public void assertDateOperation() throws Exception {
    88         code.assertExec(
    89             "Create and read date", LibUse.class,
    90             "dateOperation__D",
    91             2017.0
    92         );
    93     }
    94 
    95     @Test
    96     public void directArray() throws Exception {
    97         code.assertExec(
    98             "Create and read date", LibUse.class,
    99             "arrayForEach__D",
   100             6.3
   101         );
   102     }
   103 }