@Test public void testStore(TestContext context) { UUID fileId = UUID.randomUUID(); Async async = context.async(2); FileMetadata metadata = new FileMetadata(fileId, "name", MimeType.valueOf("text/plain"), 6, Instant.now()); registry.store(metadata).flatMap(v -> { return registry.load(fileId); }).subscribe(loaded -> { context.assertEquals(metadata, loaded); async.complete(); }, context::fail); }
@Override public Single<FileMetadata> store(FileMetadata metadata) { return postgreSQLClient.getConnectionObservable() .toSingle() .flatMap(con -> { return storeInternal(con, metadata) .doAfterTerminate(con::close); }) .map(v -> metadata); }
FileMetadataRegistryOnPostgres implements FileMetadataRegistry { @Override public Single<FileMetadata> store(FileMetadata metadata) { return postgreSQLClient.getConnectionObservable() .toSingle() .flatMap(con -> { return storeInternal(con, metadata) .doAfterTerminate(con::close); }) .map(v -> metadata); } }
FileMetadataRegistryOnPostgres implements FileMetadataRegistry { @Override public Single<FileMetadata> store(FileMetadata metadata) { return postgreSQLClient.getConnectionObservable() .toSingle() .flatMap(con -> { return storeInternal(con, metadata) .doAfterTerminate(con::close); }) .map(v -> metadata); }  }
FileMetadataRegistryOnPostgres implements FileMetadataRegistry { @Override public Single<FileMetadata> store(FileMetadata metadata) { return postgreSQLClient.getConnectionObservable() .toSingle() .flatMap(con -> { return storeInternal(con, metadata) .doAfterTerminate(con::close); }) .map(v -> metadata); }  @Override Observable<FileMetadata> iterate(); @Override Single<FileMetadata> store(FileMetadata metadata); @Override Single<FileMetadata> update(FileMetadata metadata); @Override Single<FileMetadata> load(UUID fileId); @Override Single<UUID> delete(UUID fileId); }
FileMetadataRegistryOnPostgres implements FileMetadataRegistry { @Override public Single<FileMetadata> store(FileMetadata metadata) { return postgreSQLClient.getConnectionObservable() .toSingle() .flatMap(con -> { return storeInternal(con, metadata) .doAfterTerminate(con::close); }) .map(v -> metadata); }  @Override Observable<FileMetadata> iterate(); @Override Single<FileMetadata> store(FileMetadata metadata); @Override Single<FileMetadata> update(FileMetadata metadata); @Override Single<FileMetadata> load(UUID fileId); @Override Single<UUID> delete(UUID fileId);  }