Java 类org.mockito.exceptions.base.MockitoException 实例源码

项目:plugin-id    文件:UserAtomicLdapTaskTest.java   
private void checkAttribute(final Function<UserOrgEditionVo, String> function, final String value) {

        // Check LDAP
        Mockito.verify(task.resource, new DefaultVerificationMode(data -> {
            if (data.getAllInvocations().size() != 2) {
                throw new MockitoException("Expect two calls");
            }

            // "findBy" call
            Assert.assertEquals(DEFAULT_USER, data.getAllInvocations().get(0).getArguments()[0]);

            // "update" call
            final UserOrgEditionVo userLdap = (UserOrgEditionVo) data.getAllInvocations().get(1).getArguments()[0];
            Assert.assertNotNull(userLdap);
            Assert.assertEquals(value, function.apply(userLdap));
        })).update(null);

    }
项目:mockito-cglib    文件:ClassImposterizer.java   
public <T> T imposterise(final MethodInterceptor interceptor, Class<T> mockedType, Class<?>... ancillaryTypes) {
    Class<Factory> proxyClass = null;
    Object proxyInstance = null;
    try {
        setConstructorsAccessible(mockedType, true);
        proxyClass = createProxyClass(mockedType, ancillaryTypes);
        proxyInstance = createProxy(proxyClass, interceptor);
        return mockedType.cast(proxyInstance);
    } catch (ClassCastException cce) {
        throw new MockitoException(join(
            "ClassCastException occurred while creating the mockito proxy :",
            "  class to mock : " + describeClass(mockedType),
            "  created class : " + describeClass(proxyClass),
            "  proxy instance class : " + describeClass(proxyInstance),
            "  instance creation by : " + instantiator.getClass().getSimpleName(),
            "",
            "You might experience classloading issues, disabling the Objenesis cache *might* help (see MockitoConfiguration)"
        ), cce);
    } finally {
        setConstructorsAccessible(mockedType, false);
    }
}
项目:che    文件:ConcurrentCompositeLineConsumerTest.java   
public void verify(VerificationData verificationData) {
  List<Invocation> invocations = verificationData.getAllInvocations();
  InvocationMatcher invocationMatcher = verificationData.getWanted();

  if (invocations == null || invocations.isEmpty()) {
    throw new MockitoException(
        "\nNo interactions with "
            + invocationMatcher.getInvocation().getMock()
            + " mock so far");
  }
  Invocation invocation = invocations.get(invocations.size() - 1);

  if (!invocationMatcher.matches(invocation)) {
    throw new MockitoException("\nWanted but not invoked:\n" + invocationMatcher);
  }
}
项目:astor    文件:FinalMockCandidateFilter.java   
public OngoingInjecter filterCandidate(final Collection<Object> mocks, final Field field, final Object fieldInstance) {
    if(mocks.size() == 1) {
        final Object matchingMock = mocks.iterator().next();

        return new OngoingInjecter() {
            public boolean thenInject() {
                try {
                    if (!new BeanPropertySetter(fieldInstance, field).set(matchingMock)) {
                        new FieldSetter(fieldInstance, field).set(matchingMock);
                    }
                } catch (Exception e) {
                    throw new MockitoException("Problems injecting dependency in " + field.getName(), e);
                }
                return true;
            }
        };
    }

    return new OngoingInjecter() {
        public boolean thenInject() {
            return false;
        }
    };

}
项目:astor    文件:InjectingAnnotationEngine.java   
private static Set<Object> scanMocks(Object testClass, Class<?> clazz) {
    Set<Object> mocks = new HashSet<Object>();
    for (Field field : clazz.getDeclaredFields()) {
        // mock or spies only
        if (null != field.getAnnotation(Spy.class) || null != field.getAnnotation(org.mockito.Mock.class)
                || null != field.getAnnotation(Mock.class)) {
            Object fieldInstance = null;
            boolean wasAccessible = field.isAccessible();
            field.setAccessible(true);
            try {
                fieldInstance = field.get(testClass);
            } catch (IllegalAccessException e) {
                throw new MockitoException("Problems injecting dependencies in " + field.getName(), e);
            } finally {
                field.setAccessible(wasAccessible);
            }
            if (fieldInstance != null) {
                mocks.add(fieldInstance);
            }
        }
    }
    return mocks;
}
项目:astor    文件:MockitoAnnotations.java   
/**
 * Initializes objects annotated with Mockito annotations for given testClass:
 *  &#064;{@link org.mockito.Mock}, &#064;{@link Spy}, &#064;{@link Captor}, &#064;{@link InjectMocks} 
 * <p>
 * See examples in javadoc for {@link MockitoAnnotations} class.
 */
public static void initMocks(Object testClass) {
    if (testClass == null) {
        throw new MockitoException("testClass cannot be null. For info how to use @Mock annotations see examples in javadoc for MockitoAnnotations class");
    }

    AnnotationEngine annotationEngine = new GlobalConfiguration().getAnnotationEngine();
    Class<?> clazz = testClass.getClass();

    //below can be removed later, when we get read rid of deprecated stuff
    if (annotationEngine.getClass() != new DefaultMockitoConfiguration().getAnnotationEngine().getClass()) {
        //this means user has his own annotation engine and we have to respect that.
        //we will do annotation processing the old way so that we are backwards compatible
        while (clazz != Object.class) {
            scanDeprecatedWay(annotationEngine, testClass, clazz);
            clazz = clazz.getSuperclass();
        }
    }

    //anyway act 'the new' way
    annotationEngine.process(testClass.getClass(), testClass);
}
项目:astor    文件:RunnerFactoryTest.java   
@Test
public void
shouldThrowMeaningfulMockitoExceptionIfNoValidJUnitFound()  throws Exception{
    //given
    RunnerProvider provider = new RunnerProvider() {
        public boolean isJUnit45OrHigherAvailable() {
            return false;
        }
        public RunnerImpl newInstance(String runnerClassName, Class<?> constructorParam) throws Exception {
            throw new InitializationError("Where is JUnit, dude?");
        }
    };
    RunnerFactory factory = new RunnerFactory(provider);

    try {
        //when
        factory.create(RunnerFactoryTest.class);
        fail();
    } catch (MockitoException e) {
        //then
        assertContains("upgrade your JUnit version", e.getMessage());
    }
}
项目:astor    文件:DefaultAnnotationEngine.java   
public void process(Class<?> clazz, Object testInstance) {
    Field[] fields = clazz.getDeclaredFields();
    for (Field field : fields) {
        boolean alreadyAssigned = false;
        for(Annotation annotation : field.getAnnotations()) {           
            Object mock = createMockFor(annotation, field);
            if (mock != null) {
                throwIfAlreadyAssigned(field, alreadyAssigned);                    
                alreadyAssigned = true;                    
                try {
                    new FieldSetter(testInstance, field).set(mock);
                } catch (Exception e) {
                    throw new MockitoException("Problems setting field " + field.getName() + " annotated with "
                            + annotation, e);
                }
            }        
        }
    }
}
项目:astor    文件:MockitoAnnotations.java   
@SuppressWarnings("deprecation")
static void processAnnotationDeprecatedWay(AnnotationEngine annotationEngine, Object testClass, Field field) {
    boolean alreadyAssigned = false;
    for(Annotation annotation : field.getAnnotations()) {
        Object mock = annotationEngine.createMockFor(annotation, field);
        if (mock != null) {
            throwIfAlreadyAssigned(field, alreadyAssigned);
            alreadyAssigned = true;                
            try {
                new FieldSetter(testClass, field).set(mock);
            } catch (Exception e) {
                throw new MockitoException("Problems setting field " + field.getName() + " annotated with "
                        + annotation, e);
            }
        }
    }
}
项目:plugin-id    文件:GroupBatchLdapResourceTest.java   
@Test
public void full() throws IOException, InterruptedException {
    final BatchTaskVo<GroupImportEntry> importTask = full("Gfi France;Fonction");

    // Check the result
    final GroupImportEntry importEntry = checkImportTask(importTask);
    Assert.assertEquals("Gfi France", importEntry.getName());
    Assert.assertEquals("Fonction", importEntry.getType());
    Assert.assertNull(importEntry.getDepartment());
    Assert.assertNull(importEntry.getOwner());
    Assert.assertNull(importEntry.getAssistant());
    Assert.assertNull(importEntry.getParent());
    Assert.assertTrue(importEntry.getStatus());
    Assert.assertNull(importEntry.getStatusText());

    // Check LDAP
    Mockito.verify(mockLdapResource, new DefaultVerificationMode(data -> {
        if (data.getAllInvocations().size() != 1) {
            throw new MockitoException("Expect one call");
        }
        final GroupEditionVo group = (GroupEditionVo) data.getAllInvocations().get(0).getArguments()[0];
        Assert.assertNotNull(group);
        Assert.assertEquals("Gfi France", group.getName());
        Assert.assertNotNull(group.getScope());
        Assert.assertTrue(group.getDepartments().isEmpty());
        Assert.assertTrue(group.getOwners().isEmpty());
        Assert.assertTrue(group.getAssistants().isEmpty());
        Assert.assertNull(group.getParent());
    })).create(null);
}
项目:plugin-id    文件:GroupBatchLdapResourceTest.java   
@Test
public void fullFull() throws IOException, InterruptedException {
    final BatchTaskVo<GroupImportEntry> importTask = full("Opérations Spéciales;Fonction;Operations;fdaugan,alongchu;jdoe5,wuser;700301,700302");

    // Check the result
    final GroupImportEntry importEntry = checkImportTask(importTask);
    Assert.assertEquals("Opérations Spéciales", importEntry.getName());
    Assert.assertEquals("Fonction", importEntry.getType());
    Assert.assertEquals("Operations", importEntry.getParent());
    Assert.assertEquals("fdaugan,alongchu", importEntry.getOwner());
    Assert.assertEquals("jdoe5,wuser", importEntry.getAssistant());
    Assert.assertEquals("700301,700302", importEntry.getDepartment());
    Assert.assertTrue(importEntry.getStatus());
    Assert.assertNull(importEntry.getStatusText());

    // Check LDAP
    Mockito.verify(mockLdapResource, new DefaultVerificationMode(data -> {
        if (data.getAllInvocations().size() != 1) {
            throw new MockitoException("Expect one call");
        }
        final GroupEditionVo group = (GroupEditionVo) data.getAllInvocations().get(0).getArguments()[0];
        Assert.assertNotNull(group);
        Assert.assertEquals("Opérations Spéciales", group.getName());
        Assert.assertNotNull(group.getScope());
        Assert.assertEquals(2, group.getOwners().size());
        Assert.assertEquals("fdaugan", group.getOwners().get(0));
        Assert.assertEquals(2, group.getAssistants().size());
        Assert.assertEquals("jdoe5", group.getAssistants().get(0));
        Assert.assertEquals(2, group.getDepartments().size());
        Assert.assertEquals("700301", group.getDepartments().get(0));
        Assert.assertEquals("Operations", group.getParent());
    })).create(null);
}
项目:alexa-skill    文件:CalendarSpeechletIT.java   
@Before
public void setup(){
  mapper = (ObjectMapper) ReflectionTestUtils.getField(SpeechletRequestEnvelope.class, "OBJECT_MAPPER");

  toTestQuery.calendarService = mock(CalendarService.class);

  try{
    toTestBasic.speechService = spy(toTestBasic.speechService);
    toTestQuery.speechService = spy(toTestQuery.speechService);
    toTestNewEvent.speechService = spy(toTestNewEvent.speechService);
  }catch(MockitoException e){
    //don't spy a spy...
  }
}
项目:hashsdn-controller    文件:DistributedEntityOwnershipIntegrationTest.java   
private static Optional<DOMEntityOwnershipChange> getValueSafely(ArgumentCaptor<DOMEntityOwnershipChange> captor) {
    try {
        return Optional.fromNullable(captor.getValue());
    } catch (MockitoException e) {
        // No value was captured
        return Optional.absent();
    }
}
项目:TypeSafeSQL    文件:MockerTest.java   
@Test(expected = MockitoException.class)
public void testExecuteWhenThrowingException() {
    mockToThrowException();
    TestComplex
        .using(expectedConnection, LEAVE_OPEN)
        .withFirstInput(EXPECTED_FIRST_INPUT)
        .withSecondInput(EXPECTED_SECOND_INPUT)
        .execute();
}
项目:TypeSafeSQL    文件:MockerTest.java   
@Test(expected = MockitoException.class)
public void testForEachResultWhenThrowingException() {
    mockToThrowException();
    TestComplex
        .using(expectedConnection, LEAVE_OPEN)
        .withFirstInput(EXPECTED_FIRST_INPUT)
        .withSecondInput(EXPECTED_SECOND_INPUT)
        .forEachResult(item -> {});
}
项目:TypeSafeSQL    文件:MockerTest.java   
@Test(expected = MockitoException.class)
public void testGetFirstResultWhenThrowingException() {
    mockToThrowException();
    TestComplex
        .using(expectedConnection, LEAVE_OPEN)
        .withFirstInput(EXPECTED_FIRST_INPUT)
        .withSecondInput(EXPECTED_SECOND_INPUT)
        .getFirstResult();
}
项目:securemock    文件:ClassImposterizer.java   
public <T> T imposterise(final MethodInterceptor interceptor, Class<T> mockedType, Class<?>... ancillaryTypes) {
    try {
        setConstructorsAccessible(mockedType, true);
        Class<?> proxyClass = createProxyClass(mockedType, ancillaryTypes);
        return mockedType.cast(createProxy(proxyClass, interceptor));
    } catch (ClassCastException cce) {
        throw new MockitoException(join(
            "ClassCastException occurred when creating the proxy.",
            "You might experience classloading issues, disabling the Objenesis cache *might* help (see MockitoConfiguration)"
        ), cce);
    } finally {
        setConstructorsAccessible(mockedType, false);
    }
}
项目:staticmock    文件:Reporter.java   
public static void notAnEnhancedClass() {
    throw new MockitoException(join(
            "Argument passed to initMock() is not an enhanced class!",
            "Example of correct using:",
            "    StaticMockito.enhanceClass(\"package.NamedClass\");"
    ));
}
项目:staticmock    文件:Reporter.java   
public static void notAnInitializeEnhancedClass() {
    throw new MockitoException(join(
            "Argument passed to mocker() is an enhanced class, but not initialized!",
            "Example of correct using:",
            "    StaticMockito.initMock(NamedClass.class);"
    ));
}
项目:powermock    文件:AnnotationEnabler.java   
private Object processAnnotationOn(Captor annotation, Field field) {
    Class<?> type = field.getType();
    if (!ArgumentCaptor.class.isAssignableFrom(type)) {
        throw new MockitoException("@Captor field must be of the type ArgumentCaptor.\n" + "Field: '"
                + field.getName() + "' has wrong type\n"
                + "For info how to use @Captor annotations see examples in javadoc for MockitoAnnotations class.");
    }
    Class cls = new GenericMaster().getGenericType(field);
    return ArgumentCaptor.forClass(cls);
}
项目:TypeSafeSQL    文件:MockerTest.java   
@Test(expected = MockitoException.class)
public void testExecuteWhenThrowingException() {
    mockToThrowException();
    TestComplex
        .using(expectedConnection, LEAVE_OPEN)
        .withFirstInput(EXPECTED_FIRST_INPUT)
        .withSecondInput(EXPECTED_SECOND_INPUT)
        .execute();
}
项目:TypeSafeSQL    文件:MockerTest.java   
@Test(expected = MockitoException.class)
public void testForEachResultWhenThrowingException() {
    mockToThrowException();
    TestComplex
        .using(expectedConnection, LEAVE_OPEN)
        .withFirstInput(EXPECTED_FIRST_INPUT)
        .withSecondInput(EXPECTED_SECOND_INPUT)
        .forEachResult(item -> {});
}
项目:TypeSafeSQL    文件:MockerTest.java   
@Test(expected = MockitoException.class)
public void testGetFirstResultWhenThrowingException() {
    mockToThrowException();
    TestComplex
        .using(expectedConnection, LEAVE_OPEN)
        .withFirstInput(EXPECTED_FIRST_INPUT)
        .withSecondInput(EXPECTED_SECOND_INPUT)
        .getFirstResult();
}
项目:mockito-cglib    文件:CglibMockMaker.java   
private InternalMockHandler cast(MockHandler handler) {
    if (!(handler instanceof InternalMockHandler)) {
        throw new MockitoException("At the moment you cannot provide own implementations of MockHandler." +
                "\nPlease see the javadocs for the MockMaker interface.");
    }
    return (InternalMockHandler) handler;
}
项目:mockito-cglib    文件:ClassImposterizer.java   
private Object createProxy(Class<Factory> proxyClass, final MethodInterceptor interceptor) {
    Factory proxy;
    try {
        proxy = instantiator.newInstance(proxyClass);
    } catch (InstantiationException e) {
        throw new MockitoException("Unable to create mock instance of type '" + proxyClass.getSuperclass().getSimpleName() + "'", e);
    }
    proxy.setCallbacks(new Callback[] {interceptor, SerializableNoOp.SERIALIZABLE_INSTANCE });
    return proxy;
}
项目:nakadi    文件:EventStreamControllerTest.java   
@Test
@SuppressWarnings("unchecked")
public void whenNoParamsThenDefaultsAreUsed() throws Exception {
    final ArgumentCaptor<EventStreamConfig> configCaptor = ArgumentCaptor.forClass(EventStreamConfig.class);

    final EventConsumer.LowLevelConsumer eventConsumerMock = mock(EventConsumer.LowLevelConsumer.class);
    when(topicRepositoryMock.createEventConsumer(
            any(), any()))
            .thenReturn(eventConsumerMock);

    final EventStream eventStreamMock = mock(EventStream.class);
    when(eventStreamFactoryMock.createEventStream(any(), any(), configCaptor.capture(), any()))
            .thenReturn(eventStreamMock);

    when(eventTypeRepository.findByName(TEST_EVENT_TYPE_NAME)).thenReturn(EVENT_TYPE);

    mockMvc.perform(
            get(String.format("/event-types/%s/events", TEST_EVENT_TYPE_NAME))
                    .header("X-nakadi-cursors", "[{\"partition\":\"0\",\"offset\":\"000000000000000000\"}]"))
            .andExpect(status().isOk());

    // we have to retry here as mockMvc exits at the very beginning, before the body starts streaming
    TestUtils.waitFor(() -> {
        final EventStreamConfig actualConfig = configCaptor.getValue();

        assertThat(actualConfig.getBatchLimit(), equalTo(1));
        assertThat(actualConfig.getBatchTimeout(), equalTo(30));
        assertThat(actualConfig.getCursors(),
                equalTo(ImmutableList.of(NakadiCursor.of(timeline, "0", "000000000000000000"))));
        assertThat(actualConfig.getStreamKeepAliveLimit(), equalTo(0));
        assertThat(actualConfig.getStreamLimit(), equalTo(0));
        assertThat(actualConfig.getStreamTimeout(),
                greaterThanOrEqualTo(EventStreamConfig.MAX_STREAM_TIMEOUT - 1200));
        assertThat(actualConfig.getStreamTimeout(),
                lessThanOrEqualTo(EventStreamConfig.MAX_STREAM_TIMEOUT));
    }, 2000, 50, MockitoException.class);
}
项目:astor    文件:AtLeastTest.java   
@Test
public void shouldNotAllowNegativeNumberOfMinimumInvocations() throws Exception {
    try {
        VerificationModeFactory.atLeast(-50);
        fail();
    } catch (MockitoException e) {
        assertEquals("Negative value is not allowed here", e.getMessage());
    }
}
项目:astor    文件:Reporter.java   
public void mocksHaveToBePassedToVerifyNoMoreInteractions() {
    throw new MockitoException(join(
            "Method requires argument(s)!",
            "Pass mocks that should be verified, e.g:",
            "    verifyNoMoreInteractions(mockOne, mockTwo);",
            "    verifyZeroInteractions(mockOne, mockTwo);",
            ""
            ));
}
项目:astor    文件:Reporter.java   
public void mocksHaveToBePassedWhenCreatingInOrder() {
    throw new MockitoException(join(
            "Method requires argument(s)!",
            "Pass mocks that require verification in order.",
            "For example:",
            "    InOrder inOrder = inOrder(mockOne, mockTwo);"
            ));
}
项目:astor    文件:RunnerFactory.java   
public RunnerImpl create(Class<?> klass) throws InvocationTargetException {
    try {
        if (runnerProvider.isJUnit45OrHigherAvailable()) {
            return runnerProvider.newInstance("org.mockito.internal.runners.JUnit45AndHigherRunnerImpl", klass);
        } else {
            return runnerProvider.newInstance("org.mockito.internal.runners.JUnit44RunnerImpl", klass);
        }
    } catch (InvocationTargetException e) {
        if (!new TestMethodsFinder().hasTestMethods(klass)) {
            throw new MockitoException(
                "\n" +
                "\n" +
                "No tests found in " + klass.getSimpleName() + "\n" +
                "Haven't you forgot @Test annotation?\n"
                , e);
        }
        throw e;
    } catch (Throwable t) {
        throw new MockitoException(
                "\n" +
                "\n" +
                "MockitoRunner can only be used with JUnit 4.4 or higher.\n" +
                "You can upgrade your JUnit version or write your own Runner (please consider contributing your runner to the Mockito community).\n" +
                "Bear in mind that you can still enjoy all features of the framework without using runners (they are completely optional).\n" +
                "If you get this error despite using JUnit 4.4 or higher then please report this error to the mockito mailing list.\n"
                , t);
    }
}
项目:astor    文件:CaptorAnnotationUnhappyPathTest.java   
@Test
public void shouldFailIfCaptorHasWrongType() throws Exception {
    try {
        //when
        MockitoAnnotations.initMocks(this);
        fail();
    } catch (MockitoException e) {
        //then
        assertContains("notACaptorField", e.getMessage());
        assertContains("wrong type", e.getMessage());
    }
}
项目:astor    文件:Reporter.java   
public void cannotStubVoidMethodWithAReturnValue(String methodName) {
    throw new MockitoException(join(
            "'" + methodName + "' is a *void method* and it *cannot* be stubbed with a *return value*!",
            "Voids are usually stubbed with Throwables:",
            "    doThrow(exception).when(mock).someVoidMethod();",
            "If the method you are trying to stub is *overloaded* then make sure you are calling the right overloaded version.",
            "This exception might also occur when somewhere in your test you are stubbing *final methods*."
         ));
}
项目:astor    文件:Reporter.java   
public void onlyVoidMethodsCanBeSetToDoNothing() {
    throw new MockitoException(join(
            "Only void methods can doNothing()!",
            "Example of correct use of doNothing():",
            "    doNothing().",
            "    doThrow(new RuntimeException())",
            "    .when(mock).someVoidMethod();",
            "Above means:",
            "someVoidMethod() does nothing the 1st time but throws an exception the 2nd time is called"
         ));
}
项目:astor    文件:VerificationInOrderWithCallsTest.java   
@Test
public void shouldFailToCreateCallsWithNegativeArgument(){
    // Given
    InOrder verifier = inOrder( mockOne );
    exceptionRule.expect( MockitoException.class );
    exceptionRule.expectMessage( "Negative and zero values are not allowed here" );

    // When
    verifier.verify( mockOne, calls(-1)).voidMethod();

    // Then - expected exception thrown
}
项目:astor    文件:Reporter.java   
public void cannotInitializeForSpyAnnotation(String fieldName, Exception details) {
    throw new MockitoException(join("Cannot instantiate a @Spy for '" + fieldName + "' field.",
            "You haven't provided the instance for spying at field declaration so I tried to construct the instance.",
            "However, I failed because: " + details.getMessage(),
            "Examples of correct usage of @Spy:",
            "   @Spy List mock = new LinkedList();",
            "   @Spy Foo foo; //only if Foo has parameterless constructor",
            "   //also, don't forget about MockitoAnnotations.initMocks();",
            ""), details);
}
项目:astor    文件:Reporter.java   
public void mockedTypeIsInconsistentWithSpiedInstanceType(Class<?> mockedType, Object spiedInstance) {
    throw new MockitoException(join(
            "Mocked type must be the same as the type of your spied instance.",
            "Mocked type must be: " + spiedInstance.getClass().getSimpleName() + ", but is: " + mockedType.getSimpleName(),
            "  //correct spying:",
            "  spy = mock( ->ArrayList.class<- , withSettings().spiedInstance( ->new ArrayList()<- );",
            "  //incorrect - types don't match:",
            "  spy = mock( ->List.class<- , withSettings().spiedInstance( ->new ArrayList()<- );"
    ));
}