use of com.couchbase.client.core.msg.kv.InsertRequest in project couchbase-jvm-clients by couchbase.
the class ObserveIntegrationTest method performInsert.
/**
* Helper method to write a new document which can then be observed.
*
* @param id the document id.
* @return returns the response to use for observe.
*/
private InsertResponse performInsert(final String id) {
byte[] content = "hello, world".getBytes(UTF_8);
InsertRequest insertRequest = new InsertRequest(id, content, 0, 0, env.timeoutConfig().kvTimeout(), core.context(), cid, env.retryStrategy(), Optional.empty(), null);
core.send(insertRequest);
InsertResponse insertResponse;
try {
insertResponse = insertRequest.response().get();
} catch (Exception e) {
throw new RuntimeException(e);
}
assertTrue(insertResponse.status().success());
assertTrue(insertResponse.cas() != 0);
return insertResponse;
}
use of com.couchbase.client.core.msg.kv.InsertRequest in project couchbase-jvm-clients by couchbase.
the class TransportEncryptionIntegrationTest method runKeyValueOperation.
private void runKeyValueOperation(Core core, CoreEnvironment env) throws Exception {
String id = UUID.randomUUID().toString();
byte[] content = "hello, world".getBytes(UTF_8);
InsertRequest insertRequest = new InsertRequest(id, content, 0, 0, kvTimeout, core.context(), CollectionIdentifier.fromDefault(config().bucketname()), env.retryStrategy(), Optional.empty(), null);
core.send(insertRequest);
InsertResponse insertResponse = insertRequest.response().get();
assertTrue(insertResponse.status().success());
GetRequest getRequest = new GetRequest(id, kvTimeout, core.context(), CollectionIdentifier.fromDefault(config().bucketname()), env.retryStrategy(), null);
core.send(getRequest);
GetResponse getResponse = getRequest.response().get();
assertTrue(getResponse.status().success());
assertArrayEquals(content, getResponse.content());
assertTrue(getResponse.cas() != 0);
}
use of com.couchbase.client.core.msg.kv.InsertRequest in project couchbase-jvm-clients by couchbase.
the class KeyValueIntegrationTest method shortCircuitCollectionsIfNotAvailable.
@Test
@IgnoreWhen(hasCapabilities = { Capabilities.COLLECTIONS })
void shortCircuitCollectionsIfNotAvailable() {
String id = UUID.randomUUID().toString();
byte[] content = "hello, world".getBytes(UTF_8);
InsertRequest insertRequest = new InsertRequest(id, content, 0, 0, kvTimeout, core.context(), new CollectionIdentifier(config().bucketname(), Optional.of(CollectionIdentifier.DEFAULT_SCOPE), Optional.of("my_collection_name")), env.retryStrategy(), Optional.empty(), null);
core.send(insertRequest);
ExecutionException exception = assertThrows(ExecutionException.class, () -> insertRequest.response().get());
assertTrue(exception.getCause() instanceof FeatureNotAvailableException);
InsertRequest insertRequest2 = new InsertRequest(id, content, 0, 0, kvTimeout, core.context(), new CollectionIdentifier(config().bucketname(), Optional.of("my_custom_scope"), Optional.of(CollectionIdentifier.DEFAULT_COLLECTION)), env.retryStrategy(), Optional.empty(), null);
core.send(insertRequest2);
exception = assertThrows(ExecutionException.class, () -> insertRequest2.response().get());
assertTrue(exception.getCause() instanceof FeatureNotAvailableException);
}
use of com.couchbase.client.core.msg.kv.InsertRequest in project couchbase-jvm-clients by couchbase.
the class MutationTokenIntegrationTest method tokenOnDecrement.
@Test
void tokenOnDecrement() throws Exception {
String id = UUID.randomUUID().toString();
byte[] content = "10".getBytes(UTF_8);
InsertRequest insertRequest = new InsertRequest(id, content, 0, 0, kvTimeout, core.context(), collectionIdentifier, env.retryStrategy(), Optional.empty(), null);
core.send(insertRequest);
InsertResponse insertResponse = insertRequest.response().get();
assertTrue(insertResponse.status().success());
assertMutationToken(insertResponse.mutationToken());
DecrementRequest decrementRequest = new DecrementRequest(kvTimeout, core.context(), collectionIdentifier, env.retryStrategy(), id, 1, Optional.empty(), 0, Optional.empty(), null);
core.send(decrementRequest);
DecrementResponse decrementResponse = decrementRequest.response().get();
assertTrue(decrementResponse.status().success());
assertMutationToken(decrementResponse.mutationToken());
}
use of com.couchbase.client.core.msg.kv.InsertRequest in project couchbase-jvm-clients by couchbase.
the class ReactiveCollection method insert.
/**
* Inserts a full document which does not exist yet with custom options.
*
* @param id the document id to insert.
* @param content the document content to insert.
* @param options custom options to customize the insert behavior.
* @return a {@link Mono} completing once inserted or failed.
*/
public Mono<MutationResult> insert(final String id, Object content, final InsertOptions options) {
return Mono.defer(() -> {
notNull(options, "InsertOptions", () -> ReducedKeyValueErrorContext.create(id, asyncCollection.collectionIdentifier()));
InsertOptions.Built opts = options.build();
InsertRequest request = asyncCollection.insertRequest(id, content, opts);
return Reactor.wrap(request, InsertAccessor.insert(core, request, id, opts.persistTo(), opts.replicateTo()), true);
});
}
Aggregations