/******************************************************************************* * Copyright (c) 1998, 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: * rbarkhouse - 2009-06-16 10:40:00 - initial implementation ******************************************************************************/ package org.eclipse.persistence.testing.jaxb.simpledocument; import org.eclipse.persistence.testing.jaxb.JAXBWithJSONTestCases; /** * Tests the various combinations of absent/empty elements and their corresponding null/empty string * values when unmarshalled. */ public class SimpleDocumentWhitespaceNullTestCases extends JAXBWithJSONTestCases{ private final static String ELEMENT_WITH_VALUE = "org/eclipse/persistence/testing/jaxb/simpledocument/elemWithValue.xml"; private final static String ABSENT_ELEMENT = "org/eclipse/persistence/testing/jaxb/simpledocument/absentElem.xml"; private final static String EMPTY_ELEMENT = "org/eclipse/persistence/testing/jaxb/simpledocument/emptyElem.xml"; private final static String ELEMENT_WITH_WHITESPACE = "org/eclipse/persistence/testing/jaxb/simpledocument/elemWithWhitespace.xml"; private final static String JSON_ELEMENT_WITH_VALUE = "org/eclipse/persistence/testing/jaxb/simpledocument/elemWithValue.json"; private final static String JSON_ABSENT_ELEMENT = "org/eclipse/persistence/testing/jaxb/simpledocument/absentElem.json"; private final static String JSON_EMPTY_ELEMENT = "org/eclipse/persistence/testing/jaxb/simpledocument/emptyElem.json"; private final static String JSON_ELEMENT_WITH_WHITESPACE = "org/eclipse/persistence/testing/jaxb/simpledocument/elemWithWhitespace.json"; private final static int TEST_ELEM_WITH_VALUE = 1; private final static int TEST_ABSENT_ELEM = 2; private final static int TEST_EMPTY_ELEM = 3; private final static int TEST_ELEM_WITH_WHITESPACE = 4; private int state = TEST_ELEM_WITH_VALUE; public SimpleDocumentWhitespaceNullTestCases(String name) throws Exception { super(name); setControlDocument(ELEMENT_WITH_VALUE); setControlJSON(JSON_ELEMENT_WITH_VALUE); Class[] classes = new Class[1]; classes[0] = Root.class; setClasses(classes); } protected Object getControlObject() { Root controlRoot = new Root(); switch (state) { case TEST_ELEM_WITH_VALUE: controlRoot.id = "123"; break; case TEST_ABSENT_ELEM: controlRoot.id = null; break; case TEST_EMPTY_ELEM: controlRoot.id = ""; break; case TEST_ELEM_WITH_WHITESPACE: controlRoot.id = " "; break; } return controlRoot; } public void testElemWithValue() throws Exception { this.state = TEST_ELEM_WITH_VALUE; this.resourceName = ELEMENT_WITH_VALUE; super.testXMLToObjectFromURL(); this.state = TEST_ELEM_WITH_VALUE; } public void testAbsentElem() throws Exception { this.state = TEST_ABSENT_ELEM; this.resourceName = ABSENT_ELEMENT; super.testXMLToObjectFromURL(); this.state = TEST_ELEM_WITH_VALUE; } public void testEmptyElem() throws Exception { this.state = TEST_EMPTY_ELEM; this.resourceName = EMPTY_ELEMENT; super.testXMLToObjectFromURL(); this.state = TEST_ELEM_WITH_VALUE; } public void testElemWithWhitespace() throws Exception { this.state = TEST_ELEM_WITH_WHITESPACE; this.resourceName = ELEMENT_WITH_WHITESPACE; super.testXMLToObjectFromURL(); this.state = TEST_ELEM_WITH_VALUE; } public void testElemWithValueJSON() throws Exception { this.state = TEST_ELEM_WITH_VALUE; this.controlJSONLocation = JSON_ELEMENT_WITH_VALUE; super.testJSONUnmarshalFromURL(); this.state = TEST_ELEM_WITH_VALUE; } public void testAbsentElemJSON() throws Exception { this.state = TEST_ABSENT_ELEM; this.controlJSONLocation = JSON_ABSENT_ELEMENT; super.testJSONUnmarshalFromURL(); this.state = TEST_ELEM_WITH_VALUE; } public void testEmptyElemJSON() throws Exception { this.state = TEST_EMPTY_ELEM; this.controlJSONLocation = JSON_EMPTY_ELEMENT; super.testJSONUnmarshalFromURL(); this.state = TEST_ELEM_WITH_VALUE; } public void testElemWithWhitespaceJSON() throws Exception { this.state = TEST_ELEM_WITH_WHITESPACE; this.controlJSONLocation = JSON_ELEMENT_WITH_WHITESPACE; super.testJSONUnmarshalFromURL(); this.state = TEST_ELEM_WITH_VALUE; } }