blob: a05fdc9726ce69f15eada555bf2e37909ab590ef [file] [log] [blame]
/*
* 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;
}
}