mirror of https://github.com/dapr/java-sdk.git
Increasing test coverage for DaprClientGrpcAdapter (#94)
This commit is contained in:
parent
80ed8bf0c1
commit
59762ab819
|
|
@ -506,6 +506,376 @@ public class DaprClientGrpcAdapterTest {
|
|||
assertEquals(expectedState, result.block());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getStateObjectValueWithOptionsTest() throws IOException {
|
||||
String etag = "ETag1";
|
||||
String key = "key1";
|
||||
MyObject expectedValue = new MyObject(1, "The Value");
|
||||
StateKeyValue<MyObject> expectedState = buildStateKey(expectedValue, key, etag);
|
||||
DaprProtos.GetStateResponseEnvelope responseEnvelope = DaprProtos.GetStateResponseEnvelope.newBuilder()
|
||||
.setData(getAny(expectedValue))
|
||||
.setEtag(etag)
|
||||
.build();
|
||||
StateKeyValue<MyObject> keyRequest = buildStateKey(null, key, etag);
|
||||
StateOptions options = buildStateOptions(StateOptions.Consistency.STRONG, StateOptions.Concurrency.FIRST_WRITE,
|
||||
Duration.ofDays(100), 1, StateOptions.RetryPolicy.Pattern.LINEAR);
|
||||
SettableFuture<DaprProtos.GetStateResponseEnvelope> settableFuture = SettableFuture.create();
|
||||
MockCallback<DaprProtos.GetStateResponseEnvelope> callback = new MockCallback<>(responseEnvelope);
|
||||
addCallback(settableFuture, callback, directExecutor());
|
||||
when(client.getState(any(io.dapr.DaprProtos.GetStateEnvelope.class)))
|
||||
.thenReturn(settableFuture);
|
||||
Mono<StateKeyValue<MyObject>> result = adater.getState(keyRequest, options, MyObject.class);
|
||||
settableFuture.set(responseEnvelope);
|
||||
assertEquals(expectedState, result.block());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getStateObjectValueWithOptionsNoConcurrencyTest() throws IOException {
|
||||
String etag = "ETag1";
|
||||
String key = "key1";
|
||||
MyObject expectedValue = new MyObject(1, "The Value");
|
||||
StateKeyValue<MyObject> expectedState = buildStateKey(expectedValue, key, etag);
|
||||
DaprProtos.GetStateResponseEnvelope responseEnvelope = DaprProtos.GetStateResponseEnvelope.newBuilder()
|
||||
.setData(getAny(expectedValue))
|
||||
.setEtag(etag)
|
||||
.build();
|
||||
StateKeyValue<MyObject> keyRequest = buildStateKey(null, key, etag);
|
||||
StateOptions options = new StateOptions(null, StateOptions.Concurrency.FIRST_WRITE,
|
||||
new StateOptions.RetryPolicy(Duration.ofDays(100), 1, StateOptions.RetryPolicy.Pattern.LINEAR));
|
||||
SettableFuture<DaprProtos.GetStateResponseEnvelope> settableFuture = SettableFuture.create();
|
||||
MockCallback<DaprProtos.GetStateResponseEnvelope> callback = new MockCallback<>(responseEnvelope);
|
||||
addCallback(settableFuture, callback, directExecutor());
|
||||
when(client.getState(any(io.dapr.DaprProtos.GetStateEnvelope.class)))
|
||||
.thenReturn(settableFuture);
|
||||
Mono<StateKeyValue<MyObject>> result = adater.getState(keyRequest, options, MyObject.class);
|
||||
settableFuture.set(responseEnvelope);
|
||||
assertEquals(expectedState, result.block());
|
||||
}
|
||||
|
||||
@Test(expected = RuntimeException.class)
|
||||
public void deleteStateExceptionThrowTest() {
|
||||
when(client.deleteState(any(io.dapr.DaprProtos.DeleteStateEnvelope.class))).thenThrow(RuntimeException.class);
|
||||
StateKeyValue<String> key = buildStateKey(null, "Key1", "ETag1");
|
||||
Mono<Void> result = adater.deleteState(key, null);
|
||||
result.block();
|
||||
}
|
||||
|
||||
@Test(expected = RuntimeException.class)
|
||||
public void deleteStateCallbackExcpetionThrownTest() {
|
||||
SettableFuture<Empty> settableFuture = SettableFuture.create();
|
||||
RuntimeException ex = new RuntimeException("An Exception");
|
||||
MockCallback<Empty> callback =
|
||||
new MockCallback<Empty>(ex);
|
||||
addCallback(settableFuture, callback, directExecutor());
|
||||
when(client.deleteState(any(io.dapr.DaprProtos.DeleteStateEnvelope.class)))
|
||||
.thenReturn(settableFuture);
|
||||
StateKeyValue<String> key = buildStateKey(null, "Key1", "ETag1");
|
||||
Mono<Void> result = adater.deleteState(key, null);
|
||||
settableFuture.setException(ex);
|
||||
result.block();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void deleteStateNoOptionsTest() {
|
||||
String etag = "ETag1";
|
||||
String key = "key1";
|
||||
SettableFuture<Empty> settableFuture = SettableFuture.create();
|
||||
MockCallback<Empty> callback = new MockCallback<>(Empty.newBuilder().build());
|
||||
addCallback(settableFuture, callback, directExecutor());
|
||||
when(client.deleteState(any(io.dapr.DaprProtos.DeleteStateEnvelope.class)))
|
||||
.thenReturn(settableFuture);
|
||||
StateKeyValue<String> stateKey = buildStateKey(null, key, etag);
|
||||
Mono<Void> result = adater.deleteState(stateKey, null);
|
||||
settableFuture.set(Empty.newBuilder().build());
|
||||
result.block();
|
||||
assertTrue(callback.wasCalled);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void deleteStateTest() {
|
||||
String etag = "ETag1";
|
||||
String key = "key1";
|
||||
SettableFuture<Empty> settableFuture = SettableFuture.create();
|
||||
MockCallback<Empty> callback = new MockCallback<>(Empty.newBuilder().build());
|
||||
addCallback(settableFuture, callback, directExecutor());
|
||||
when(client.deleteState(any(io.dapr.DaprProtos.DeleteStateEnvelope.class)))
|
||||
.thenReturn(settableFuture);
|
||||
StateKeyValue<String> stateKey = buildStateKey(null, key, etag);
|
||||
StateOptions options = buildStateOptions(StateOptions.Consistency.STRONG, StateOptions.Concurrency.FIRST_WRITE,
|
||||
Duration.ofDays(100), 1, StateOptions.RetryPolicy.Pattern.LINEAR);
|
||||
Mono<Void> result = adater.deleteState(stateKey, options);
|
||||
settableFuture.set(Empty.newBuilder().build());
|
||||
result.block();
|
||||
assertTrue(callback.wasCalled);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void deleteStateNoConsistencyTest() {
|
||||
String etag = "ETag1";
|
||||
String key = "key1";
|
||||
SettableFuture<Empty> settableFuture = SettableFuture.create();
|
||||
MockCallback<Empty> callback = new MockCallback<>(Empty.newBuilder().build());
|
||||
addCallback(settableFuture, callback, directExecutor());
|
||||
when(client.deleteState(any(io.dapr.DaprProtos.DeleteStateEnvelope.class)))
|
||||
.thenReturn(settableFuture);
|
||||
StateKeyValue<String> stateKey = buildStateKey(null, key, etag);
|
||||
StateOptions options = buildStateOptions(null, StateOptions.Concurrency.FIRST_WRITE,
|
||||
Duration.ofDays(100), 1, StateOptions.RetryPolicy.Pattern.LINEAR);
|
||||
Mono<Void> result = adater.deleteState(stateKey, options);
|
||||
settableFuture.set(Empty.newBuilder().build());
|
||||
result.block();
|
||||
assertTrue(callback.wasCalled);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void deleteStateNoConcurrencyTest() {
|
||||
String etag = "ETag1";
|
||||
String key = "key1";
|
||||
SettableFuture<Empty> settableFuture = SettableFuture.create();
|
||||
MockCallback<Empty> callback = new MockCallback<>(Empty.newBuilder().build());
|
||||
addCallback(settableFuture, callback, directExecutor());
|
||||
when(client.deleteState(any(io.dapr.DaprProtos.DeleteStateEnvelope.class)))
|
||||
.thenReturn(settableFuture);
|
||||
StateKeyValue<String> stateKey = buildStateKey(null, key, etag);
|
||||
StateOptions options = buildStateOptions(StateOptions.Consistency.STRONG, null,
|
||||
Duration.ofDays(100), 1, StateOptions.RetryPolicy.Pattern.LINEAR);
|
||||
Mono<Void> result = adater.deleteState(stateKey, options);
|
||||
settableFuture.set(Empty.newBuilder().build());
|
||||
result.block();
|
||||
assertTrue(callback.wasCalled);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void deleteStateNoRetryPolicyTest() {
|
||||
String etag = "ETag1";
|
||||
String key = "key1";
|
||||
SettableFuture<Empty> settableFuture = SettableFuture.create();
|
||||
MockCallback<Empty> callback = new MockCallback<>(Empty.newBuilder().build());
|
||||
addCallback(settableFuture, callback, directExecutor());
|
||||
when(client.deleteState(any(io.dapr.DaprProtos.DeleteStateEnvelope.class)))
|
||||
.thenReturn(settableFuture);
|
||||
StateKeyValue<String> stateKey = buildStateKey(null, key, etag);
|
||||
StateOptions options = buildStateOptions(StateOptions.Consistency.STRONG, StateOptions.Concurrency.FIRST_WRITE,
|
||||
null, null, null);
|
||||
Mono<Void> result = adater.deleteState(stateKey, options);
|
||||
settableFuture.set(Empty.newBuilder().build());
|
||||
result.block();
|
||||
assertTrue(callback.wasCalled);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void deleteStateRetryPolicyNoDurationTest() {
|
||||
String etag = "ETag1";
|
||||
String key = "key1";
|
||||
SettableFuture<Empty> settableFuture = SettableFuture.create();
|
||||
MockCallback<Empty> callback = new MockCallback<>(Empty.newBuilder().build());
|
||||
addCallback(settableFuture, callback, directExecutor());
|
||||
when(client.deleteState(any(io.dapr.DaprProtos.DeleteStateEnvelope.class)))
|
||||
.thenReturn(settableFuture);
|
||||
StateKeyValue<String> stateKey = buildStateKey(null, key, etag);
|
||||
StateOptions options = buildStateOptions(StateOptions.Consistency.STRONG, StateOptions.Concurrency.FIRST_WRITE,
|
||||
null, 1, StateOptions.RetryPolicy.Pattern.LINEAR);
|
||||
Mono<Void> result = adater.deleteState(stateKey, options);
|
||||
settableFuture.set(Empty.newBuilder().build());
|
||||
result.block();
|
||||
assertTrue(callback.wasCalled);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void deleteStateRetryPolicyNoThresholdTest() {
|
||||
String etag = "ETag1";
|
||||
String key = "key1";
|
||||
SettableFuture<Empty> settableFuture = SettableFuture.create();
|
||||
MockCallback<Empty> callback = new MockCallback<>(Empty.newBuilder().build());
|
||||
addCallback(settableFuture, callback, directExecutor());
|
||||
when(client.deleteState(any(io.dapr.DaprProtos.DeleteStateEnvelope.class)))
|
||||
.thenReturn(settableFuture);
|
||||
StateKeyValue<String> stateKey = buildStateKey(null, key, etag);
|
||||
StateOptions options = buildStateOptions(StateOptions.Consistency.STRONG, StateOptions.Concurrency.FIRST_WRITE,
|
||||
Duration.ofDays(100), null, StateOptions.RetryPolicy.Pattern.LINEAR);
|
||||
Mono<Void> result = adater.deleteState(stateKey, options);
|
||||
settableFuture.set(Empty.newBuilder().build());
|
||||
result.block();
|
||||
assertTrue(callback.wasCalled);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void deleteStateRetryPolicyNoPatternTest() {
|
||||
String etag = "ETag1";
|
||||
String key = "key1";
|
||||
SettableFuture<Empty> settableFuture = SettableFuture.create();
|
||||
MockCallback<Empty> callback = new MockCallback<>(Empty.newBuilder().build());
|
||||
addCallback(settableFuture, callback, directExecutor());
|
||||
when(client.deleteState(any(io.dapr.DaprProtos.DeleteStateEnvelope.class)))
|
||||
.thenReturn(settableFuture);
|
||||
StateKeyValue<String> stateKey = buildStateKey(null, key, etag);
|
||||
StateOptions options = buildStateOptions(StateOptions.Consistency.STRONG, StateOptions.Concurrency.FIRST_WRITE,
|
||||
Duration.ofDays(100), 1, null);
|
||||
Mono<Void> result = adater.deleteState(stateKey, options);
|
||||
settableFuture.set(Empty.newBuilder().build());
|
||||
result.block();
|
||||
assertTrue(callback.wasCalled);
|
||||
}
|
||||
|
||||
@Test(expected = RuntimeException.class)
|
||||
public void saveStateExceptionThrownTest() {
|
||||
String key = "key1";
|
||||
String etag = "ETag1";
|
||||
String value = "State value";
|
||||
when(client.saveState(any(io.dapr.DaprProtos.SaveStateEnvelope.class))).thenThrow(RuntimeException.class);
|
||||
Mono<Void> result = adater.saveState(key, etag, value, null);
|
||||
result.block();
|
||||
}
|
||||
|
||||
@Test(expected = RuntimeException.class)
|
||||
public void saveStateCallbackExceptionThrownTest() {
|
||||
String key = "key1";
|
||||
String etag = "ETag1";
|
||||
String value = "State value";
|
||||
SettableFuture<Empty> settableFuture = SettableFuture.create();
|
||||
RuntimeException ex = new RuntimeException("An Exception");
|
||||
MockCallback<Empty> callback = new MockCallback<>(ex);
|
||||
addCallback(settableFuture, callback, directExecutor());
|
||||
when(client.saveState(any(io.dapr.DaprProtos.SaveStateEnvelope.class))).thenReturn(settableFuture);
|
||||
Mono<Void> result = adater.saveState(key, etag, value, null);
|
||||
settableFuture.setException(ex);
|
||||
result.block();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void saveStateNoOptionsTest() {
|
||||
String key = "key1";
|
||||
String etag = "ETag1";
|
||||
String value = "State value";
|
||||
SettableFuture<Empty> settableFuture = SettableFuture.create();
|
||||
MockCallback<Empty> callback = new MockCallback<>(Empty.newBuilder().build());
|
||||
addCallback(settableFuture, callback, directExecutor());
|
||||
when(client.saveState(any(io.dapr.DaprProtos.SaveStateEnvelope.class))).thenReturn(settableFuture);
|
||||
Mono<Void> result = adater.saveState(key, etag, value, null);
|
||||
settableFuture.set(Empty.newBuilder().build());
|
||||
result.block();
|
||||
assertTrue(callback.wasCalled);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void saveStateTest() {
|
||||
String key = "key1";
|
||||
String etag = "ETag1";
|
||||
String value = "State value";
|
||||
SettableFuture<Empty> settableFuture = SettableFuture.create();
|
||||
MockCallback<Empty> callback = new MockCallback<>(Empty.newBuilder().build());
|
||||
addCallback(settableFuture, callback, directExecutor());
|
||||
when(client.saveState(any(io.dapr.DaprProtos.SaveStateEnvelope.class))).thenReturn(settableFuture);
|
||||
StateOptions options = buildStateOptions(StateOptions.Consistency.STRONG, StateOptions.Concurrency.FIRST_WRITE,
|
||||
Duration.ofDays(100), 1, StateOptions.RetryPolicy.Pattern.LINEAR);
|
||||
Mono<Void> result = adater.saveState(key, etag, value, options);
|
||||
settableFuture.set(Empty.newBuilder().build());
|
||||
result.block();
|
||||
assertTrue(callback.wasCalled);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void saveStateNoConsistencyTest() {
|
||||
String key = "key1";
|
||||
String etag = "ETag1";
|
||||
String value = "State value";
|
||||
SettableFuture<Empty> settableFuture = SettableFuture.create();
|
||||
MockCallback<Empty> callback = new MockCallback<>(Empty.newBuilder().build());
|
||||
addCallback(settableFuture, callback, directExecutor());
|
||||
when(client.saveState(any(io.dapr.DaprProtos.SaveStateEnvelope.class))).thenReturn(settableFuture);
|
||||
StateOptions options = buildStateOptions(null, StateOptions.Concurrency.FIRST_WRITE,
|
||||
Duration.ofDays(100), 1, StateOptions.RetryPolicy.Pattern.LINEAR);
|
||||
Mono<Void> result = adater.saveState(key, etag, value, options);
|
||||
settableFuture.set(Empty.newBuilder().build());
|
||||
result.block();
|
||||
assertTrue(callback.wasCalled);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void saveStateNoConcurrencyTest() {
|
||||
String key = "key1";
|
||||
String etag = "ETag1";
|
||||
String value = "State value";
|
||||
SettableFuture<Empty> settableFuture = SettableFuture.create();
|
||||
MockCallback<Empty> callback = new MockCallback<>(Empty.newBuilder().build());
|
||||
addCallback(settableFuture, callback, directExecutor());
|
||||
when(client.saveState(any(io.dapr.DaprProtos.SaveStateEnvelope.class))).thenReturn(settableFuture);
|
||||
StateOptions options = buildStateOptions(StateOptions.Consistency.STRONG, null,
|
||||
Duration.ofDays(100), 1, StateOptions.RetryPolicy.Pattern.LINEAR);
|
||||
Mono<Void> result = adater.saveState(key, etag, value, options);
|
||||
settableFuture.set(Empty.newBuilder().build());
|
||||
result.block();
|
||||
assertTrue(callback.wasCalled);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void saveStateNoRetryPolicyTest() {
|
||||
String key = "key1";
|
||||
String etag = "ETag1";
|
||||
String value = "State value";
|
||||
SettableFuture<Empty> settableFuture = SettableFuture.create();
|
||||
MockCallback<Empty> callback = new MockCallback<>(Empty.newBuilder().build());
|
||||
addCallback(settableFuture, callback, directExecutor());
|
||||
when(client.saveState(any(io.dapr.DaprProtos.SaveStateEnvelope.class))).thenReturn(settableFuture);
|
||||
StateOptions options = buildStateOptions(StateOptions.Consistency.STRONG, StateOptions.Concurrency.FIRST_WRITE,
|
||||
null, null, null);
|
||||
Mono<Void> result = adater.saveState(key, etag, value, options);
|
||||
settableFuture.set(Empty.newBuilder().build());
|
||||
result.block();
|
||||
assertTrue(callback.wasCalled);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void saveStateRetryPolicyNoDurationTest() {
|
||||
String key = "key1";
|
||||
String etag = "ETag1";
|
||||
String value = "State value";
|
||||
SettableFuture<Empty> settableFuture = SettableFuture.create();
|
||||
MockCallback<Empty> callback = new MockCallback<>(Empty.newBuilder().build());
|
||||
addCallback(settableFuture, callback, directExecutor());
|
||||
when(client.saveState(any(io.dapr.DaprProtos.SaveStateEnvelope.class))).thenReturn(settableFuture);
|
||||
StateOptions options = buildStateOptions(StateOptions.Consistency.STRONG, StateOptions.Concurrency.FIRST_WRITE,
|
||||
null, 1, StateOptions.RetryPolicy.Pattern.LINEAR);
|
||||
Mono<Void> result = adater.saveState(key, etag, value, options);
|
||||
settableFuture.set(Empty.newBuilder().build());
|
||||
result.block();
|
||||
assertTrue(callback.wasCalled);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void saveStateRetryPolicyNoThresholdTest() {
|
||||
String key = "key1";
|
||||
String etag = "ETag1";
|
||||
String value = "State value";
|
||||
SettableFuture<Empty> settableFuture = SettableFuture.create();
|
||||
MockCallback<Empty> callback = new MockCallback<>(Empty.newBuilder().build());
|
||||
addCallback(settableFuture, callback, directExecutor());
|
||||
when(client.saveState(any(io.dapr.DaprProtos.SaveStateEnvelope.class))).thenReturn(settableFuture);
|
||||
StateOptions options = buildStateOptions(StateOptions.Consistency.STRONG, StateOptions.Concurrency.FIRST_WRITE,
|
||||
Duration.ofDays(100), null, StateOptions.RetryPolicy.Pattern.LINEAR);
|
||||
Mono<Void> result = adater.saveState(key, etag, value, options);
|
||||
settableFuture.set(Empty.newBuilder().build());
|
||||
result.block();
|
||||
assertTrue(callback.wasCalled);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void saveStateRetryPolicyNoPatternTest() {
|
||||
String key = "key1";
|
||||
String etag = "ETag1";
|
||||
String value = "State value";
|
||||
SettableFuture<Empty> settableFuture = SettableFuture.create();
|
||||
MockCallback<Empty> callback = new MockCallback<>(Empty.newBuilder().build());
|
||||
addCallback(settableFuture, callback, directExecutor());
|
||||
when(client.saveState(any(io.dapr.DaprProtos.SaveStateEnvelope.class))).thenReturn(settableFuture);
|
||||
StateOptions options = buildStateOptions(StateOptions.Consistency.STRONG, StateOptions.Concurrency.FIRST_WRITE,
|
||||
Duration.ofDays(100), 1, null);
|
||||
Mono<Void> result = adater.saveState(key, etag, value, options);
|
||||
settableFuture.set(Empty.newBuilder().build());
|
||||
result.block();
|
||||
assertTrue(callback.wasCalled);
|
||||
}
|
||||
|
||||
private <T> StateKeyValue<T> buildStateKey(T value, String key, String etag) {
|
||||
return new StateKeyValue(value, key, etag);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue