/*
* $Id$
*
* Copyright 2006 University of Dundee. All rights reserved.
* Use is subject to license terms supplied in LICENSE.txt
*/
package ome.server.itests.query.pojos;
import java.sql.Timestamp;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import ome.model.IAnnotated;
import ome.model.IObject;
import ome.model.annotations.CommentAnnotation;
import ome.model.core.Image;
import ome.parameters.Parameters;
import ome.server.itests.AbstractManagedContextTest;
import ome.services.query.PojosFindAnnotationsQueryDefinition;
import ome.testing.CreatePojosFixture;
import org.testng.annotations.Test;
/**
* Copying {@link FindAnnotationsQueryTest} in order to do things manually and
* without {@link CreatePojosFixture}, since it is currently broken.
*
* @author josh
*
*/
@Test
public class FindAnnotationsQuery2Test extends AbstractManagedContextTest {
PojosFindAnnotationsQueryDefinition q;
List list;
Set ids;
public void testFindImageAnnotationsReturnsEventTimes() throws Exception {
/*
Image i = new Image();
i.setName("ticket:172");
CommentAnnotation a = new CommentAnnotation();
a.setNs("");
a.setTextValue("ticket:172");
i.linkAnnotation(a);
i = iUpdate.saveAndReturnObject(i);
ids = new HashSet(Arrays.asList(i.getId()));
q = new PojosFindAnnotationsQueryDefinition(new Parameters()
.addIds(ids).addOptions(null).addClass(Image.class).addSet(
"annotatorIds", Collections.emptySet()));
Collection<IAnnotated> results = (Collection) iQuery.execute(q);
assertTrue(results.size() > 0);
for (IAnnotated annotated : results) {
assertNotNull(annotated.getDetails().getCreationEvent().getTime());
assertNotNull(annotated.getDetails().getUpdateEvent().getTime());
assertNotNull(annotated.linkedAnnotationList().get(0).getDetails()
.getCreationEvent().getTime());
assertNotNullOrUnloaded(annotated.linkedAnnotationList().get(0)
.getDetails().getOwner());
// assertNotNull(annotated.linkedAnnotationList().get(0).getDetails()
// .getUpdateEvent().getTime());
}
*/
}
public void testSameTestAgainstIContainer() throws Exception {
/*
testFindImageAnnotationsReturnsEventTimes();
Map<Long, Set<IObject>> map = this.iContainer.findAnnotations(Image.class,
ids, Collections.<Long> emptySet(), null);
assertTrue(map.size() > 0);
Annotation ann = (Annotation) map.values().iterator().next().iterator()
.next();
assertNotNull(ann.getDetails().getCreationEvent());
assertTrue(ann.getDetails().getCreationEvent().isLoaded());
assertNotNullOrUnloaded(ann.getDetails().getOwner());
*/
}
@Test(groups = "ticket:884")
public void testFindImageAnnotationsWithOwnerIds() throws Exception {
Image i = new Image();
i.setName("ticket:172");
CommentAnnotation a = new CommentAnnotation();
a.setNs("");
a.setTextValue("ticket:172");
i.linkAnnotation(a);
i = iUpdate.saveAndReturnObject(i);
long user = iAdmin.getEventContext().getCurrentUserId();
ids = new HashSet(Arrays.asList(i.getId()));
q = new PojosFindAnnotationsQueryDefinition(new Parameters()
.addIds(ids).addClass(Image.class).addSet(
"annotatorIds", Collections.singleton(user)));
Collection<IAnnotated> results = (Collection) iQuery.execute(q);
assertTrue(results.size() > 0);
for (IAnnotated annotated : results) {
assertNotNull(annotated.getDetails().getCreationEvent().getTime());
assertNotNull(annotated.getDetails().getUpdateEvent().getTime());
assertNotNull(annotated.linkedAnnotationList().get(0).getDetails()
.getCreationEvent().getTime());
assertNotNullOrUnloaded(annotated.linkedAnnotationList().get(0)
.getDetails().getOwner());
// assertNotNull(annotated.linkedAnnotationList().get(0).getDetails()
// .getUpdateEvent().getTime());
}
}
// Helpers
void assertNotNullOrUnloaded(IObject obj) {
assertNotNull(obj);
assertTrue(obj.isLoaded());
}
}