json/src/test/java/org/netbeans/html/json/impl/BuilderTest.java
author Jaroslav Tulach <jtulach@netbeans.org>
Thu, 05 Nov 2015 23:38:18 +0100
changeset 1017 10427ce1c0ee
permissions -rw-r--r--
#250611: Builder style properties
jtulach@1017
     1
/**
jtulach@1017
     2
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
jtulach@1017
     3
 *
jtulach@1017
     4
 * Copyright 2013-2014 Oracle and/or its affiliates. All rights reserved.
jtulach@1017
     5
 *
jtulach@1017
     6
 * Oracle and Java are registered trademarks of Oracle and/or its affiliates.
jtulach@1017
     7
 * Other names may be trademarks of their respective owners.
jtulach@1017
     8
 *
jtulach@1017
     9
 * The contents of this file are subject to the terms of either the GNU
jtulach@1017
    10
 * General Public License Version 2 only ("GPL") or the Common
jtulach@1017
    11
 * Development and Distribution License("CDDL") (collectively, the
jtulach@1017
    12
 * "License"). You may not use this file except in compliance with the
jtulach@1017
    13
 * License. You can obtain a copy of the License at
jtulach@1017
    14
 * http://www.netbeans.org/cddl-gplv2.html
jtulach@1017
    15
 * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
jtulach@1017
    16
 * specific language governing permissions and limitations under the
jtulach@1017
    17
 * License.  When distributing the software, include this License Header
jtulach@1017
    18
 * Notice in each file and include the License file at
jtulach@1017
    19
 * nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
jtulach@1017
    20
 * particular file as subject to the "Classpath" exception as provided
jtulach@1017
    21
 * by Oracle in the GPL Version 2 section of the License file that
jtulach@1017
    22
 * accompanied this code. If applicable, add the following below the
jtulach@1017
    23
 * License Header, with the fields enclosed by brackets [] replaced by
jtulach@1017
    24
 * your own identifying information:
jtulach@1017
    25
 * "Portions Copyrighted [year] [name of copyright owner]"
jtulach@1017
    26
 *
jtulach@1017
    27
 * Contributor(s):
jtulach@1017
    28
 *
jtulach@1017
    29
 * The Original Software is NetBeans. The Initial Developer of the Original
jtulach@1017
    30
 * Software is Oracle. Portions Copyright 2013-2014 Oracle. All Rights Reserved.
jtulach@1017
    31
 *
jtulach@1017
    32
 * If you wish your version of this file to be governed by only the CDDL
jtulach@1017
    33
 * or only the GPL Version 2, indicate your decision by adding
jtulach@1017
    34
 * "[Contributor] elects to include this software in this distribution
jtulach@1017
    35
 * under the [CDDL or GPL Version 2] license." If you do not indicate a
jtulach@1017
    36
 * single choice of license, a recipient has the option to distribute
jtulach@1017
    37
 * your version of this file under either the CDDL, the GPL Version 2 or
jtulach@1017
    38
 * to extend the choice of license to its licensees as provided above.
jtulach@1017
    39
 * However, if you add GPL Version 2 code and therefore, elected the GPL
jtulach@1017
    40
 * Version 2 license, then the option applies only if the new code is
jtulach@1017
    41
 * made subject to such option by the copyright holder.
jtulach@1017
    42
 */
jtulach@1017
    43
package org.netbeans.html.json.impl;
jtulach@1017
    44
jtulach@1017
    45
import java.lang.reflect.Constructor;
jtulach@1017
    46
import net.java.html.json.Model;
jtulach@1017
    47
import net.java.html.json.Property;
jtulach@1017
    48
import static org.testng.Assert.assertEquals;
jtulach@1017
    49
import org.testng.annotations.Test;
jtulach@1017
    50
jtulach@1017
    51
@Model(className="Builder", builder = "", properties = {
jtulach@1017
    52
    @Property(name="bytes", type = byte.class, array = true),
jtulach@1017
    53
    @Property(name="chars", type = char.class, array = true),
jtulach@1017
    54
    @Property(name="shorts", type = short.class, array = true),
jtulach@1017
    55
    @Property(name="ints", type = int.class, array = true),
jtulach@1017
    56
    @Property(name="longs", type = long.class, array = true),
jtulach@1017
    57
    @Property(name="floats", type = float.class, array = true),
jtulach@1017
    58
    @Property(name="doubles", type = double.class, array = true),
jtulach@1017
    59
    @Property(name="strings", type = String.class, array = true),
jtulach@1017
    60
})
jtulach@1017
    61
public class BuilderTest {
jtulach@1017
    62
    @Test
jtulach@1017
    63
    public void onlyDefaultClassLoader() {
jtulach@1017
    64
        Constructor<?>[] arr = Builder.class.getConstructors();
jtulach@1017
    65
        assertEquals(arr.length, 1, "One constructor");
jtulach@1017
    66
        assertEquals(arr[0].getParameterTypes().length, 0, "No parameters");
jtulach@1017
    67
    }
jtulach@1017
    68
jtulach@1017
    69
    @Test
jtulach@1017
    70
    public void assignBytes() {
jtulach@1017
    71
        Builder b = new Builder().bytes((byte)10, (byte)20, (byte)30);
jtulach@1017
    72
        assertEquals(b.getBytes().size(), 3);
jtulach@1017
    73
        assertEquals(b.getBytes().get(0).byteValue(), (byte)10);
jtulach@1017
    74
    }
jtulach@1017
    75
    @Test
jtulach@1017
    76
    public void assignChars() {
jtulach@1017
    77
        Builder b = new Builder().chars((char)10, (char)20, (char)30);
jtulach@1017
    78
        assertEquals(b.getChars().size(), 3);
jtulach@1017
    79
        assertEquals(b.getChars().get(0).charValue(), 10);
jtulach@1017
    80
    }
jtulach@1017
    81
    @Test
jtulach@1017
    82
    public void assignShort() {
jtulach@1017
    83
        Builder b = new Builder().shorts((short)10, (short)20, (short)30);
jtulach@1017
    84
        assertEquals(b.getShorts().size(), 3);
jtulach@1017
    85
        assertEquals(b.getShorts().get(0).intValue(), 10);
jtulach@1017
    86
    }
jtulach@1017
    87
    @Test
jtulach@1017
    88
    public void assignInts() {
jtulach@1017
    89
        Builder b = new Builder().ints(10, 20, 30);
jtulach@1017
    90
        assertEquals(b.getInts().size(), 3);
jtulach@1017
    91
        assertEquals(b.getInts().get(0).intValue(), 10);
jtulach@1017
    92
    }
jtulach@1017
    93
    @Test
jtulach@1017
    94
    public void assignLongs() {
jtulach@1017
    95
        Builder b = new Builder().longs(10, 20, 30);
jtulach@1017
    96
        assertEquals(b.getLongs().size(), 3);
jtulach@1017
    97
        assertEquals(b.getLongs().get(1).intValue(), 20);
jtulach@1017
    98
    }
jtulach@1017
    99
    @Test
jtulach@1017
   100
    public void assignDouble() {
jtulach@1017
   101
        Builder b = new Builder().doubles(10, 20, 30);
jtulach@1017
   102
        assertEquals(b.getDoubles().size(), 3);
jtulach@1017
   103
        assertEquals(b.getDoubles().get(0), 10.0);
jtulach@1017
   104
    }
jtulach@1017
   105
    @Test
jtulach@1017
   106
    public void assignFloats() {
jtulach@1017
   107
        Builder b = new Builder().floats(10, 20, 30);
jtulach@1017
   108
        assertEquals(b.getFloats().size(), 3);
jtulach@1017
   109
        assertEquals(b.getFloats().get(0), 10.0f);
jtulach@1017
   110
    }
jtulach@1017
   111
    @Test
jtulach@1017
   112
    public void assignStrings() {
jtulach@1017
   113
        Builder b = new Builder().strings("A", "AB", "ABC");
jtulach@1017
   114
        assertEquals(b.getStrings().size(), 3);
jtulach@1017
   115
        assertEquals(b.getStrings().get(1), "AB");
jtulach@1017
   116
    }
jtulach@1017
   117
}