/*
* Copyright (c) 2010 Mysema Ltd.
* All rights reserved.
*
*/
package com.mysema.rdfbean.object;
import static org.junit.Assert.assertEquals;
import java.util.HashSet;
import java.util.Set;
import org.junit.Before;
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.ontology.Ontology;
public class ConfigurationOntologyTest {
@ClassMapping
public class Entity1 {
}
@ClassMapping
public class Entity2 extends Entity1 {
}
@ClassMapping
public class Entity3 extends Entity2 {
}
private Configuration configuration;
private Ontology ontology;
@Before
public void setUp() {
configuration = new DefaultConfiguration(TEST.NS, Entity1.class, Entity2.class, Entity3.class);
ontology = new ConfigurationOntology(configuration);
}
@Test
public void GetMappedSubtypes() {
MappedClass cl = configuration.getMappedClass(Entity1.class);
assertEquals(getUIDs(Entity1.class, Entity2.class, Entity3.class), ontology.getSubtypes(cl.getUID()));
cl = configuration.getMappedClass(Entity2.class);
assertEquals(getUIDs(Entity2.class, Entity3.class), ontology.getSubtypes(cl.getUID()));
cl = configuration.getMappedClass(Entity3.class);
assertEquals(getUIDs(Entity3.class), ontology.getSubtypes(cl.getUID()));
}
@Test
public void GetMappedSupertypes() {
MappedClass cl = configuration.getMappedClass(Entity3.class);
assertEquals(getUIDs(Entity1.class, Entity2.class), ontology.getSupertypes(cl.getUID()));
cl = configuration.getMappedClass(Entity2.class);
assertEquals(getUIDs(Entity1.class), ontology.getSupertypes(cl.getUID()));
cl = configuration.getMappedClass(Entity1.class);
assertEquals(getUIDs(), ontology.getSupertypes(cl.getUID()));
}
private Set<UID> getUIDs(Class<?>... classes) {
Set<UID> uids = new HashSet<UID>();
for (Class<?> cl : classes) {
uids.add(configuration.getMappedClass(cl).getUID());
}
return uids;
}
}