package ome.formats.utests;
import ome.formats.OMEROMetadataStoreClient;
import ome.formats.model.BlitzInstanceProvider;
import ome.util.LSID;
import ome.xml.model.primitives.NonNegativeInteger;
import omero.api.ServiceFactoryPrx;
import omero.model.Plate;
import omero.model.Well;
import junit.framework.TestCase;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
public class WellProcessorTest extends TestCase
{
private OMEROMetadataStoreClient store;
private static final int PLATE_INDEX = 1;
private static final int WELL_INDEX = 1;
@BeforeMethod
protected void setUp() throws Exception
{
ServiceFactoryPrx sf = new TestServiceFactory().proxy();
store = new OMEROMetadataStoreClient();
store.initialize(sf);
store.setEnumerationProvider(new TestEnumerationProvider());
store.setInstanceProvider(
new BlitzInstanceProvider(store.getEnumerationProvider()));
store.setWellColumn(new NonNegativeInteger(0), PLATE_INDEX, WELL_INDEX);
store.setWellColumn(new NonNegativeInteger(1), PLATE_INDEX, WELL_INDEX + 1);
store.setWellColumn(new NonNegativeInteger(0), PLATE_INDEX + 1, WELL_INDEX);
store.setPlateName("setUp Plate", PLATE_INDEX + 1);
}
@Test
public void testWellExists()
{
assertEquals(3, store.countCachedContainers(Well.class, null));
assertEquals(1, store.countCachedContainers(Plate.class, null));
LSID wellLSID1 = new LSID(Well.class, PLATE_INDEX, WELL_INDEX);
LSID wellLSID2 = new LSID(Well.class, PLATE_INDEX, WELL_INDEX + 1);
LSID wellLSID3 = new LSID(Well.class, PLATE_INDEX + 1, WELL_INDEX);
LSID plateLSID1 = new LSID(Plate.class, PLATE_INDEX + 1);
Well well1 = (Well) store.getSourceObject(wellLSID1);
Well well2 = (Well) store.getSourceObject(wellLSID2);
Well well3 = (Well) store.getSourceObject(wellLSID3);
Plate plate1 = (Plate) store.getSourceObject(plateLSID1);
assertNotNull(well1);
assertNotNull(well2);
assertNotNull(well3);
assertNotNull(plate1);
assertEquals(0, well1.getColumn().getValue());
assertEquals(1, well2.getColumn().getValue());
assertEquals(0, well3.getColumn().getValue());
assertEquals("setUp Plate", plate1.getName().getValue());
}
@Test
public void testWellPostProcess()
{
store.postProcess();
assertEquals(3, store.countCachedContainers(Well.class, null));
assertEquals(2, store.countCachedContainers(Plate.class, null));
LSID plateLSID1 = new LSID(Plate.class, PLATE_INDEX);
LSID plateLSID2 = new LSID(Plate.class, PLATE_INDEX + 1);
Plate plate1 = (Plate) store.getSourceObject(plateLSID1);
Plate plate2 = (Plate) store.getSourceObject(plateLSID2);
assertNotNull(plate1);
assertNotNull(plate2);
assertEquals("Plate", plate1.getName().getValue());
assertEquals("setUp Plate", plate2.getName().getValue());
}
}