/** * Copyright (c) 2002-2007 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM - Initial API and implementation */ package org.eclipse.emf.test.xml.xmi; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import junit.framework.Test; import junit.framework.TestCase; import junit.framework.TestSuite; import org.eclipse.emf.common.util.URI; import org.eclipse.emf.ecore.resource.Resource; import org.eclipse.emf.ecore.resource.ResourceSet; import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; import org.eclipse.emf.ecore.xmi.impl.XMLResourceFactoryImpl; import org.eclipse.emf.test.models.library.Book; import org.eclipse.emf.test.models.library.LibraryFactory; import org.eclipse.emf.test.models.library.LibraryPackage; import org.eclipse.emf.test.models.library.Writer; /** * XMI tests: loading and serializing library model with cross resource references * @see <a href="data/library.mdl">data/library.mdl</a> * @see <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=77423">Bugzilla 77423</a> */ public class CrossResourceReferencesTest extends TestCase { public CrossResourceReferencesTest(String name) { super(name); } public static Test suite() { TestSuite ts = new TestSuite("CrossResourceReferencesTest"); ts.addTestSuite(CrossResourceReferencesTest.class); return ts; } public void testHREF() throws Exception { ResourceSet rs = new ResourceSetImpl(); LibraryPackage.eINSTANCE.getName(); LibraryFactory libFactory = LibraryFactory.eINSTANCE; Book b = libFactory.createBook(); b.setTitle("Eclipse Modeling Framework"); Writer w = libFactory.createWriter(); w.setName("Frank Budinsky"); b.setAuthor(w); rs.getResourceFactoryRegistry().getExtensionToFactoryMap().put("xml", new XMLResourceFactoryImpl()); Resource r = rs.createResource(URI.createURI("books.xml")); r.getContents().add(b); Resource r2 = rs.createResource(URI.createURI("writers.xml")); r2.getContents().add(w); ByteArrayOutputStream outputstream1 = new ByteArrayOutputStream(2064); ByteArrayOutputStream outputstream2 = new ByteArrayOutputStream(2064); r.save(outputstream1, null); r2.save(outputstream2, null); r.unload(); r2.unload(); r.load(new ByteArrayInputStream(outputstream1.toByteArray()), null); r2.load(new ByteArrayInputStream(outputstream2.toByteArray()), null); } }