package ome.formats.utests;
import ome.formats.OMEROMetadataStoreClient;
import ome.formats.model.BlitzInstanceProvider;
import ome.units.UNITS;
import ome.units.quantity.Time;
import ome.util.LSID;
import ome.xml.model.primitives.NonNegativeInteger;
import omero.api.ServiceFactoryPrx;
import omero.model.PlaneInfo;
import junit.framework.TestCase;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
public class PlaneInfoProcessorTest extends TestCase
{
private OMEROMetadataStoreClient store;
private static final int IMAGE_INDEX = 1;
private static final int PLANE_INFO_INDEX = 1;
@BeforeMethod
protected void setUp() throws Exception
{
Time onesec = new Time(1, UNITS.S);
ServiceFactoryPrx sf = new TestServiceFactory().proxy();
store = new OMEROMetadataStoreClient();
store.initialize(sf);
store.setEnumerationProvider(new TestEnumerationProvider());
store.setInstanceProvider(
new BlitzInstanceProvider(store.getEnumerationProvider()));
store.setPlaneTheC(new NonNegativeInteger(0), IMAGE_INDEX, PLANE_INFO_INDEX);
store.setPlaneTheZ(new NonNegativeInteger(0), IMAGE_INDEX, PLANE_INFO_INDEX);
store.setPlaneTheT(new NonNegativeInteger(0), IMAGE_INDEX, PLANE_INFO_INDEX);
store.setPlaneTheC(new NonNegativeInteger(1), IMAGE_INDEX, PLANE_INFO_INDEX + 1);
store.setPlaneTheZ(new NonNegativeInteger(1), IMAGE_INDEX, PLANE_INFO_INDEX + 1);
store.setPlaneTheT(new NonNegativeInteger(1), IMAGE_INDEX, PLANE_INFO_INDEX + 1);
store.setPlaneTheC(new NonNegativeInteger(2), IMAGE_INDEX, PLANE_INFO_INDEX + 2);
store.setPlaneTheZ(new NonNegativeInteger(2), IMAGE_INDEX, PLANE_INFO_INDEX + 2);
store.setPlaneTheT(new NonNegativeInteger(2), IMAGE_INDEX, PLANE_INFO_INDEX + 2);
store.setPlaneDeltaT(onesec, IMAGE_INDEX, PLANE_INFO_INDEX +2);
}
@Test
public void testPlaneInfoExists()
{
assertEquals(3, store.countCachedContainers(PlaneInfo.class, null));
LSID planeInfoLSID1 = new LSID(PlaneInfo.class, IMAGE_INDEX, PLANE_INFO_INDEX);
LSID planeInfoLSID2 = new LSID(PlaneInfo.class, IMAGE_INDEX, PLANE_INFO_INDEX + 1);
LSID planeInfoLSID3 = new LSID(PlaneInfo.class, IMAGE_INDEX, PLANE_INFO_INDEX + 2);
PlaneInfo pi1 = (PlaneInfo) store.getSourceObject(planeInfoLSID1);
PlaneInfo pi2 = (PlaneInfo) store.getSourceObject(planeInfoLSID2);
PlaneInfo pi3 = (PlaneInfo) store.getSourceObject(planeInfoLSID3);
assertNotNull(pi1);
assertNotNull(pi2);
assertNotNull(pi3);
assertEquals(0, pi1.getTheC().getValue());
assertEquals(0, pi1.getTheZ().getValue());
assertEquals(0, pi1.getTheT().getValue());
assertEquals(1, pi2.getTheC().getValue());
assertEquals(1, pi2.getTheZ().getValue());
assertEquals(1, pi2.getTheT().getValue());
assertEquals(2, pi3.getTheC().getValue());
assertEquals(2, pi3.getTheZ().getValue());
assertEquals(2, pi3.getTheT().getValue());
assertEquals(1.0, pi3.getDeltaT().getValue());
}
@Test
public void testPlaneInfoCleanup()
{
store.postProcess();
assertEquals(1, store.countCachedContainers(PlaneInfo.class, null));
LSID planeInfoLSID = new LSID(PlaneInfo.class, IMAGE_INDEX, PLANE_INFO_INDEX + 2);
PlaneInfo pi = (PlaneInfo) store.getSourceObject(planeInfoLSID);
assertNotNull(pi);
assertEquals(2, pi.getTheC().getValue());
assertEquals(2, pi.getTheZ().getValue());
assertEquals(2, pi.getTheT().getValue());
assertEquals(1.0, pi.getDeltaT().getValue());
}
}