/*
* Copyright 2007 Glencoe Software, Inc. All rights reserved.
* Use is subject to license terms supplied in LICENSE.txt
*/
package ome.server.itests.sharing;
import java.util.Arrays;
import java.util.Collections;
import ome.model.IObject;
import ome.model.core.Image;
import ome.model.meta.Share;
import ome.services.sharing.BlobShareStore;
import ome.services.sharing.data.ShareData;
import ome.services.util.Executor;
import ome.system.OmeroContext;
import ome.system.Principal;
import ome.system.ServiceFactory;
import ome.server.itests.AbstractManagedContextTest;
import org.hibernate.Session;
import org.springframework.orm.hibernate3.HibernateTemplate;
import org.springframework.transaction.annotation.Transactional;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
/**
* @author Josh Moore, josh at glencoesoftware.com
* @since 3.0-Beta2
*/
@Test(groups = "sharing")
public class BlobShareStoreIntegrationTest extends AbstractManagedContextTest {
OmeroContext ctx;
BlobShareStore store;
HibernateTemplate ht;
@BeforeMethod
public void setup() throws Exception {
ctx = OmeroContext.getManagedServerContext();
store = new BlobShareStore();
store.setApplicationContext(ctx);
}
@AfterMethod
public void cleanup() throws Exception {
store.close();
}
@Test
public <T extends IObject> void testSimple() {
Executor ex = (Executor) ctx.getBean("executor");
String uuid = (String) ctx.getBean("uuid");
ex.execute(new Principal(uuid), new Executor.SimpleWork(this, "testSimple") {
@Transactional(readOnly = false)
public Object doWork(Session session, ServiceFactory sf) {
store.set(new Share(1L, true), 3L, Collections.<T> emptyList(),
Collections.<Long> emptyList(), Collections
.<String> emptyList(), false);
store.set(new Share(2L, true), 4L, Arrays.asList(new Image(1L, false)),
Arrays.asList(1L, 2L), Arrays.asList("example@example.com"),
true);
ShareData data = store.get(2L);
assertEquals(2L, data.id);
assertEquals("example@example.com", data.guests.get(0));
return null;
}
});
}
// Helpers
// ====================
}