blob: 126880fcf39a53c4bc488d9596ecff8e6e0e960e [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-10-02 16:25:00 - initial implementation
package org.eclipse.persistence.testing.oxm.mappings.binarydatacollection.reuse;
import java.net.URL;
import java.util.Stack;
import java.util.Vector;
import org.eclipse.persistence.oxm.NamespaceResolver;
import org.eclipse.persistence.oxm.XMLMarshaller;
import org.eclipse.persistence.testing.oxm.mappings.XMLWithJSONMappingTestCases;
import org.eclipse.persistence.testing.oxm.mappings.binarydatacollection.MyAttachmentMarshaller;
import org.eclipse.persistence.testing.oxm.mappings.binarydatacollection.MyAttachmentUnmarshaller;
public class BinaryDataCollectionReuseTestCases extends XMLWithJSONMappingTestCases {
private final static String XML_RESOURCE = "org/eclipse/persistence/testing/oxm/mappings/binarydatacollection/identifiedbyname/withgroupingelement/BinaryDataCollectionWithGroupElemIdentifiedByNameEmptyNSR.xml";
private final static String JSON_RESOURCE = "org/eclipse/persistence/testing/oxm/mappings/binarydatacollection/identifiedbyname/withgroupingelement/BinaryDataCollectionWithGroupElemIdentifiedByNameEmptyNSR.json";
public BinaryDataCollectionReuseTestCases(String name) throws Exception {
super(name);
setControlDocument(XML_RESOURCE);
setControlJSON(JSON_RESOURCE);
// NSR must be empty
NamespaceResolver namespaceResolver = new NamespaceResolver();
Vector namespaces = new Vector();
namespaceResolver.setNamespaces(namespaces);
setProject(new BinaryDataCollectionReuseProject(namespaceResolver));
}
@Override
protected Object getControlObject() {
return Employee.example1();
}
@Override
public void setUp() throws Exception {
super.setUp();
MyAttachmentUnmarshaller handler = new MyAttachmentUnmarshaller();
handler.attachments.put(MyAttachmentUnmarshaller.ATTACHMENT_TEST_ID,MyAttachmentUnmarshaller.PHOTO_BASE64.getBytes());
xmlUnmarshaller.setAttachmentUnmarshaller(handler);
}
@Override
protected XMLMarshaller createMarshaller() {
XMLMarshaller marshaller = super.createMarshaller();
marshaller.setAttachmentMarshaller(new MyAttachmentMarshaller());
return marshaller;
}
@Override
public void testObjectToContentHandler() throws Exception {
// Override this test method here so that it gets run before testContainerReused.
// A marshal test must occur before any unmarshall tests, because it sets up
// the AttachmentMarshaller.
super.testObjectToContentHandler();
}
public void testContainerReused() throws Exception {
URL url = ClassLoader.getSystemResource(resourceName);
Employee testObject = (Employee) xmlUnmarshaller.unmarshal(url);
assertEquals("This mapping's container was not reused.", Stack.class, testObject.getPhotos().getClass());
}
}