/******************************************************************************* * Copyright (c) 2013, 2015 Oracle and/or its affiliates. All rights reserved. * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 * which accompanies this distribution. * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html * and the Eclipse Distribution License is available at * http://www.eclipse.org/org/documents/edl-v10.php. * * Contributors: * Blaise Doughan - 2.5.1 - initial implementation ******************************************************************************/ package org.eclipse.persistence.testing.jaxb.rs; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.InputStream; import java.lang.reflect.Field; import java.lang.reflect.Type; import java.util.Arrays; import java.util.List; import org.eclipse.persistence.jaxb.rs.MOXyJsonProvider; import junit.framework.TestCase; public class SimpleListTestCases extends TestCase { private MOXyJsonProvider moxyJsonProvider; public static final String jsonArrayOfString = "[\"A\",\"B\",\"C\",null]"; public static final String[] arrayOfString = {"A", "B", "C", null}; public static final List<String> listOfString = Arrays.asList(arrayOfString); public static final String jsonArrayOfBoolean = "[true,false,null,true]"; public static final Boolean[] arrayOfBoolean = {true,false,null,true}; public static final List<Boolean> listOfBoolean = Arrays.asList(arrayOfBoolean); public static final String jsonArrayOfInteger = "[null,1,2,3]"; public static final Integer[] arrayOfInteger = {null,1,2,3}; public static final List<Integer> listOfInteger = Arrays.asList(arrayOfInteger); public static final int[] arrayOfInt = {1,2,3}; public static final int[][][] arrayOfInt3D = null; @Override protected void setUp() throws Exception { moxyJsonProvider = new MOXyJsonProvider(); } public void testReadArrayOfString() throws Exception { Field field = SimpleListTestCases.class.getField("arrayOfString"); InputStream entityStream = new ByteArrayInputStream(jsonArrayOfString.getBytes("UTF-8")); String[] result = (String[]) moxyJsonProvider.readFrom((Class<Object>) field.getType(), field.getGenericType(), null, null, null, entityStream); assertTrue(Arrays.equals(arrayOfString, result)); } public void testWriteArrayOfString() throws Exception { Field field = SimpleListTestCases.class.getField("arrayOfString"); boolean test = moxyJsonProvider.isWriteable((Class<Object>) field.getType(), field.getGenericType(), null, null); assertFalse(test); } public void testReadListOfString() throws Exception { Field field = SimpleListTestCases.class.getField("listOfString"); InputStream entityStream = new ByteArrayInputStream(jsonArrayOfString.getBytes("UTF-8")); Object result = moxyJsonProvider.readFrom((Class<Object>) field.getType(), field.getGenericType(), null, null, null, entityStream); entityStream.close(); assertEquals(listOfString, result); } public void testWriteListOfString() throws Exception { Field field = SimpleListTestCases.class.getField("listOfString"); boolean test = moxyJsonProvider.isWriteable((Class<Object>) field.getType(), field.getGenericType(), null, null); assertFalse(test); } public void testReadArrayOfBoolean() throws Exception { Field field = SimpleListTestCases.class.getField("arrayOfBoolean"); InputStream entityStream = new ByteArrayInputStream(jsonArrayOfBoolean.getBytes("UTF-8")); Boolean[] result = (Boolean[]) moxyJsonProvider.readFrom((Class<Object>) field.getType(), field.getGenericType(), null, null, null, entityStream); entityStream.close(); assertTrue(Arrays.equals(arrayOfBoolean, result)); } public void testWriteArrayOfBoolean() throws Exception { Field field = SimpleListTestCases.class.getField("arrayOfBoolean"); boolean test = moxyJsonProvider.isWriteable((Class<Object>) field.getType(), field.getGenericType(), null, null); assertFalse(test); } public void testReadListOfBoolean() throws Exception { Field field = SimpleListTestCases.class.getField("listOfBoolean"); InputStream entityStream = new ByteArrayInputStream(jsonArrayOfBoolean.getBytes("UTF-8")); Object result = moxyJsonProvider.readFrom((Class<Object>) field.getType(), field.getGenericType(), null, null, null, entityStream); entityStream.close(); assertEquals(listOfBoolean, result); } public void testWriteListOfBoolean() throws Exception { Field field = SimpleListTestCases.class.getField("listOfBoolean"); boolean test = moxyJsonProvider.isWriteable((Class<Object>) field.getType(), field.getGenericType(), null, null); assertFalse(test); } public void testReadArrayOfInteger() throws Exception { Field field = SimpleListTestCases.class.getField("arrayOfInteger"); InputStream entityStream = new ByteArrayInputStream(jsonArrayOfInteger.getBytes("UTF-8")); Integer[] result = (Integer[]) moxyJsonProvider.readFrom((Class<Object>) field.getType(), field.getGenericType(), null, null, null, entityStream); entityStream.close(); assertTrue(Arrays.equals(arrayOfInteger, result)); } public void testWriteArrayOfInteger() throws Exception { Field field = SimpleListTestCases.class.getField("arrayOfInteger"); boolean test = moxyJsonProvider.isWriteable((Class<Object>) field.getType(), field.getGenericType(), null, null); assertFalse(test); } public void testReadListOfInteger() throws Exception { Field field = SimpleListTestCases.class.getField("listOfInteger"); InputStream entityStream = new ByteArrayInputStream(jsonArrayOfInteger.getBytes("UTF-8")); Object result = moxyJsonProvider.readFrom((Class<Object>) field.getType(), field.getGenericType(), null, null, null, entityStream); entityStream.close(); assertEquals(listOfInteger, result); } public void testWriteListOfInteger() throws Exception { Field field = SimpleListTestCases.class.getField("listOfInteger"); boolean test = moxyJsonProvider.isWriteable((Class<Object>) field.getType(), field.getGenericType(), null, null); assertFalse(test); } public void testReadArrayOfInt() throws Exception { Field field = SimpleListTestCases.class.getField("arrayOfInt"); boolean test = moxyJsonProvider.isReadable((Class<Object>) field.getType(), field.getGenericType(), null, null); assertFalse(test); } public void testWriteArrayOfInt() throws Exception { Field field = SimpleListTestCases.class.getField("arrayOfInt"); boolean test = moxyJsonProvider.isWriteable((Class<Object>) field.getType(), field.getGenericType(), null, null); assertFalse(test); } public void testReadArrayOfInt3D() throws Exception { Field field = SimpleListTestCases.class.getField("arrayOfInt3D"); boolean test = moxyJsonProvider.isReadable((Class<Object>) field.getType(), field.getGenericType(), null, null); assertFalse(test); } public void testWriteArrayOfInt3D() throws Exception { Field field = SimpleListTestCases.class.getField("arrayOfInt3D"); boolean test = moxyJsonProvider.isWriteable((Class<Object>) field.getType(), field.getGenericType(), null, null); assertFalse(test); } }