package tap.metadata; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import org.junit.Test; import tap.metadata.TAPTable.TableType; public class TestTAPMetadata { @Test public void testGetObsCoreTable(){ TAPMetadata metadata = new TAPMetadata(); // CASE: no IVOA schema: assertNull(metadata.getObsCoreTable()); // CASE: empty IVOA schema: TAPSchema ivoaSchema = new TAPSchema("ivoa"); metadata.addSchema(ivoaSchema); assertNull(metadata.getObsCoreTable()); // CASE: with ObsCore table as defined in the ObsCore's IVOA standard: TAPTable obscore = new TAPTable("ObsCore"); ivoaSchema.addTable(obscore); assertNotNull(metadata.getObsCoreTable()); assertEquals("ivoa.ObsCore", metadata.getObsCoreTable().getFullName()); // CASE: with "obscore" (all lower-case): obscore = new TAPTable("obscore", TableType.view); ivoaSchema.removeAllTables(); ivoaSchema.addTable(obscore); assertNotNull(metadata.getObsCoreTable()); assertEquals("ivoa.obscore", metadata.getObsCoreTable().getFullName()); // CASE: ObsCore table BUT in a different schema: metadata.removeAllSchemas(); TAPSchema differentSchema = new TAPSchema("different"); metadata.addSchema(differentSchema); differentSchema.addTable("ObsCore"); assertNull(metadata.getObsCoreTable()); } }