package com.lordofthejars.nosqlunit.couchbase; import com.couchbase.client.java.Bucket; import com.lordofthejars.nosqlunit.core.AbstractNoSqlTestRule; import com.lordofthejars.nosqlunit.core.DatabaseOperation; public class CouchbaseRule extends AbstractNoSqlTestRule { private static final String EXTENSION = "json"; private DatabaseOperation<Bucket> databaseOperation; public CouchbaseRule(final CouchbaseConfiguration configuration) { super(configuration.getConnectionIdentifier()); databaseOperation = new CouchbaseOperation(configuration.getBucket()); } public CouchbaseRule(final CouchbaseConfiguration configuration, final Object target) { super(configuration.getConnectionIdentifier()); setTarget(target); databaseOperation = new CouchbaseOperation(configuration.getBucket()); } @Override public DatabaseOperation getDatabaseOperation() { return databaseOperation; } @Override public String getWorkingExtension() { return EXTENSION; } @Override public void close() { databaseOperation.connectionManager().close(); } public static CouchbaseRule defaultRemoteCouchbase(final String bucketName) { final CouchbaseConfiguration configuration = RemoteCouchbaseConfigurationBuilder.Builder .start() .bucketName(bucketName) .build(); return new CouchbaseRule(configuration); } }