diff --git a/src/main/java/org/mockito/internal/MockedConstructionImpl.java b/src/main/java/org/mockito/internal/MockedConstructionImpl.java index 5541ba07cd..e54849ceb0 100644 --- a/src/main/java/org/mockito/internal/MockedConstructionImpl.java +++ b/src/main/java/org/mockito/internal/MockedConstructionImpl.java @@ -11,7 +11,7 @@ import org.mockito.MockedConstruction; import org.mockito.exceptions.base.MockitoException; -import org.mockito.internal.debugging.LocationFactory; +import org.mockito.internal.configuration.plugins.Plugins; import org.mockito.invocation.Location; import org.mockito.plugins.MockMaker; @@ -21,7 +21,7 @@ public final class MockedConstructionImpl implements MockedConstruction { private boolean closed; - private final Location location = LocationFactory.create(); + private final Location location = Plugins.getLocationFactory().create(); protected MockedConstructionImpl(MockMaker.ConstructionMockControl control) { this.control = control; diff --git a/src/main/java/org/mockito/internal/MockedStaticImpl.java b/src/main/java/org/mockito/internal/MockedStaticImpl.java index f6705fb81a..5e2dd72c58 100644 --- a/src/main/java/org/mockito/internal/MockedStaticImpl.java +++ b/src/main/java/org/mockito/internal/MockedStaticImpl.java @@ -17,7 +17,7 @@ import org.mockito.Mockito; import org.mockito.exceptions.base.MockitoAssertionError; import org.mockito.exceptions.base.MockitoException; -import org.mockito.internal.debugging.LocationFactory; +import org.mockito.internal.configuration.plugins.Plugins; import org.mockito.internal.listeners.VerificationStartedNotifier; import org.mockito.internal.progress.MockingProgress; import org.mockito.internal.stubbing.InvocationContainerImpl; @@ -35,7 +35,7 @@ public final class MockedStaticImpl implements MockedStatic { private boolean closed; - private final Location location = LocationFactory.create(); + private final Location location = Plugins.getLocationFactory().create(); protected MockedStaticImpl(MockMaker.StaticMockControl control) { this.control = control; diff --git a/src/main/java/org/mockito/internal/configuration/plugins/DefaultMockitoPlugins.java b/src/main/java/org/mockito/internal/configuration/plugins/DefaultMockitoPlugins.java index 365c350e93..3534915756 100644 --- a/src/main/java/org/mockito/internal/configuration/plugins/DefaultMockitoPlugins.java +++ b/src/main/java/org/mockito/internal/configuration/plugins/DefaultMockitoPlugins.java @@ -13,6 +13,7 @@ import org.mockito.plugins.AnnotationEngine; import org.mockito.plugins.DoNotMockEnforcer; import org.mockito.plugins.InstantiatorProvider2; +import org.mockito.plugins.LocationFactory; import org.mockito.plugins.MemberAccessor; import org.mockito.plugins.MockMaker; import org.mockito.plugins.MockitoLogger; @@ -63,6 +64,9 @@ public class DefaultMockitoPlugins implements MockitoPlugins { DEFAULT_PLUGINS.put( DoNotMockEnforcer.class.getName(), "org.mockito.internal.configuration.DefaultDoNotMockEnforcer"); + DEFAULT_PLUGINS.put( + LocationFactory.class.getName(), + "org.mockito.internal.debugging.DefaultLocationFactory"); MOCK_MAKER_ALIASES.add(INLINE_ALIAS); MOCK_MAKER_ALIASES.add(PROXY_ALIAS); diff --git a/src/main/java/org/mockito/internal/configuration/plugins/PluginRegistry.java b/src/main/java/org/mockito/internal/configuration/plugins/PluginRegistry.java index 72f5d8e7d5..f037ca8f3a 100644 --- a/src/main/java/org/mockito/internal/configuration/plugins/PluginRegistry.java +++ b/src/main/java/org/mockito/internal/configuration/plugins/PluginRegistry.java @@ -8,6 +8,7 @@ import org.mockito.plugins.AnnotationEngine; import org.mockito.plugins.DoNotMockEnforcer; import org.mockito.plugins.InstantiatorProvider2; +import org.mockito.plugins.LocationFactory; import org.mockito.plugins.MemberAccessor; import org.mockito.plugins.MockMaker; import org.mockito.plugins.MockResolver; @@ -49,6 +50,9 @@ class PluginRegistry { private final DoNotMockEnforcer doNotMockEnforcer = new PluginLoader(pluginSwitch).loadPlugin(DoNotMockEnforcer.class); + private final LocationFactory locationFactory = + new PluginLoader(pluginSwitch).loadPlugin(LocationFactory.class); + PluginRegistry() { instantiatorProvider = new PluginLoader(pluginSwitch).loadPlugin(InstantiatorProvider2.class); @@ -123,6 +127,16 @@ DoNotMockEnforcer getDoNotMockEnforcer() { return doNotMockEnforcer; } + /** + * Returns the location factory available for the current runtime. + * + *

Returns {@link org.mockito.internal.debugging.DefaultLocationFactory} if no + * {@link LocationFactory} extension exists or is visible in the current classpath.

+ */ + LocationFactory getLocationFactory() { + return locationFactory; + } + /** * Returns a list of available mock resolvers if any. * diff --git a/src/main/java/org/mockito/internal/configuration/plugins/Plugins.java b/src/main/java/org/mockito/internal/configuration/plugins/Plugins.java index 20f6dc7bc6..db6f43bb91 100644 --- a/src/main/java/org/mockito/internal/configuration/plugins/Plugins.java +++ b/src/main/java/org/mockito/internal/configuration/plugins/Plugins.java @@ -9,6 +9,7 @@ import org.mockito.plugins.AnnotationEngine; import org.mockito.plugins.DoNotMockEnforcer; import org.mockito.plugins.InstantiatorProvider2; +import org.mockito.plugins.LocationFactory; import org.mockito.plugins.MemberAccessor; import org.mockito.plugins.MockMaker; import org.mockito.plugins.MockResolver; @@ -105,5 +106,15 @@ public static DoNotMockEnforcer getDoNotMockEnforcer() { return registry.getDoNotMockEnforcer(); } + /** + * Returns the {@link LocationFactory} available for the current runtime. + * + *

Returns {@link org.mockito.internal.debugging.DefaultLocationFactory} if no + * {@link LocationFactory} extension exists or is visible in the current classpath.

+ */ + public static LocationFactory getLocationFactory() { + return registry.getLocationFactory(); + } + private Plugins() {} } diff --git a/src/main/java/org/mockito/internal/creation/bytebuddy/MockMethodAdvice.java b/src/main/java/org/mockito/internal/creation/bytebuddy/MockMethodAdvice.java index 245917671b..4ed5546148 100644 --- a/src/main/java/org/mockito/internal/creation/bytebuddy/MockMethodAdvice.java +++ b/src/main/java/org/mockito/internal/creation/bytebuddy/MockMethodAdvice.java @@ -51,7 +51,6 @@ import org.mockito.exceptions.base.MockitoException; import org.mockito.internal.configuration.plugins.Plugins; import org.mockito.internal.creation.bytebuddy.inject.MockMethodDispatcher; -import org.mockito.internal.debugging.LocationFactory; import org.mockito.internal.exceptions.stacktrace.ConditionalStackTraceFilter; import org.mockito.internal.invocation.RealMethod; import org.mockito.internal.invocation.SerializableMethod; @@ -132,7 +131,11 @@ public Callable handle(Object instance, Method origin, Object[] arguments) th } return new ReturnValueWrapper( interceptor.doIntercept( - instance, origin, arguments, realMethod, LocationFactory.create(true))); + instance, + origin, + arguments, + realMethod, + Plugins.getLocationFactory().create(true))); } @Override @@ -150,7 +153,7 @@ public Callable handleStatic(Class type, Method origin, Object[] arguments origin, arguments, new StaticMethodCall(selfCallInfo, type, origin, arguments), - LocationFactory.create(true))); + Plugins.getLocationFactory().create(true))); } @Override diff --git a/src/main/java/org/mockito/internal/creation/bytebuddy/MockMethodInterceptor.java b/src/main/java/org/mockito/internal/creation/bytebuddy/MockMethodInterceptor.java index 406dea39a5..94f1ff290d 100644 --- a/src/main/java/org/mockito/internal/creation/bytebuddy/MockMethodInterceptor.java +++ b/src/main/java/org/mockito/internal/creation/bytebuddy/MockMethodInterceptor.java @@ -22,7 +22,7 @@ import net.bytebuddy.implementation.bind.annotation.StubValue; import net.bytebuddy.implementation.bind.annotation.SuperCall; import net.bytebuddy.implementation.bind.annotation.This; -import org.mockito.internal.debugging.LocationFactory; +import org.mockito.internal.configuration.plugins.Plugins; import org.mockito.internal.invocation.RealMethod; import org.mockito.invocation.Location; import org.mockito.invocation.MockHandler; @@ -53,7 +53,8 @@ private void readObject(ObjectInputStream stream) throws IOException, ClassNotFo Object doIntercept(Object mock, Method invokedMethod, Object[] arguments, RealMethod realMethod) throws Throwable { - return doIntercept(mock, invokedMethod, arguments, realMethod, LocationFactory.create()); + return doIntercept( + mock, invokedMethod, arguments, realMethod, Plugins.getLocationFactory().create()); } Object doIntercept( diff --git a/src/main/java/org/mockito/internal/creation/proxy/ProxyMockMaker.java b/src/main/java/org/mockito/internal/creation/proxy/ProxyMockMaker.java index 88e6886111..7245afa171 100644 --- a/src/main/java/org/mockito/internal/creation/proxy/ProxyMockMaker.java +++ b/src/main/java/org/mockito/internal/creation/proxy/ProxyMockMaker.java @@ -5,7 +5,7 @@ package org.mockito.internal.creation.proxy; import org.mockito.exceptions.base.MockitoException; -import org.mockito.internal.debugging.LocationFactory; +import org.mockito.internal.configuration.plugins.Plugins; import org.mockito.internal.invocation.RealMethod; import org.mockito.internal.util.Platform; import org.mockito.invocation.MockHandler; @@ -158,7 +158,7 @@ public Object invoke(Object proxy, Method method, Object[] args) throws Throwabl args, realMethod, settings, - LocationFactory.create())); + Plugins.getLocationFactory().create())); } } diff --git a/src/main/java/org/mockito/internal/debugging/LocationFactory.java b/src/main/java/org/mockito/internal/debugging/DefaultLocationFactory.java similarity index 74% rename from src/main/java/org/mockito/internal/debugging/LocationFactory.java rename to src/main/java/org/mockito/internal/debugging/DefaultLocationFactory.java index 3d936ae761..296be8b34d 100644 --- a/src/main/java/org/mockito/internal/debugging/LocationFactory.java +++ b/src/main/java/org/mockito/internal/debugging/DefaultLocationFactory.java @@ -5,17 +5,16 @@ package org.mockito.internal.debugging; import org.mockito.invocation.Location; +import org.mockito.plugins.LocationFactory; -public final class LocationFactory { - private static final Factory factory = createLocationFactory(); +public final class DefaultLocationFactory implements LocationFactory { + private final Factory factory = createLocationFactory(); - private LocationFactory() {} - - public static Location create() { + public Location create() { return create(false); } - public static Location create(boolean inline) { + public Location create(boolean inline) { return factory.create(inline); } @@ -29,7 +28,7 @@ private static Factory createLocationFactory() { // available, in this case we have to fallback to Java 8 style of stack // traversing. Class.forName("java.lang.StackWalker"); - return new DefaultLocationFactory(); + return new StackWalkerLocationFactory(); } catch (ClassNotFoundException e) { return new Java8LocationFactory(); } @@ -42,7 +41,7 @@ public Location create(boolean inline) { } } - private static final class DefaultLocationFactory implements Factory { + private static final class StackWalkerLocationFactory implements Factory { @Override public Location create(boolean inline) { return new LocationImpl(inline); diff --git a/src/main/java/org/mockito/internal/debugging/Localized.java b/src/main/java/org/mockito/internal/debugging/Localized.java index 3abcf29555..53223d8b7c 100644 --- a/src/main/java/org/mockito/internal/debugging/Localized.java +++ b/src/main/java/org/mockito/internal/debugging/Localized.java @@ -4,6 +4,7 @@ */ package org.mockito.internal.debugging; +import org.mockito.internal.configuration.plugins.Plugins; import org.mockito.invocation.Location; public class Localized { @@ -13,7 +14,7 @@ public class Localized { public Localized(T object) { this.object = object; - location = LocationFactory.create(); + location = Plugins.getLocationFactory().create(); } public T getObject() { diff --git a/src/main/java/org/mockito/internal/exceptions/Reporter.java b/src/main/java/org/mockito/internal/exceptions/Reporter.java index 0609168465..c2d9f1f663 100644 --- a/src/main/java/org/mockito/internal/exceptions/Reporter.java +++ b/src/main/java/org/mockito/internal/exceptions/Reporter.java @@ -42,7 +42,7 @@ import org.mockito.exceptions.verification.TooManyActualInvocations; import org.mockito.exceptions.verification.VerificationInOrderFailure; import org.mockito.exceptions.verification.WantedButNotInvoked; -import org.mockito.internal.debugging.LocationFactory; +import org.mockito.internal.configuration.plugins.Plugins; import org.mockito.internal.exceptions.util.ScenarioPrinter; import org.mockito.internal.junit.ExceptionFactory; import org.mockito.internal.matchers.LocalizedMatcher; @@ -106,7 +106,7 @@ public static MockitoException incorrectUseOfApi() { return new MockitoException( join( "Incorrect use of API detected here:", - LocationFactory.create(), + Plugins.getLocationFactory().create(), "", "You probably stored a reference to OngoingStubbing returned by when() and called stubbing methods like thenReturn() on this reference more than once.", "Examples of correct usage:", @@ -284,7 +284,7 @@ public static MockitoException incorrectUseOfAdditionalMatchers( "Invalid use of argument matchers inside additional matcher " + additionalMatcherName + " !", - LocationFactory.create(), + Plugins.getLocationFactory().create(), "", expectedSubMatchersCount + " sub matchers expected, " @@ -317,7 +317,7 @@ public static MockitoException reportNoSubMatchersFound(String additionalMatcher return new InvalidUseOfMatchersException( join( "No matchers found for additional matcher " + additionalMatcherName, - LocationFactory.create(), + Plugins.getLocationFactory().create(), "")); } @@ -348,7 +348,7 @@ public static AssertionError argumentsAreDifferent( .append("Argument(s) are different! Wanted:\n") .append(wanted) .append("\n") - .append(LocationFactory.create()) + .append(Plugins.getLocationFactory().create()) .append("\n") .append("Actual invocations have different arguments"); @@ -419,7 +419,11 @@ public static MockitoAssertionError wantedButNotInvoked( } private static String createWantedButNotInvokedMessage(DescribedInvocation wanted) { - return join("Wanted but not invoked:", wanted.toString(), LocationFactory.create(), ""); + return join( + "Wanted but not invoked:", + wanted.toString(), + Plugins.getLocationFactory().create(), + ""); } public static MockitoAssertionError wantedButNotInvokedInOrder( @@ -429,7 +433,7 @@ public static MockitoAssertionError wantedButNotInvokedInOrder( "Verification in order failure", "Wanted but not invoked:", wanted.toString(), - LocationFactory.create(), + Plugins.getLocationFactory().create(), "Wanted anywhere AFTER following interaction:", previous.toString(), previous.getLocation(), @@ -454,7 +458,7 @@ private static String createTooManyInvocationsMessage( return join( wanted.toString(), "Wanted " + pluralize(wantedCount) + ":", - LocationFactory.create(), + Plugins.getLocationFactory().create(), "But was " + pluralize(actualCount) + ":", createAllLocationsMessage(invocations), ""); @@ -467,7 +471,7 @@ public static MockitoAssertionError neverWantedButInvoked( join( wanted.toString(), "Never wanted here:", - LocationFactory.create(), + Plugins.getLocationFactory().create(), "But invoked here:", createAllLocationsArgsMessage(invocations))); } @@ -517,7 +521,7 @@ private static String createTooFewInvocationsMessage( "Wanted " + discrepancy.getPluralizedWantedCount() + (discrepancy.getWantedCount() == 0 ? "." : ":"), - LocationFactory.create(), + Plugins.getLocationFactory().create(), "But was " + discrepancy.getPluralizedActualCount() + (discrepancy.getActualCount() == 0 ? "." : ":"), @@ -550,7 +554,7 @@ public static MockitoAssertionError noMoreInteractionsWanted( return new NoInteractionsWanted( join( "No interactions wanted here:", - LocationFactory.create(), + Plugins.getLocationFactory().create(), "But found this interaction on mock '" + MockUtil.getMockName(undesired.getMock()) + "':", @@ -562,7 +566,7 @@ public static MockitoAssertionError noMoreInteractionsWantedInOrder(Invocation u return new VerificationInOrderFailure( join( "No interactions wanted here:", - LocationFactory.create(), + Plugins.getLocationFactory().create(), "But found this interaction on mock '" + MockUtil.getMockName(undesired.getMock()) + "':", @@ -581,7 +585,7 @@ public static MockitoAssertionError noInteractionsWanted( return new NoInteractionsWanted( join( "No interactions wanted here:", - LocationFactory.create(), + Plugins.getLocationFactory().create(), "But found these interactions on mock '" + MockUtil.getMockName(mock) + "':", @@ -699,7 +703,7 @@ public static MockitoException smartNullPointerException(String invocation, Loca return new SmartNullPointerException( join( "You have a NullPointerException here:", - LocationFactory.create(), + Plugins.getLocationFactory().create(), "because this method call was *not* stubbed correctly:", location, invocation, diff --git a/src/main/java/org/mockito/internal/invocation/DefaultInvocationFactory.java b/src/main/java/org/mockito/internal/invocation/DefaultInvocationFactory.java index 4921f4006d..1838b259c4 100644 --- a/src/main/java/org/mockito/internal/invocation/DefaultInvocationFactory.java +++ b/src/main/java/org/mockito/internal/invocation/DefaultInvocationFactory.java @@ -7,8 +7,8 @@ import java.lang.reflect.Method; import java.util.concurrent.Callable; +import org.mockito.internal.configuration.plugins.Plugins; import org.mockito.internal.creation.DelegatingMethod; -import org.mockito.internal.debugging.LocationFactory; import org.mockito.internal.invocation.mockref.MockWeakReference; import org.mockito.internal.progress.SequenceNumber; import org.mockito.invocation.Invocation; @@ -71,7 +71,12 @@ private static InterceptedInvocation createInvocation( RealMethod realMethod, MockCreationSettings settings) { return createInvocation( - mock, invokedMethod, arguments, realMethod, settings, LocationFactory.create()); + mock, + invokedMethod, + arguments, + realMethod, + settings, + Plugins.getLocationFactory().create()); } private static MockitoMethod createMockitoMethod(Method method, MockCreationSettings settings) { diff --git a/src/main/java/org/mockito/internal/matchers/LocalizedMatcher.java b/src/main/java/org/mockito/internal/matchers/LocalizedMatcher.java index a54eb6d79e..b6713208fa 100644 --- a/src/main/java/org/mockito/internal/matchers/LocalizedMatcher.java +++ b/src/main/java/org/mockito/internal/matchers/LocalizedMatcher.java @@ -5,7 +5,7 @@ package org.mockito.internal.matchers; import org.mockito.ArgumentMatcher; -import org.mockito.internal.debugging.LocationFactory; +import org.mockito.internal.configuration.plugins.Plugins; import org.mockito.invocation.Location; @SuppressWarnings("unchecked") @@ -16,7 +16,7 @@ public class LocalizedMatcher { public LocalizedMatcher(ArgumentMatcher matcher) { this.matcher = matcher; - this.location = LocationFactory.create(); + this.location = Plugins.getLocationFactory().create(); } public Location getLocation() { diff --git a/src/main/java/org/mockito/internal/progress/MockingProgressImpl.java b/src/main/java/org/mockito/internal/progress/MockingProgressImpl.java index 2585d32cfc..477674174e 100644 --- a/src/main/java/org/mockito/internal/progress/MockingProgressImpl.java +++ b/src/main/java/org/mockito/internal/progress/MockingProgressImpl.java @@ -13,8 +13,8 @@ import java.util.Set; import org.mockito.internal.configuration.GlobalConfiguration; +import org.mockito.internal.configuration.plugins.Plugins; import org.mockito.internal.debugging.Localized; -import org.mockito.internal.debugging.LocationFactory; import org.mockito.internal.exceptions.Reporter; import org.mockito.internal.listeners.AutoCleanableListener; import org.mockito.invocation.Location; @@ -105,7 +105,7 @@ public VerificationMode pullVerificationMode() { @Override public void stubbingStarted() { validateState(); - stubbingInProgress = LocationFactory.create(); + stubbingInProgress = Plugins.getLocationFactory().create(); } @Override diff --git a/src/main/java/org/mockito/internal/stubbing/defaultanswers/ReturnsSmartNulls.java b/src/main/java/org/mockito/internal/stubbing/defaultanswers/ReturnsSmartNulls.java index d538784a94..2b30048e81 100644 --- a/src/main/java/org/mockito/internal/stubbing/defaultanswers/ReturnsSmartNulls.java +++ b/src/main/java/org/mockito/internal/stubbing/defaultanswers/ReturnsSmartNulls.java @@ -12,9 +12,9 @@ import java.util.Arrays; import org.mockito.Mockito; +import org.mockito.internal.configuration.plugins.Plugins; import org.mockito.internal.creation.MockSettingsImpl; import org.mockito.internal.creation.bytebuddy.MockAccess; -import org.mockito.internal.debugging.LocationFactory; import org.mockito.internal.util.MockUtil; import org.mockito.invocation.InvocationOnMock; import org.mockito.invocation.Location; @@ -65,7 +65,8 @@ public Object apply(Class type) { MockCreationSettings mockSettings = MockUtil.getMockSettings(invocation.getMock()); Answer defaultAnswer = - new ThrowsSmartNullPointer(invocation, LocationFactory.create()); + new ThrowsSmartNullPointer( + invocation, Plugins.getLocationFactory().create()); return Mockito.mock( type, diff --git a/src/main/java/org/mockito/invocation/Location.java b/src/main/java/org/mockito/invocation/Location.java index ea3c274bc5..856d1b12a3 100644 --- a/src/main/java/org/mockito/invocation/Location.java +++ b/src/main/java/org/mockito/invocation/Location.java @@ -4,12 +4,9 @@ */ package org.mockito.invocation; -import org.mockito.NotExtensible; - /** * Describes the location of something in the source code. */ -@NotExtensible public interface Location { /** diff --git a/src/main/java/org/mockito/plugins/LocationFactory.java b/src/main/java/org/mockito/plugins/LocationFactory.java new file mode 100644 index 0000000000..2cad2b9809 --- /dev/null +++ b/src/main/java/org/mockito/plugins/LocationFactory.java @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2007 Mockito contributors + * This program is made available under the terms of the MIT License. + */ +package org.mockito.plugins; + +import org.mockito.invocation.Location; + +/** + * LocationFactory, which is used to create a {@link Location} to point at source code. + */ +public interface LocationFactory { + + /** + * Creates a {@link Location}, which contains the source code line, which triggert the creation. + * Note that the method is not directly called and if you implement this method, + * you should filter out any mockito calls. + * + * @return the Location in source where this method was called. + */ + Location create(); + + /** + * Creates a {@link Location}, which contains the source code line, which triggert the creation. + * Note that the method is not directly called and if you implement this method, + * you should filter out any mockito calls. + * + * @param inline whether it is inline or not. + * @return the Location in source where this method was called. + */ + Location create(boolean inline); +} diff --git a/src/test/java/org/mockito/internal/invocation/InvocationBuilder.java b/src/test/java/org/mockito/internal/invocation/InvocationBuilder.java index d5cf3e5577..df80c777e2 100644 --- a/src/test/java/org/mockito/internal/invocation/InvocationBuilder.java +++ b/src/test/java/org/mockito/internal/invocation/InvocationBuilder.java @@ -13,7 +13,7 @@ import java.util.List; import org.mockito.Mockito; -import org.mockito.internal.debugging.LocationFactory; +import org.mockito.internal.configuration.plugins.Plugins; import org.mockito.internal.invocation.mockref.MockReference; import org.mockito.internal.invocation.mockref.MockStrongReference; import org.mockito.invocation.Invocation; @@ -72,7 +72,7 @@ public Invocation toInvocation() { new SerializableMethod(method), args, NO_OP, - location == null ? LocationFactory.create() : location, + location == null ? Plugins.getLocationFactory().create() : location, 1); if (verified) { i.markVerified(); diff --git a/src/test/java/org/mockito/internal/stubbing/defaultanswers/ReturnsSmartNullsTest.java b/src/test/java/org/mockito/internal/stubbing/defaultanswers/ReturnsSmartNullsTest.java index 267c6d6966..08db6d74eb 100644 --- a/src/test/java/org/mockito/internal/stubbing/defaultanswers/ReturnsSmartNullsTest.java +++ b/src/test/java/org/mockito/internal/stubbing/defaultanswers/ReturnsSmartNullsTest.java @@ -20,7 +20,7 @@ import org.assertj.core.api.ThrowableAssert; import org.junit.Test; import org.mockito.exceptions.verification.SmartNullPointerException; -import org.mockito.internal.debugging.LocationFactory; +import org.mockito.internal.configuration.plugins.Plugins; import org.mockito.internal.invocation.InterceptedInvocation; import org.mockito.internal.invocation.SerializableMethod; import org.mockito.internal.invocation.mockref.MockStrongReference; @@ -146,7 +146,7 @@ private static InterceptedInvocation invocationMethodWithArgs(final T obj) GenericFooBar.class.getMethod("methodWithArgs", int.class, Object.class)), new Object[] {1, obj}, InterceptedInvocation.NO_OP, - LocationFactory.create(), + Plugins.getLocationFactory().create(), 1); } @@ -269,7 +269,7 @@ private static InterceptedInvocation invocationMethodWithVarArgs(final T[] o "methodWithVarArgs", int.class, Object[].class)), new Object[] {1, obj}, InterceptedInvocation.NO_OP, - LocationFactory.create(), + Plugins.getLocationFactory().create(), 1); } diff --git a/src/test/java/org/mockitousage/internal/debugging/LocationFactoryTest.java b/src/test/java/org/mockitousage/internal/debugging/LocationFactoryTest.java index 072c13fc02..4cd141986c 100644 --- a/src/test/java/org/mockitousage/internal/debugging/LocationFactoryTest.java +++ b/src/test/java/org/mockitousage/internal/debugging/LocationFactoryTest.java @@ -5,7 +5,7 @@ package org.mockitousage.internal.debugging; import org.junit.Test; -import org.mockito.internal.debugging.LocationFactory; +import org.mockito.internal.configuration.plugins.Plugins; import org.mockitoutil.TestBase; import java.util.ArrayList; @@ -18,7 +18,7 @@ public class LocationFactoryTest extends TestBase { @Test public void shouldLocationNotContainGetStackTraceMethod() { - assertThat(LocationFactory.create().toString()) + assertThat(Plugins.getLocationFactory().create().toString()) .contains("shouldLocationNotContainGetStackTraceMethod"); } @@ -28,7 +28,7 @@ public void provides_location_class() { final List files = new ArrayList(); new Runnable() { // anonymous inner class adds stress to the check public void run() { - files.add(LocationFactory.create().getSourceFile()); + files.add(Plugins.getLocationFactory().create().getSourceFile()); } }.run(); diff --git a/src/test/java/org/mockitoutil/TestBase.java b/src/test/java/org/mockitoutil/TestBase.java index 3f772d020b..bb52f9a155 100644 --- a/src/test/java/org/mockitoutil/TestBase.java +++ b/src/test/java/org/mockitoutil/TestBase.java @@ -17,7 +17,7 @@ import org.mockito.StateMaster; import org.mockito.internal.MockitoCore; import org.mockito.internal.configuration.ConfigurationAccess; -import org.mockito.internal.debugging.LocationFactory; +import org.mockito.internal.configuration.plugins.Plugins; import org.mockito.internal.invocation.InterceptedInvocation; import org.mockito.internal.invocation.InvocationBuilder; import org.mockito.internal.invocation.InvocationMatcher; @@ -84,7 +84,7 @@ protected static Invocation invocationOf(Class type, String methodName, Objec new SerializableMethod(type.getMethod(methodName, types)), args, InterceptedInvocation.NO_OP, - LocationFactory.create(), + Plugins.getLocationFactory().create(), 1); } diff --git a/subprojects/memory-test/src/test/java/org/mockito/memorytest/LocationFactoryAllocationRateTest.java b/subprojects/memory-test/src/test/java/org/mockito/memorytest/LocationFactoryAllocationRateTest.java index 26b36ca9af..c6b16fa65f 100644 --- a/subprojects/memory-test/src/test/java/org/mockito/memorytest/LocationFactoryAllocationRateTest.java +++ b/subprojects/memory-test/src/test/java/org/mockito/memorytest/LocationFactoryAllocationRateTest.java @@ -6,7 +6,7 @@ import com.sun.management.ThreadMXBean; import org.junit.Test; -import org.mockito.internal.debugging.LocationFactory; +import org.mockito.internal.configuration.plugins.Plugins; import java.lang.management.ManagementFactory; import java.util.stream.IntStream; @@ -27,7 +27,7 @@ public void shouldAllocateMuchLessMemoryThanThrowable() { // On Java 8, this will use the internal approach. On Java 9, the StackWalker approach will // be used. new Throwable().fillInStackTrace(); - LocationFactory.create(); + Plugins.getLocationFactory().create(); long baseline = countMemoryAllocations( () -> @@ -39,7 +39,7 @@ public void shouldAllocateMuchLessMemoryThanThrowable() { () -> recurseAndThen( RECURSION_LIMIT, - repeat(() -> LocationFactory.create(false)))); + repeat(() -> Plugins.getLocationFactory().create(false)))); assertThat(actual * EXPECTED_IMPROVEMENT) .as( "stack walker approach (%d) expected to be at least %fx better than exception approach (%d)",