public static MockingDetails mockingDetails(final Object toInspect) { return AccessController.doPrivileged(new PrivilegedAction<MockingDetails>() { @Override public MockingDetails run() { return org.mockito.Mockito.mockingDetails(toInspect); } }); }
@Test public void testProcessOpErrReconnectConditions() throws Exception { Options opts = spy(new Options.Builder(Nats.defaultOptions()).build()); try (ConnectionImpl c = spy(new ConnectionImpl(opts))) { ScheduledExecutorService mockExec = mock(ScheduledExecutorService.class); doReturn(mockExec).when(c).createScheduler(); doReturn(true).when(mockExec).awaitTermination(10, TimeUnit.SECONDS); c.setup(); doReturn(false).when(c).connecting(); assertFalse(c.connecting()); doReturn(false).when(c).closed(); assertFalse(c.closed()); doReturn(false).when(c).reconnecting(); assertFalse(c.reconnecting()); MockingDetails details = Mockito.mockingDetails(c); ConnectionImpl realConn = (ConnectionImpl) details.getMockCreationSettings().getSpiedInstance(); ConnectionAccessor.setState(realConn, DISCONNECTED); IOException err = mock(IOException.class); c.processOpError(err); verify(opts, times(1)).isReconnectAllowed(); verify(c, times(1)).processDisconnect(); verify(c, times(1)).setLastError(err); verify(c).close(); // Test for TCP conn == null ConnectionAccessor.setState(realConn, CONNECTED); c.setTcpConnection(null); } }
@Test public void testRibbonLoadBalancingHttpClient() { RibbonCommandContext context = new RibbonCommandContext("foo"," GET", "http://localhost", false, new LinkedMultiValueMap<>(), new LinkedMultiValueMap<>(), null, new ArrayList<>(), 0l); HttpClientRibbonCommand command = httpClientRibbonCommandFactory.create(context); RibbonLoadBalancingHttpClient ribbonClient = command.getClient(); CloseableHttpClient httpClient = getField(ribbonClient, "delegate"); MockingDetails httpClientDetails = mockingDetails(httpClient); assertTrue(httpClientDetails.isMock()); }
@Test public void testOkHttpLoadBalancingHttpClient() { RibbonCommandContext context = new RibbonCommandContext("foo", " GET", "http://localhost", false, new LinkedMultiValueMap<>(), new LinkedMultiValueMap<>(), null, new ArrayList<>(), 0l); OkHttpRibbonCommand command = okHttpRibbonCommandFactory.create(context); OkHttpLoadBalancingClient ribbonClient = command.getClient(); OkHttpClient httpClient = getField(ribbonClient, "delegate"); MockingDetails httpClientDetails = mockingDetails(httpClient); assertTrue(httpClientDetails.isMock()); }
@Test public void testHttpClientWithFeign() { Client delegate = feignClient.getDelegate(); assertTrue(feign.okhttp.OkHttpClient.class.isInstance(delegate)); feign.okhttp.OkHttpClient okHttpClient = (feign.okhttp.OkHttpClient)delegate; OkHttpClient httpClient = getField(okHttpClient, "delegate"); MockingDetails httpClientDetails = mockingDetails(httpClient); assertTrue(httpClientDetails.isMock()); }
@Test public void testHttpClientWithFeign() { Client delegate = feignClient.getDelegate(); assertTrue(ApacheHttpClient.class.isInstance(delegate)); ApacheHttpClient apacheHttpClient = (ApacheHttpClient)delegate; HttpClient httpClient = getField(apacheHttpClient, "client"); MockingDetails httpClientDetails = mockingDetails(httpClient); assertTrue(httpClientDetails.isMock()); }
/** * Delegates call to {@link Mockito#mockingDetails(Object)}. */ default MockingDetails mockingDetails(Object toInspect) { return Mockito.mockingDetails(toInspect); }
private boolean isMock(Object objectoInspect) { MockingDetails mockingDetails = Mockito.mockingDetails(objectoInspect); return mockingDetails.isMock() && !mockingDetails.isSpy(); }
public MockingDetails mockingDetails(Object toInspect) { return new DefaultMockingDetails(toInspect, new MockUtil()); }
@Test public void testHttpClientSimpleHostRoutingFilter() { CloseableHttpClient httpClient = getField(simpleHostRoutingFilter, "httpClient"); MockingDetails httpClientDetails = mockingDetails(httpClient); assertTrue(httpClientDetails.isMock()); }
/** * This method intercepts all calls to object and returns if available a * serialized object from the cache in the test directory. If not available * the normal flow is executed and the result is cached for further calls. * * All parameters and return values must be serializable. * * You can supply a list of methods that should be cached. If none is * supplied all methods of the class including super classes will be * intercepted. * * @param object * the object to spy on * @param methodsToCache * list of methods which should be cached * @return the object wrapped in a spy */ public static <T> T cachingSpy(T object, Method[] methodsToCache) { MockingDetails mockingDetails = Mockito.mockingDetails(object); if (mockingDetails.isMock() || mockingDetails.isSpy()) { throw new IllegalArgumentException("The object that you supplied " + object + " is already a mock." + " Please create a new one."); } @SuppressWarnings("unchecked") Class<T> clazz = (Class<T>) object.getClass(); T spiedObject = mock(clazz, withSettings().spiedInstance(object) .defaultAnswer(CACHING_SPY_ANSWERS)); addMethodsToSpiedAndCachedMethods(methodsToCache, clazz, spiedObject); return spiedObject; }
/** * Delegate call to public static org.mockito.MockingDetails org.mockito.Mockito.mockingDetails(java.lang.Object) * {@link org.mockito.Mockito#mockingDetails(java.lang.Object)} */ default MockingDetails mockingDetails(Object toInspect) { return Mockito.mockingDetails(toInspect); }
/** * Delegate call to public static org.mockito.MockingDetails org.mockito.Mockito.mockingDetails(java.lang.Object) * {@link org.mockito.Mockito#mockingDetails(java.lang.Object)} */ default MockingDetails mockingDetails(Object toInspect) { return org.mockito.Mockito.mockingDetails(toInspect); }