| /* |
| * Copyright (c) 1998, 2021 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 v. 2.0 which is available at |
| * http://www.eclipse.org/legal/epl-2.0, |
| * or the Eclipse Distribution License v. 1.0 which is available at |
| * http://www.eclipse.org/org/documents/edl-v10.php. |
| * |
| * SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause |
| */ |
| |
| // 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); |
| } |
| |
| @Override |
| 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; |
| } |
| } |