package ecologylab.bigsemantics.metametadata; import java.util.ArrayList; import java.util.Collections; import java.util.List; import org.junit.Assert; import org.junit.Test; import ecologylab.bigsemantics.metametadata.MetaMetadata; import ecologylab.bigsemantics.metametadata.RepositoryOrdering; import ecologylab.bigsemantics.metametadata.RepositoryOrderingByGeneration; /** * * @author quyin */ public class TestRepositoryOrderingByGeneration { @Test public void testOrderingByGeneration() { List<MetaMetadata> mmds = new ArrayList<MetaMetadata>(); mmds.add(mockMmd("metadata", null, null)); mmds.add(mockMmd("n10", "metadata", null)); mmds.add(mockMmd("n11", null, "metadata")); mmds.add(mockMmd("n20", "n10", null)); mmds.add(mockMmd("n21", null, "n10")); Collections.shuffle(mmds); RepositoryOrdering ordering = new RepositoryOrderingByGeneration(); mmds = ordering.orderMetaMetadataForInheritance(mmds); List<String> names = new ArrayList<String>(mmds.size()); for (MetaMetadata mmd : mmds) names.add(mmd.getName()); Assert.assertTrue(names.indexOf("metadata") < names.indexOf("n10")); Assert.assertTrue(names.indexOf("metadata") < names.indexOf("n11")); Assert.assertTrue(names.indexOf("n10") < names.indexOf("n20")); Assert.assertTrue(names.indexOf("n10") < names.indexOf("n21")); } private MetaMetadata mockMmd(String name, String type, String extendsAttribute) { MetaMetadata mockMmd = new MetaMetadata(); mockMmd.setName(name); mockMmd.setType(type); mockMmd.setExtendsAttribute(extendsAttribute); return mockMmd; } }