/* * Copyright 2009 Glencoe Software, Inc. All rights reserved. * Use is subject to license terms supplied in LICENSE.txt */ package ome.services.roi.test; import static omero.rtypes.rlong; import static omero.rtypes.rstring; import static omero.rtypes.rtime; import java.util.Arrays; import java.util.List; import java.util.Map; import omero.api.RoiResult; import omero.constants.namespaces.NSMEASUREMENT; import omero.model.FileAnnotation; import omero.model.FileAnnotationI; import omero.model.Image; import omero.model.ImageAnnotationLink; import omero.model.ImageAnnotationLinkI; import omero.model.ImageI; import omero.model.OriginalFile; import omero.model.OriginalFileI; import omero.model.Plate; import omero.model.PlateI; import omero.model.Roi; import omero.model.RoiAnnotationLink; import omero.model.RoiAnnotationLinkI; import omero.model.Shape; import omero.model.Well; import omero.model.WellI; import omero.model.WellSample; import omero.model.WellSampleI; import org.testng.annotations.Test; /** * */ @Test(groups = { "integration", "rois" }) public class ImageMeasurementsTest extends AbstractRoiITest { Image i; private void setupImage() throws Exception { i = new ImageI(); i.setName(rstring("RoiPerformanceTest")); i = assertSaveAndReturn(i); i.unload(); } @Test public void testMeasurements() throws Exception { setupImage(); Roi roi = createRoi(i, "meas", geomTool.random(1).toArray(new Shape[0])); FileAnnotation fa = new FileAnnotationI(); fa.setNs(rstring(NSMEASUREMENT.value)); OriginalFile file = new OriginalFileI(); file.setName(rstring("meas")); file.setHash(rstring("meas")); file.setPath(rstring("meas")); file.setAtime(rtime(0)); file.setCtime(rtime(0)); file.setMtime(rtime(0)); file.setSize(rlong(0)); file.setMimetype(rstring("OMERO.tables")); fa.setFile(file); fa = assertSaveAndReturn(fa); Plate plate = new PlateI(); plate.setName(rstring("meas")); plate.linkAnnotation(fa); Well well = new WellI(); WellSample sample = new WellSampleI(); sample.setImage(i); well.addWellSample(sample); plate.addWell(well); plate = assertSaveAndReturn(plate); RoiAnnotationLink rlink = new RoiAnnotationLinkI(); ImageAnnotationLink ilink = new ImageAnnotationLinkI(); rlink.link(roi, fa); ilink.link(i, fa); assertSaveAndReturn(rlink); assertSaveAndReturn(ilink); List<FileAnnotation> fas = assertGetImageMeasurements(i.getId().getValue()); assertEquals(fas.toString(), 1, fas.size()); long aid = fas.get(0).getId().getValue(); Map<Long, RoiResult> rv = assertGetMeasuredRoisMap(i.getId().getValue(), Arrays.asList(aid)); assertEquals(1, rv.size()); RoiResult rr = rv.get(aid); assertNotNull(rr); assertEquals(1, rr.rois.size()); } }