blob: 75d8988bb07f0661dddb330e943a5552c1f036f3 [file] [log] [blame]
/****************************************************************************
* Copyright (c) 2004 Composent, Inc. 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:
* Composent, Inc. - initial API and implementation
*****************************************************************************/
package org.eclipse.ecf.tests.core.identity;
import java.io.ByteArrayOutputStream;
import java.io.NotSerializableException;
import java.io.ObjectOutputStream;
import junit.framework.TestCase;
import org.eclipse.ecf.core.identity.ID;
import org.eclipse.ecf.core.identity.IDCreateException;
import org.eclipse.ecf.core.identity.IDFactory;
import org.eclipse.ecf.core.identity.Namespace;
import org.eclipse.ecf.core.identity.StringID;
public class NamespaceTest extends TestCase {
private static final String DESCRIPTION = "description";
private Namespace fixture;
/*
* (non-Javadoc)
*
* @see junit.framework.TestCase#setUp()
*/
protected void setUp() throws Exception {
super.setUp();
fixture = IDFactory.getDefault().getNamespaceByName(
StringID.class.getName());
assertNotNull(fixture);
}
/*
* (non-Javadoc)
*
* @see junit.framework.TestCase#tearDown()
*/
protected void tearDown() throws Exception {
super.tearDown();
fixture = null;
}
protected Namespace createNamespace() {
Namespace namespace = new Namespace(this.getClass().getName(),
DESCRIPTION) {
private static final long serialVersionUID = 0L;
public ID createInstance(Object[] args) throws IDCreateException {
throw new IDCreateException("can't create instance");
}
public String getScheme() {
return NamespaceTest.this.getClass().getName();
}
public Class[][] getSupportedParameterTypes() {
return new Class[][] { { String.class } };
}
};
return namespace;
}
public void testNamespaceGetScheme() {
String scheme = fixture.getScheme();
assertNotNull(scheme);
}
public void testNamespaceGetName() {
String name = fixture.getName();
assertNotNull(name);
assertTrue(name.equals(StringID.class.getName()));
}
public void testNewNamespaceCreateInstance() {
Namespace ns = createNamespace();
try {
ns.createInstance(null);
fail("createInstance did not return null");
} catch (IDCreateException e) {
}
}
public void testNewNamespaceGetScheme() {
Namespace ns = createNamespace();
String scheme = ns.getScheme();
assertTrue(scheme.equals(this.getClass().getName()));
}
public void testNewNamespaceGetDescription() {
Namespace ns = createNamespace();
String desc = ns.getDescription();
assertTrue(desc.equals(DESCRIPTION));
}
public void testNewNamespaceGetSupportedParameterTypesForCreateInstance() {
Namespace ns = createNamespace();
Class[][] result = ns.getSupportedParameterTypes();
assertTrue(result.length == 1);
assertTrue(result[0][0].equals(String.class));
}
public final void testSerializable() throws Exception {
ByteArrayOutputStream buf = new ByteArrayOutputStream();
ObjectOutputStream out = new ObjectOutputStream(buf);
try {
out.writeObject(fixture);
} catch (NotSerializableException ex) {
fail(ex.getLocalizedMessage());
} finally {
out.close();
}
}
}