All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.mockito.hamcrest.MockitoHamcrest Maven / Gradle / Ivy

package org.mockito.hamcrest;

import org.hamcrest.Matcher;
import org.mockito.internal.hamcrest.HamcrestArgumentMatcher;
import org.mockito.internal.progress.MockingProgress;
import org.mockito.internal.progress.ThreadSafeMockingProgress;
import org.mockito.ArgumentMatcher;

/**
 * Allows matching arguments with hamcrest matchers.
 * Requires hamcrest on classpath,
 * Mockito does not depend on hamcrest!
 * 

* Before implementing or reusing an existing hamcrest matcher please read * how to deal with sophisticated argument matching in {@link ArgumentMatcher}. *

* Mockito 2.0 was decoupled from Hamcrest to avoid version incompatibilities * that have impacted our users in past. Mockito offers a dedicated API to match arguments * via {@link ArgumentMatcher}. * Hamcrest integration is provided so that users can take advantage of existing Hamcrest matchers. * * Example: *

 *     import static org.mockito.hamcrest.MockitoHamcrest.argThat;
 *
 *     //stubbing
 *     when(mock.giveMe(argThat(new MyHamcrestMatcher())));
 *
 *     //verification
 *     verify(mock).giveMe(argThat(new MyHamcrestMatcher()));
 * 
* * @since 2.0 */ public class MockitoHamcrest { private static final MockingProgress MOCKING_PROGRESS = new ThreadSafeMockingProgress(); /** * Allows matching arguments with hamcrest matchers. *

* See examples in javadoc for {@link MockitoHamcrest} class * * @param matcher decides whether argument matches * * @return null or default value for primitive (0, false, etc.) * * @since 2.0 */ public static T argThat(Matcher matcher) { return (T) MOCKING_PROGRESS.getArgumentMatcherStorage() .reportMatcher(new HamcrestArgumentMatcher(matcher)) .returnFor(MatcherGenericTypeExtractor.genericTypeOfMatcher(matcher.getClass())); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy