/* * $Id$ * * Copyright 2006 University of Dundee. All rights reserved. * Use is subject to license terms supplied in LICENSE.txt */ package ome.server.itests; import ome.model.ILink; import ome.model.annotations.CommentAnnotation; import ome.model.annotations.TextAnnotation; import ome.model.core.Image; import ome.parameters.Parameters; import org.testng.annotations.Test; /** */ @Test(groups = { "counts", "integration", "views" }) public class CountTest extends AbstractManagedContextTest { @Test public void testQueryWithCounts() throws Exception { long self = iAdmin.getEventContext().getCurrentUserId(); Image i = new_Image("counts"); i = iUpdate.saveAndReturnObject(i); i = loadImageWithAnnotationCounts(i); assertNotNull(i.getAnnotationLinksCountPerOwner()); assertNull(i.getAnnotationLinksCountPerOwner().get(self)); TextAnnotation ta = new CommentAnnotation(); ta.setNs(""); ta.setTextValue("counts"); ILink link = i.linkAnnotation(ta); iUpdate.saveObject(link); i = loadImageWithAnnotationCounts(i); assertNotNull(i.getAnnotationLinksCountPerOwner()); assertTrue(i.getAnnotationLinksCountPerOwner().get(self).equals(1L)); // Attempting to edit them i.getAnnotationLinksCountPerOwner().put(self, 1000000L); i = loadImageWithAnnotationCounts(i); assertTrue(i.getAnnotationLinksCountPerOwner().get(self).equals(1L)); } private Image loadImageWithAnnotationCounts(Image i) { i = iQuery.findByQuery("select i from Image i " + "left outer join fetch i.annotationLinks l " + "left outer join fetch l.child " + "left outer join fetch i.annotationLinksCountPerOwner " + "where i.id = :id", new Parameters().addId(i.getId())); return i; } }