/*
* Copyright (c) 2010 Mysema Ltd.
* All rights reserved.
*
*/
package com.mysema.rdfbean.object;
import static org.junit.Assert.assertEquals;
import java.io.IOException;
import java.util.Collections;
import org.junit.Test;
import com.mysema.rdfbean.TEST;
import com.mysema.rdfbean.annotations.ClassMapping;
import com.mysema.rdfbean.model.UID;
import com.mysema.rdfbean.owl.OWL;
import com.mysema.rdfbean.owl.TypedList;
public class ConfigurationTest {
@ClassMapping
public class Entity {
}
@Test(expected = IllegalArgumentException.class)
public void invalidPackage() {
new DefaultConfiguration(ConfigurationTest.class.getPackage());
}
@Test(expected = IllegalArgumentException.class)
public void invalidClass() {
new DefaultConfiguration(ConfigurationTest.class);
}
@Test
public void ScanPackages() throws IOException, ClassNotFoundException {
DefaultConfiguration conf1 = new DefaultConfiguration();
conf1.addPackages(OWL.class.getPackage());
conf1.addClasses(TypedList.class);
DefaultConfiguration conf2 = new DefaultConfiguration();
conf2.scanPackages(OWL.class.getPackage());
assertEquals(conf1.getMappedClasses(), conf2.getMappedClasses());
}
// @Test
// public void ScanPackages_from_File() throws IOException,
// ClassNotFoundException{
// ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
// DefaultConfiguration conf = new DefaultConfiguration();
// Set<Class<?>> classes = conf.scanPackage(classLoader,
// CORE.class.getPackage());
// assertFalse(classes.isEmpty());
// assertTrue(classes.contains(OWL.class));
// }
//
// @Test
// public void ScanPackages_from_Jar() throws IOException,
// ClassNotFoundException{
// ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
// DefaultConfiguration conf = new DefaultConfiguration();
// Set<Class<?>> classes = conf.scanPackage(classLoader,
// Query.class.getPackage());
// assertTrue(classes.contains(Projectable.class));
// assertTrue(classes.contains(Expression.class));
// assertFalse(classes.isEmpty());
// }
//
@Test
public void Default_Namespace_Available() {
Configuration configuration = new DefaultConfiguration(TEST.NS, Entity.class);
MappedClass mappedClass = configuration.getMappedClass(Entity.class);
assertEquals(new UID(TEST.NS, Entity.class.getSimpleName()), mappedClass.getUID());
}
@Test(expected = IllegalArgumentException.class)
public void Default_Namespace_Missing() {
Configuration configuration = new DefaultConfiguration(Entity.class);
configuration.getMappedClass(Entity.class);
}
@Test
public void GetMappedClasses_For_Unknown() {
Configuration configuration = new DefaultConfiguration();
assertEquals(Collections.emptyList(), configuration.getMappedClasses(new UID(TEST.NS)));
}
}