/* * Copyright 2010 Glencoe Software, Inc. All rights reserved. * Use is subject to license terms supplied in LICENSE.txt */ package integration.delete; import integration.AbstractServerTest; import integration.DeleteServiceTest; import omero.cmd.Delete2; import omero.gateway.util.Requests; import omero.model.Image; import omero.model.Pixels; import omero.sys.ParametersI; import org.testng.annotations.Test; import static org.testng.AssertJUnit.*; /** * Collections of tests for the <code>Delete</code> service. This carries on * from {@link DeleteServiceTest} * * @since 4.2.1 */ @Test(groups = "ticket:2615") public class RelatedToTest extends AbstractServerTest { @Test(groups = { "ticket:1228", "ticket:2776" }) public void testDeleteWithProjectionRemovesRelatedTo() throws Exception { newUserAndGroup("rw----"); Image i1 = (Image) iUpdate.saveAndReturnObject(mmFactory.createImage()); Pixels p1 = i1.getPixels(0); Image i2 = (Image) iUpdate.saveAndReturnObject(mmFactory.createImage()); Pixels p2 = i2.getPixels(0); p2.setRelatedTo(p1); p2 = (Pixels) iUpdate.saveAndReturnObject(p2); assertEquals(p1.getId(), p2.getRelatedTo().getId()); final Delete2 dc = Requests.delete("Image", i1.getId().getValue()); callback(true, client, dc); assertDoesNotExist(i1); assertDoesNotExist(p1); assertExists(i2); assertExists(p2); } /** * Test to control if the related pixels set is to <code>null</code> when * deleted. * * @throws Exception * Thrown if an error occurred. */ @Test(groups = "ticket:2776") public void testPixelsRelatedTo() throws Exception { Image img1 = (Image) iUpdate.saveAndReturnObject(mmFactory .createImage()); Image img2 = (Image) iUpdate.saveAndReturnObject(mmFactory .createImage()); Pixels pixels1 = img1.getPrimaryPixels(); Pixels pixels2 = img2.getPrimaryPixels(); pixels1.setRelatedTo(pixels2); pixels1 = (Pixels) iUpdate.saveAndReturnObject(pixels1); Pixels pixels = pixels1.getRelatedTo(); assertNotNull(pixels); assertEquals(pixels.getId().getValue(), pixels2.getId().getValue()); final Delete2 dc = Requests.delete("Image", img2.getId().getValue()); callback(true, client, dc); String sql = "select i from Image i where i.id = :id"; ParametersI param = new ParametersI(); param.addId(img2.getId().getValue()); assertNull(iQuery.findByQuery(sql, param)); sql = "select i from Pixels i where i.id = :id"; param = new ParametersI(); param.addId(pixels2.getId().getValue()); assertNull(iQuery.findByQuery(sql, param)); sql = "select i from Pixels i where i.id = :id"; param = new ParametersI(); param.addId(pixels1.getId().getValue()); pixels1 = (Pixels) iQuery.findByQuery(sql, param); assertNull(pixels1.getRelatedTo()); } /** * Test to control if the related pixels set is to <code>null</code> when * deleted. * * @throws Exception * Thrown if an error occurred. */ @Test(groups = "ticket:2776") public void testPixelsRelatedToUsingDeleteImage() throws Exception { Image img1 = (Image) iUpdate.saveAndReturnObject(mmFactory .createImage()); Image img2 = (Image) iUpdate.saveAndReturnObject(mmFactory .createImage()); Pixels pixels1 = img1.getPrimaryPixels(); Pixels pixels2 = img2.getPrimaryPixels(); pixels1.setRelatedTo(pixels2); pixels1 = (Pixels) iUpdate.saveAndReturnObject(pixels1); Pixels pixels = pixels1.getRelatedTo(); assertNotNull(pixels); assertEquals(pixels.getId().getValue(), pixels2.getId().getValue()); final Delete2 dc = Requests.delete("Image", img2.getId().getValue()); callback(true, client, dc); String sql = "select i from Image i where i.id = :id"; ParametersI param = new ParametersI(); param.addId(img2.getId().getValue()); assertNull(iQuery.findByQuery(sql, param)); sql = "select i from Pixels i where i.id = :id"; param = new ParametersI(); param.addId(pixels2.getId().getValue()); assertNull(iQuery.findByQuery(sql, param)); sql = "select i from Pixels i where i.id = :id"; param = new ParametersI(); param.addId(pixels1.getId().getValue()); pixels1 = (Pixels) iQuery.findByQuery(sql, param); assertNull(pixels1.getRelatedTo()); } }