/*
* $Id$
*
* Copyright 2008 Glencoe Software, Inc. All rights reserved.
* Use is subject to license terms supplied in LICENSE.txt
*/
package ome.services.blitz.test.mock;
import java.io.File;
import ome.model.core.OriginalFile;
import ome.model.internal.Permissions;
import ome.services.blitz.fire.Registry;
import ome.services.blitz.repo.PublicRepositoryI;
import ome.services.blitz.repo.RepositoryDaoImpl;
import ome.services.blitz.repo.TemporaryRepositoryI;
import ome.services.blitz.repo.path.FilePathRestrictionInstance;
import ome.services.util.Executor;
import ome.system.Principal;
import ome.testing.MockServiceFactory;
import ome.util.checksum.ChecksumProviderFactory;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.filefilter.FileFilterUtils;
import org.jmock.Mock;
import org.jmock.MockObjectTestCase;
import org.jmock.core.Invocation;
import org.jmock.core.Stub;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import Ice.ObjectAdapter;
/**
*
*/
public class TemporaryRepositoryTest extends MockObjectTestCase {
MockFixture fixture;
ObjectAdapter oa;
Registry reg;
ChecksumProviderFactory cpf;
@BeforeClass(groups = "integration")
public void setup() throws Exception {
fixture = new MockFixture(this, "OMERO.mock");
oa = fixture.blitz.getBlitzAdapter();
// reg = fixture.blitz.getRegistry();
Mock mockReg = mock(Registry.class);
reg = (Registry) mockReg.proxy();
mockReg.expects(atLeastOnce()).method("addObject");
Mock mockCpf = mock(ChecksumProviderFactory.class);
cpf = (ChecksumProviderFactory) mockCpf.proxy();
mockCpf.expects(atLeastOnce()).method("getProvider()");
}
@Test(groups = "integration")
public void testSimple() throws Exception {
final OriginalFile repo = new OriginalFile();
repo.setId(1L);
repo.getDetails().setPermissions(Permissions.WORLD_IMMUTABLE);
final MockServiceFactory sf = new MockServiceFactory();
sf.mockConfig = fixture.mock("mock-ome.api.IConfig");
sf.mockConfig.expects(once()).method("getDatabaseUuid").will(
returnValue("mock-db-uuid"));
sf.mockUpdate = fixture.mock("mock-ome.api.IUpdate");
sf.mockUpdate.expects(once()).method("saveAndReturnObject").will(
returnValue(repo));
sf.mockQuery = fixture.mock("mock-ome.api.IQuery");
sf.mockQuery.expects(once()).method("findByString").will(
returnValue(repo));
sf.mockQuery.expects(once()).method("findByQuery").will(
returnValue(repo));
Principal p = new Principal("session");
TemporaryRepositoryI tr = new TemporaryRepositoryI(oa, reg, fixture.ex,
p, new PublicRepositoryI(new RepositoryDaoImpl(p, fixture.ex),
cpf, null, FilePathRestrictionInstance.UNIX_REQUIRED.name));
fixture.mock("executorMock").expects(atLeastOnce()).method("execute")
.will(new Stub() {
public Object invoke(Invocation arg0) throws Throwable {
return ((Executor.Work) arg0.parameterValues.get(1))
.doWork(null, sf);
}
public StringBuffer describeTo(StringBuffer arg0) {
arg0.append(" calls doWork");
return arg0;
}
});
assertTrue(tr.takeover());
assertNotNull(tr.getDescription());
}
@Test(groups = "integration")
public void testFileUtils() throws Exception {
String tmpPath = System.getProperty("java.io.tmpdir");
File tmpDir = new File(tmpPath).getAbsoluteFile();
tmpDir.list();
System.out.println(FileUtils.listFiles(tmpDir, FileFilterUtils
.fileFileFilter(), FileFilterUtils.falseFileFilter()));
}
}