Merge branch '2.1.x' into 2.2.x

Closes gh-19313
This commit is contained in:
Madhura Bhave 2019-12-05 12:03:50 -08:00
commit ed571bab24

View File

@ -17,6 +17,7 @@
package org.springframework.boot.actuate.endpoint.invoker.cache;
import java.security.Principal;
import java.time.Duration;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
@ -49,6 +50,8 @@ import static org.mockito.Mockito.verifyNoMoreInteractions;
*/
class CachingOperationInvokerTests {
private static final long CACHE_TTL = Duration.ofHours(1).toMillis();
@Test
void createInstanceWithTtlSetToZero() {
assertThatIllegalArgumentException()
@ -74,7 +77,7 @@ class CachingOperationInvokerTests {
MonoOperationInvoker.invocations = 0;
MonoOperationInvoker target = new MonoOperationInvoker();
InvocationContext context = new InvocationContext(mock(SecurityContext.class), Collections.emptyMap());
CachingOperationInvoker invoker = new CachingOperationInvoker(target, 500L);
CachingOperationInvoker invoker = new CachingOperationInvoker(target, CACHE_TTL);
Object response = ((Mono<?>) invoker.invoke(context)).block();
Object cachedResponse = ((Mono<?>) invoker.invoke(context)).block();
assertThat(MonoOperationInvoker.invocations).isEqualTo(1);
@ -86,7 +89,7 @@ class CachingOperationInvokerTests {
FluxOperationInvoker.invocations = 0;
FluxOperationInvoker target = new FluxOperationInvoker();
InvocationContext context = new InvocationContext(mock(SecurityContext.class), Collections.emptyMap());
CachingOperationInvoker invoker = new CachingOperationInvoker(target, 500L);
CachingOperationInvoker invoker = new CachingOperationInvoker(target, CACHE_TTL);
Object response = ((Flux<?>) invoker.invoke(context)).blockLast();
Object cachedResponse = ((Flux<?>) invoker.invoke(context)).blockLast();
assertThat(FluxOperationInvoker.invocations).isEqualTo(1);
@ -98,7 +101,7 @@ class CachingOperationInvokerTests {
Object expected = new Object();
InvocationContext context = new InvocationContext(mock(SecurityContext.class), parameters);
given(target.invoke(context)).willReturn(expected);
CachingOperationInvoker invoker = new CachingOperationInvoker(target, 500L);
CachingOperationInvoker invoker = new CachingOperationInvoker(target, CACHE_TTL);
Object response = invoker.invoke(context);
assertThat(response).isSameAs(expected);
verify(target, times(1)).invoke(context);
@ -115,7 +118,7 @@ class CachingOperationInvokerTests {
parameters.put("something", null);
InvocationContext context = new InvocationContext(mock(SecurityContext.class), parameters);
given(target.invoke(context)).willReturn(new Object());
CachingOperationInvoker invoker = new CachingOperationInvoker(target, 500L);
CachingOperationInvoker invoker = new CachingOperationInvoker(target, CACHE_TTL);
invoker.invoke(context);
invoker.invoke(context);
invoker.invoke(context);
@ -130,7 +133,7 @@ class CachingOperationInvokerTests {
given(securityContext.getPrincipal()).willReturn(mock(Principal.class));
InvocationContext context = new InvocationContext(securityContext, parameters);
given(target.invoke(context)).willReturn(new Object());
CachingOperationInvoker invoker = new CachingOperationInvoker(target, 500L);
CachingOperationInvoker invoker = new CachingOperationInvoker(target, CACHE_TTL);
invoker.invoke(context);
invoker.invoke(context);
invoker.invoke(context);
@ -164,7 +167,7 @@ class CachingOperationInvokerTests {
Collections.emptyMap());
given(target.invoke(contextV2)).willReturn(expectedV2);
given(target.invoke(contextV3)).willReturn(expectedV3);
CachingOperationInvoker invoker = new CachingOperationInvoker(target, 500L);
CachingOperationInvoker invoker = new CachingOperationInvoker(target, CACHE_TTL);
Object response = invoker.invoke(contextV2);
assertThat(response).isSameAs(expectedV2);
verify(target, times(1)).invoke(contextV2);