Search in sources :

Example 26 with Mock

use of org.mockito.Mock in project dropwizard by dropwizard.

the class HealthCheckManagerTest method shouldNotChangeServerStateWhenNonCriticalHealthCheckRecovers.

@Test
void shouldNotChangeServerStateWhenNonCriticalHealthCheckRecovers() {
    final List<HealthCheckConfiguration> configs = new ArrayList<>();
    final HealthCheckConfiguration nonCriticalConfig = new HealthCheckConfiguration();
    nonCriticalConfig.setName(NAME);
    nonCriticalConfig.setCritical(false);
    nonCriticalConfig.setSchedule(new Schedule());
    configs.add(nonCriticalConfig);
    final HealthCheckConfiguration criticalConfig = new HealthCheckConfiguration();
    criticalConfig.setName(NAME_2);
    criticalConfig.setCritical(true);
    criticalConfig.setSchedule(new Schedule());
    configs.add(criticalConfig);
    final HealthCheckManager manager = new HealthCheckManager(unmodifiableList(configs), scheduler, new MetricRegistry(), SHUTDOWN_WAIT, true, Collections.emptyList());
    final HealthCheck check = mock(HealthCheck.class);
    manager.onHealthCheckAdded(NAME, check);
    manager.onHealthCheckAdded(NAME_2, check);
    manager.onStateChanged(NAME, false);
    manager.onStateChanged(NAME_2, false);
    assertThat(manager.isHealthy()).isFalse();
    manager.onStateChanged(NAME, true);
    assertThat(manager.isHealthy()).isFalse();
    ArgumentCaptor<ScheduledHealthCheck> checkCaptor = ArgumentCaptor.forClass(ScheduledHealthCheck.class);
    ArgumentCaptor<Boolean> healthyCaptor = ArgumentCaptor.forClass(Boolean.class);
    verify(scheduler, times(2)).scheduleInitial(checkCaptor.capture());
    verify(scheduler, times(3)).schedule(checkCaptor.capture(), healthyCaptor.capture());
    assertThat(checkCaptor.getAllValues()).hasSize(5).satisfies(values -> assertThat(values).element(0).satisfies(value -> assertThat(value.getName()).isEqualTo(NAME)).satisfies(value -> assertThat(value.isCritical()).isFalse())).satisfies(values -> assertThat(values).element(1).satisfies(value -> assertThat(value.getName()).isEqualTo(NAME_2)).satisfies(value -> assertThat(value.isCritical()).isTrue())).satisfies(values -> assertThat(values).element(2).satisfies(value -> assertThat(value.getName()).isEqualTo(NAME)).satisfies(value -> assertThat(value.isCritical()).isFalse())).satisfies(values -> assertThat(values).element(3).satisfies(value -> assertThat(value.getName()).isEqualTo(NAME_2)).satisfies(value -> assertThat(value.isCritical()).isTrue())).satisfies(values -> assertThat(values).element(4).satisfies(value -> assertThat(value.getName()).isEqualTo(NAME)).satisfies(value -> assertThat(value.isCritical()).isFalse()));
    assertThat(healthyCaptor.getAllValues()).containsExactly(false, false, true);
}
Also used : Collections.unmodifiableList(java.util.Collections.unmodifiableList) Mock(org.mockito.Mock) Assertions.assertThat(org.assertj.core.api.Assertions.assertThat) LoggerFactory(org.slf4j.LoggerFactory) AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) DisabledOnOs(org.junit.jupiter.api.condition.DisabledOnOs) Duration(io.dropwizard.util.Duration) ArrayList(java.util.ArrayList) Collections.singletonList(java.util.Collections.singletonList) Mockito.verifyNoInteractions(org.mockito.Mockito.verifyNoInteractions) ArgumentCaptor(org.mockito.ArgumentCaptor) ExtendWith(org.junit.jupiter.api.extension.ExtendWith) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) Counter(com.codahale.metrics.Counter) ScheduledExecutorService(java.util.concurrent.ScheduledExecutorService) Collections.singletonMap(java.util.Collections.singletonMap) Maps(io.dropwizard.util.Maps) MockitoExtension(org.mockito.junit.jupiter.MockitoExtension) MetricRegistry(com.codahale.metrics.MetricRegistry) Logger(org.slf4j.Logger) OS(org.junit.jupiter.api.condition.OS) ScheduledThreadPoolExecutor(java.util.concurrent.ScheduledThreadPoolExecutor) Mockito.times(org.mockito.Mockito.times) HealthCheck(com.codahale.metrics.health.HealthCheck) Mockito.when(org.mockito.Mockito.when) Mockito.verify(org.mockito.Mockito.verify) Test(org.junit.jupiter.api.Test) List(java.util.List) Collections(java.util.Collections) Mockito.mock(org.mockito.Mockito.mock) MetricRegistry(com.codahale.metrics.MetricRegistry) ArrayList(java.util.ArrayList) HealthCheck(com.codahale.metrics.health.HealthCheck) AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) Test(org.junit.jupiter.api.Test)

Example 27 with Mock

use of org.mockito.Mock in project dropwizard by dropwizard.

the class HealthCheckManagerTest method shouldMarkServerHealthyWhenCriticalHealthCheckRecovers.

@Test
void shouldMarkServerHealthyWhenCriticalHealthCheckRecovers() {
    final HealthCheckConfiguration config = new HealthCheckConfiguration();
    config.setName(NAME);
    config.setCritical(true);
    config.setSchedule(new Schedule());
    final HealthCheckManager manager = new HealthCheckManager(singletonList(config), scheduler, new MetricRegistry(), SHUTDOWN_WAIT, true, Collections.emptyList());
    final HealthCheck check = mock(HealthCheck.class);
    manager.onHealthCheckAdded(NAME, check);
    manager.onStateChanged(NAME, false);
    assertThat(manager.isHealthy()).isFalse();
    manager.onStateChanged(NAME, true);
    assertThat(manager.isHealthy()).isTrue();
    ArgumentCaptor<ScheduledHealthCheck> checkCaptor = ArgumentCaptor.forClass(ScheduledHealthCheck.class);
    ArgumentCaptor<Boolean> healthyCaptor = ArgumentCaptor.forClass(Boolean.class);
    verify(scheduler).scheduleInitial(checkCaptor.capture());
    verify(scheduler, times(2)).schedule(checkCaptor.capture(), healthyCaptor.capture());
    assertThat(checkCaptor.getAllValues()).hasSize(3).allMatch(value -> NAME.equals(value.getName())).allMatch(ScheduledHealthCheck::isCritical);
    assertThat(healthyCaptor.getAllValues()).containsExactly(false, true);
}
Also used : Collections.unmodifiableList(java.util.Collections.unmodifiableList) Mock(org.mockito.Mock) Assertions.assertThat(org.assertj.core.api.Assertions.assertThat) LoggerFactory(org.slf4j.LoggerFactory) AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) DisabledOnOs(org.junit.jupiter.api.condition.DisabledOnOs) Duration(io.dropwizard.util.Duration) ArrayList(java.util.ArrayList) Collections.singletonList(java.util.Collections.singletonList) Mockito.verifyNoInteractions(org.mockito.Mockito.verifyNoInteractions) ArgumentCaptor(org.mockito.ArgumentCaptor) ExtendWith(org.junit.jupiter.api.extension.ExtendWith) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) Counter(com.codahale.metrics.Counter) ScheduledExecutorService(java.util.concurrent.ScheduledExecutorService) Collections.singletonMap(java.util.Collections.singletonMap) Maps(io.dropwizard.util.Maps) MockitoExtension(org.mockito.junit.jupiter.MockitoExtension) MetricRegistry(com.codahale.metrics.MetricRegistry) Logger(org.slf4j.Logger) OS(org.junit.jupiter.api.condition.OS) ScheduledThreadPoolExecutor(java.util.concurrent.ScheduledThreadPoolExecutor) Mockito.times(org.mockito.Mockito.times) HealthCheck(com.codahale.metrics.health.HealthCheck) Mockito.when(org.mockito.Mockito.when) Mockito.verify(org.mockito.Mockito.verify) Test(org.junit.jupiter.api.Test) List(java.util.List) Collections(java.util.Collections) Mockito.mock(org.mockito.Mockito.mock) MetricRegistry(com.codahale.metrics.MetricRegistry) HealthCheck(com.codahale.metrics.health.HealthCheck) AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) Test(org.junit.jupiter.api.Test)

Example 28 with Mock

use of org.mockito.Mock in project AuthMeReloaded by AuthMe.

the class HasPermissionCheckerTest method shouldShowUsageInfo.

@Test
public void shouldShowUsageInfo() {
    // given
    CommandSender sender = mock(CommandSender.class);
    // when
    hasPermissionChecker.execute(sender, emptyList());
    // then
    ArgumentCaptor<String> msgCaptor = ArgumentCaptor.forClass(String.class);
    verify(sender, atLeast(2)).sendMessage(msgCaptor.capture());
    assertThat(msgCaptor.getAllValues().stream().anyMatch(msg -> msg.contains("/authme debug perm bobby my.perm.node")), equalTo(true));
}
Also used : PermissionNode(fr.xephi.authme.permission.PermissionNode) ClassCollector(fr.xephi.authme.ClassCollector) Mock(org.mockito.Mock) RunWith(org.junit.runner.RunWith) AdminPermission(fr.xephi.authme.permission.AdminPermission) Player(org.bukkit.entity.Player) Assert.assertThat(org.junit.Assert.assertThat) PermissionsManager(fr.xephi.authme.permission.PermissionsManager) ArgumentCaptor(org.mockito.ArgumentCaptor) BDDMockito.given(org.mockito.BDDMockito.given) Arrays.asList(java.util.Arrays.asList) MockitoHamcrest.argThat(org.mockito.hamcrest.MockitoHamcrest.argThat) Mockito.atLeast(org.mockito.Mockito.atLeast) TestHelper(fr.xephi.authme.TestHelper) InjectMocks(org.mockito.InjectMocks) CommandSender(org.bukkit.command.CommandSender) Collections.emptyList(java.util.Collections.emptyList) BukkitService(fr.xephi.authme.service.BukkitService) Test(org.junit.Test) Collectors(java.util.stream.Collectors) Mockito.verify(org.mockito.Mockito.verify) List(java.util.List) Matchers.containsInAnyOrder(org.hamcrest.Matchers.containsInAnyOrder) Matchers.equalTo(org.hamcrest.Matchers.equalTo) MockitoJUnitRunner(org.mockito.junit.MockitoJUnitRunner) Matchers.containsString(org.hamcrest.Matchers.containsString) Mockito.mock(org.mockito.Mockito.mock) CommandSender(org.bukkit.command.CommandSender) Matchers.containsString(org.hamcrest.Matchers.containsString) Test(org.junit.Test)

Example 29 with Mock

use of org.mockito.Mock in project beam by apache.

the class BaseFirestoreV1WriteFnTest method endToEnd_deadlineExceededOnAnIndividualWriteResultsInThrottling.

@Test
public final void endToEnd_deadlineExceededOnAnIndividualWriteResultsInThrottling() throws Exception {
    final long totalDocCount = 1_000_000;
    final int numWorkers = 100;
    final long docCount = totalDocCount / numWorkers;
    LOG.info("docCount = {}", docCount);
    RpcQosOptions options = rpcQosOptions.toBuilder().withHintMaxNumWorkers(numWorkers).withSamplePeriod(Duration.standardMinutes(10)).withReportDiagnosticMetrics().build();
    LOG.debug("options = {}", options);
    FirestoreStatefulComponentFactory ff = mock(FirestoreStatefulComponentFactory.class);
    when(ff.getFirestoreStub(any())).thenReturn(stub);
    Random random = new Random(12345);
    TestClock clock = new TestClock(Instant.EPOCH, Duration.standardSeconds(1));
    Sleeper sleeper = millis -> clock.setNext(advanceClockBy(Duration.millis(millis)));
    RpcQosImpl qos = new RpcQosImpl(options, random, sleeper, metricsFixture.counterFactory, metricsFixture.distributionFactory);
    RpcQos qosSpy = mock(RpcQos.class, invocation -> {
        Method method = invocation.getMethod();
        LOG.debug("method = {}", method);
        Method actualMethod = qos.getClass().getMethod(method.getName(), method.getParameterTypes());
        return actualMethod.invoke(qos, invocation.getArguments());
    });
    when(ff.getRpcQos(options)).thenReturn(qosSpy);
    int defaultDocumentWriteLatency = 30;
    final AtomicLong writeCounter = new AtomicLong();
    when(processContext.element()).thenAnswer(invocation -> newWrite(writeCounter.getAndIncrement()));
    when(callable.call(any())).thenAnswer(new Answer<BatchWriteResponse>() {

        private final Random rand = new Random(84572908);

        private final Instant threshold = Instant.ofEpochMilli(Duration.standardMinutes(20).getMillis());

        @Override
        public BatchWriteResponse answer(InvocationOnMock invocation) throws Throwable {
            BatchWriteRequest request = invocation.getArgument(0, BatchWriteRequest.class);
            LOG.debug("request = {}", request);
            long requestDurationMs = 0;
            BatchWriteResponse.Builder builder = BatchWriteResponse.newBuilder();
            for (Write ignored : request.getWritesList()) {
                builder.addWriteResults(WriteResult.newBuilder().build());
                if (clock.prev.isBefore(threshold)) {
                    requestDurationMs += defaultDocumentWriteLatency;
                    builder.addStatus(STATUS_OK);
                } else {
                    int latency = rand.nextInt(1500);
                    LOG.debug("latency = {}", latency);
                    if (latency > 300) {
                        builder.addStatus(STATUS_DEADLINE_EXCEEDED);
                    } else {
                        builder.addStatus(STATUS_OK);
                    }
                    requestDurationMs += latency;
                }
            }
            clock.setNext(advanceClockBy(Duration.millis(requestDurationMs)));
            return builder.build();
        }
    });
    LOG.info("### parameters: {defaultDocumentWriteLatency: {}, rpcQosOptions: {}}", defaultDocumentWriteLatency, options);
    FnT fn = getFn(clock, ff, options, metricsFixture.counterFactory, metricsFixture.distributionFactory);
    fn.setup();
    fn.startBundle(startBundleContext);
    while (writeCounter.get() < docCount) {
        fn.processElement(processContext, window);
    }
    fn.finishBundle(finishBundleContext);
    LOG.info("writeCounter = {}", writeCounter.get());
    LOG.info("clock.prev = {}", clock.prev);
    MyDistribution qosAdaptiveThrottlerThrottlingMs = metricsFixture.distributions.get("qos_adaptiveThrottler_throttlingMs");
    assertNotNull(qosAdaptiveThrottlerThrottlingMs);
    List<Long> updateInvocations = qosAdaptiveThrottlerThrottlingMs.updateInvocations;
    assertFalse(updateInvocations.isEmpty());
}
Also used : MetricName(org.apache.beam.sdk.metrics.MetricName) BatchWriteRequest(com.google.firestore.v1.BatchWriteRequest) Write(com.google.firestore.v1.Write) ArgumentMatchers.eq(org.mockito.ArgumentMatchers.eq) LoggerFactory(org.slf4j.LoggerFactory) Random(java.util.Random) ImmutableMap(org.apache.beam.vendor.guava.v26_0_jre.com.google.common.collect.ImmutableMap) Element(org.apache.beam.sdk.io.gcp.firestore.RpcQos.RpcWriteAttempt.Element) Mockito.doThrow(org.mockito.Mockito.doThrow) Lists.newArrayList(org.apache.beam.vendor.guava.v26_0_jre.com.google.common.collect.Lists.newArrayList) Mockito.verifyNoMoreInteractions(org.mockito.Mockito.verifyNoMoreInteractions) Map(java.util.Map) Assert.fail(org.junit.Assert.fail) Method(java.lang.reflect.Method) WriteElement(org.apache.beam.sdk.io.gcp.firestore.FirestoreV1WriteFn.WriteElement) WriteResult(com.google.firestore.v1.WriteResult) Mockito.atLeastOnce(org.mockito.Mockito.atLeastOnce) Status(com.google.rpc.Status) Sleeper(org.apache.beam.sdk.util.Sleeper) Mockito.doNothing(org.mockito.Mockito.doNothing) List(java.util.List) Assert.assertFalse(org.junit.Assert.assertFalse) Mockito.mock(org.mockito.Mockito.mock) ArgumentMatchers.any(org.mockito.ArgumentMatchers.any) HasRpcAttemptContext(org.apache.beam.sdk.io.gcp.firestore.FirestoreV1RpcAttemptContexts.HasRpcAttemptContext) RpcWriteAttempt(org.apache.beam.sdk.io.gcp.firestore.RpcQos.RpcWriteAttempt) Mock(org.mockito.Mock) ApiExceptionFactory(com.google.api.gax.rpc.ApiExceptionFactory) Duration(org.joda.time.Duration) HashMap(java.util.HashMap) Function(java.util.function.Function) ArrayList(java.util.ArrayList) Assert.assertSame(org.junit.Assert.assertSame) Answer(org.mockito.stubbing.Answer) InvocationOnMock(org.mockito.invocation.InvocationOnMock) ArgumentCaptor(org.mockito.ArgumentCaptor) FlushBuffer(org.apache.beam.sdk.io.gcp.firestore.RpcQos.RpcWriteAttempt.FlushBuffer) GrpcStatusCode(com.google.api.gax.grpc.GrpcStatusCode) BatchWriteResponse(com.google.firestore.v1.BatchWriteResponse) Code(com.google.rpc.Code) ArgumentMatchers.anyInt(org.mockito.ArgumentMatchers.anyInt) Before(org.junit.Before) DoFn(org.apache.beam.sdk.transforms.DoFn) Logger(org.slf4j.Logger) AdditionalMatchers.gt(org.mockito.AdditionalMatchers.gt) Assert.assertNotNull(org.junit.Assert.assertNotNull) Counter(org.apache.beam.sdk.metrics.Counter) Assert.assertTrue(org.junit.Assert.assertTrue) BaseBatchWriteFn(org.apache.beam.sdk.io.gcp.firestore.FirestoreV1WriteFn.BaseBatchWriteFn) Mockito.times(org.mockito.Mockito.times) IOException(java.io.IOException) FlushBufferImpl(org.apache.beam.sdk.io.gcp.firestore.RpcQosImpl.FlushBufferImpl) Test(org.junit.Test) Mockito.when(org.mockito.Mockito.when) ApiException(com.google.api.gax.rpc.ApiException) Mockito.verify(org.mockito.Mockito.verify) Distribution(org.apache.beam.sdk.metrics.Distribution) UnaryCallable(com.google.api.gax.rpc.UnaryCallable) AtomicLong(java.util.concurrent.atomic.AtomicLong) Mockito.never(org.mockito.Mockito.never) PowerMockito.spy(org.powermock.api.mockito.PowerMockito.spy) FirestoreProtoHelpers.newWrite(org.apache.beam.sdk.io.gcp.firestore.FirestoreProtoHelpers.newWrite) BoundedWindow(org.apache.beam.sdk.transforms.windowing.BoundedWindow) Instant(org.joda.time.Instant) Assert.assertEquals(org.junit.Assert.assertEquals) Write(com.google.firestore.v1.Write) FirestoreProtoHelpers.newWrite(org.apache.beam.sdk.io.gcp.firestore.FirestoreProtoHelpers.newWrite) BatchWriteResponse(com.google.firestore.v1.BatchWriteResponse) Sleeper(org.apache.beam.sdk.util.Sleeper) Random(java.util.Random) BatchWriteRequest(com.google.firestore.v1.BatchWriteRequest) Instant(org.joda.time.Instant) Method(java.lang.reflect.Method) AtomicLong(java.util.concurrent.atomic.AtomicLong) InvocationOnMock(org.mockito.invocation.InvocationOnMock) AtomicLong(java.util.concurrent.atomic.AtomicLong) Test(org.junit.Test)

Example 30 with Mock

use of org.mockito.Mock in project powermock by powermock.

the class AnnotationEnabler method standardInject.

private void standardInject(Object testInstance) throws IllegalAccessException {
    Set<Field> fields = Whitebox.getFieldsAnnotatedWith(testInstance, getMockAnnotations());
    for (Field field : fields) {
        if (field.get(testInstance) != null) {
            continue;
        }
        final Class<?> type = field.getType();
        if (field.isAnnotationPresent(org.mockito.Mock.class)) {
            org.mockito.Mock mockAnnotation = field.getAnnotation(org.mockito.Mock.class);
            MockSettings mockSettings = withSettings();
            Answers answers = mockAnnotation.answer();
            if (answers != null) {
                mockSettings.defaultAnswer(answers);
            }
            Class<?>[] extraInterfaces = mockAnnotation.extraInterfaces();
            if (extraInterfaces != null && extraInterfaces.length > 0) {
                mockSettings.extraInterfaces(extraInterfaces);
            }
            String name = mockAnnotation.name();
            if (name != null && name.length() > 0) {
                mockSettings.name(name);
            }
            field.set(testInstance, mock(type, mockSettings));
        } else {
            field.set(testInstance, mock(type));
        }
    }
}
Also used : Field(java.lang.reflect.Field) Answers(org.mockito.Answers) Mock(org.mockito.Mock) MockSettings(org.mockito.MockSettings)

Aggregations

Mock (org.mockito.Mock)128 Mockito.mock (org.mockito.Mockito.mock)103 Test (org.junit.Test)98 Before (org.junit.Before)90 Mockito.verify (org.mockito.Mockito.verify)84 List (java.util.List)80 Mockito.when (org.mockito.Mockito.when)76 RunWith (org.junit.runner.RunWith)72 ArgumentMatchers.any (org.mockito.ArgumentMatchers.any)60 Collections (java.util.Collections)55 ArrayList (java.util.ArrayList)54 ArgumentCaptor (org.mockito.ArgumentCaptor)51 Mockito.spy (org.mockito.Mockito.spy)45 Arrays (java.util.Arrays)42 Assert.assertEquals (org.junit.Assert.assertEquals)40 Mockito.doReturn (org.mockito.Mockito.doReturn)40 Map (java.util.Map)38 Assertions.assertThat (org.assertj.core.api.Assertions.assertThat)38 ArgumentMatchers.eq (org.mockito.ArgumentMatchers.eq)37 Mockito.times (org.mockito.Mockito.times)36