/*
* Copyright 2009 Glencoe Software, Inc. All rights reserved.
* Use is subject to license terms supplied in LICENSE.txt
*/
package ome.services.blitz.test;
import static omero.rtypes.rstring;
import java.util.List;
import ome.model.annotations.ProjectAnnotationLink;
import ome.parameters.Filter;
import ome.parameters.Parameters;
import omero.ApiUsageException;
import omero.api.AMD_IUpdate_deleteObject;
import omero.model.Annotation;
import omero.model.CommentAnnotationI;
import omero.model.Dataset;
import omero.model.DatasetI;
import omero.model.IObject;
import omero.model.ImageI;
import omero.model.Project;
import omero.model.ProjectI;
import omero.sys.ParametersI;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
@Test(groups = "integration")
public class UpdateITest extends AbstractServantTest {
@Override
@BeforeMethod
protected void setUp() throws Exception {
super.setUp();
}
@Test(groups = "ticket:1183")
public void testProjectWithAnnotationCausesError() throws Exception {
Project p = new ProjectI();
p.setName(rstring("ticket:1183"));
p.linkAnnotation(new CommentAnnotationI());
p = (Project) assertSaveAndReturn(p);
}
public void testQueryWithSelect() throws Exception {
Project p = new ProjectI();
p.setName(rstring(""));
Dataset d = new DatasetI();
d.setName(rstring(""));
p.linkDataset(d);
assertSaveAndReturn(p);
List<IObject> objects = assertFindByQuery(
"from Project p join fetch p.datasetLinks pdl "
+ "join fetch pdl.child ", null);
for (IObject object : objects) {
assertTrue(object instanceof Project);
}
}
@Test(expectedExceptions = ApiUsageException.class)
public void testNPEOnMissingQuotes() throws Exception {
Project p = new ProjectI();
p.setName(rstring(""));
assertSaveAndReturn(p);
List<IObject> objects = assertFindByQuery(
"from Project p where p.name = foo ", null);
for (IObject object : objects) {
assertTrue(object instanceof Project);
}
}
@Test(groups = "ticket:1193")
public void testNullDetails() throws Exception {
Project prj = new ProjectI();
prj.setName(rstring("1193"));
Annotation a = new CommentAnnotationI();
prj.linkAnnotation(a);
assertSaveAndReturn(prj);
String q = "select pal from ProjectAnnotationLink pal join fetch pal.child";
Parameters param = new Parameters(new Filter().page(0, 2));
List<ProjectAnnotationLink> pals = user.managedSf.getQueryService()
.findAllByQuery(q, param);
assertNotNull(pals.get(0).getDetails());
omero.sys.Parameters p = new ParametersI().page(0, 2);
List<IObject> objects = assertFindByQuery(q, p);
assertNotNull(objects.get(0).getDetails());
}
@Test(groups = "ticket:587", expectedExceptions = ApiUsageException.class)
public void testDeleteImageNotPixels() throws Exception {
final long iid = makeImage();
final RV rv = new RV();
user.update.deleteObject_async(new AMD_IUpdate_deleteObject() {
public void ice_response() {
rv.rv = Boolean.TRUE;
}
public void ice_exception(Exception ex) {
rv.ex = ex;
}
}, new ImageI(iid, false), current("deleteObject"));
assertNull(rv.rv);
assertNotNull(rv.ex);
throw rv.ex;
}
}