use of org.opencastproject.util.data.Function in project opencast by opencast.
the class WorkspaceImplTest method testGetNoFilename.
@Test
public void testGetNoFilename() throws Exception {
final File expectedFile = testFolder.newFile("test.txt");
FileUtils.write(expectedFile, "asdf");
expectedFile.deleteOnExit();
WorkingFileRepository repo = EasyMock.createNiceMock(WorkingFileRepository.class);
EasyMock.expect(repo.getBaseUri()).andReturn(new URI("http://localhost:8080/files")).anyTimes();
EasyMock.replay(repo);
workspace.setRepository(repo);
RequestRunner<Either<String, Option<File>>> requestRunner = new TrustedHttpClient.RequestRunner<Either<String, Option<File>>>() {
@Override
public Either<Exception, Either<String, Option<File>>> run(Function<HttpResponse, Either<String, Option<File>>> f) {
Either<String, Option<File>> right = Either.right(Option.some(expectedFile));
return Either.right(right);
}
};
TrustedHttpClient trustedHttpClient = EasyMock.createNiceMock(TrustedHttpClient.class);
EasyMock.expect(trustedHttpClient.<Either<String, Option<File>>>runner(EasyMock.anyObject(HttpUriRequest.class))).andReturn(requestRunner).anyTimes();
EasyMock.replay(trustedHttpClient);
workspace.setTrustedHttpClient(trustedHttpClient);
File resultingFile = workspace.get(URI.create("http://foo.com/myaccount/videos/"));
Assert.assertEquals(expectedFile, resultingFile);
}
use of org.opencastproject.util.data.Function in project opencast by opencast.
the class Functions method addDay.
public static Function<Date, Date> addDay(final int days) {
return new Function<Date, Date>() {
@Override
public Date apply(Date date) {
final Calendar c = Calendar.getInstance();
c.setTimeZone(TimeZone.getTimeZone("UTC"));
c.setTime(date);
c.add(Calendar.DAY_OF_MONTH, days);
return c.getTime();
}
};
}
use of org.opencastproject.util.data.Function in project opencast by opencast.
the class PersistenceUtil method newPersistenceEnvironment.
/**
* Create a new, concurrently usable persistence environment which uses JPA local transactions.
* <p>
* Please note that calling {@link PersistenceEnv#tx(Function)} always creates a <em>new</em> transaction. Transaction
* propagation is <em>not</em> supported.
*/
public static PersistenceEnv newPersistenceEnvironment(final EntityManagerFactory emf) {
return new PersistenceEnv() {
@Override
public <A> A tx(Function<EntityManager, A> transactional) {
EntityManager em = null;
EntityTransaction tx = null;
try {
em = emf.createEntityManager();
tx = em.getTransaction();
tx.begin();
A ret = transactional.apply(em);
tx.commit();
return ret;
} catch (RuntimeException e) {
if (tx.isActive()) {
tx.rollback();
}
// propagate exception
throw (e);
} finally {
if (em != null)
em.close();
}
}
@Override
public void close() {
emf.close();
}
};
}
Aggregations