org.junit.jupiter.api.extension.ExtensionContext.Store Java Examples
The following examples show how to use
org.junit.jupiter.api.extension.ExtensionContext.Store.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: IdeaMocksExtension.java From GitToolBox with Apache License 2.0 | 6 votes |
@Override public void beforeEach(ExtensionContext context) { IdeaMocksImpl ideaMocks = new IdeaMocksImpl(); Project project = mock(Project.class); MessageBus messageBus = mock(MessageBus.class); when(project.getMessageBus()).thenReturn(messageBus); when(messageBus.syncPublisher(any(Topic.class))).thenAnswer(invocation -> { Topic topic = invocation.getArgument(0); Class<?> listenerClass = topic.getListenerClass(); if (ideaMocks.hasMockListener(listenerClass)) { return ideaMocks.getMockListener(listenerClass); } else { return ideaMocks.mockListener(listenerClass); } }); Store store = context.getStore(NS); ParameterHolder holder = ParameterHolder.getHolder(store); holder.register(Project.class, Suppliers.ofInstance(project)); holder.register(MessageBus.class, Suppliers.ofInstance(messageBus)); holder.register(IdeaMocks.class, Suppliers.ofInstance(ideaMocks)); }
Example #2
Source File: TestcontainersExtension.java From testcontainers-java with MIT License | 6 votes |
@Override public void beforeAll(ExtensionContext context) { Class<?> testClass = context.getTestClass() .orElseThrow(() -> new ExtensionConfigurationException("TestcontainersExtension is only supported for classes.")); Store store = context.getStore(NAMESPACE); List<StoreAdapter> sharedContainersStoreAdapters = findSharedContainers(testClass); sharedContainersStoreAdapters.forEach(adapter -> store.getOrComputeIfAbsent(adapter.getKey(), k -> adapter.start())); List<TestLifecycleAware> lifecycleAwareContainers = sharedContainersStoreAdapters .stream() .filter(this::isTestLifecycleAware) .map(lifecycleAwareAdapter -> (TestLifecycleAware) lifecycleAwareAdapter.container) .collect(toList()); store.put(SHARED_LIFECYCLE_AWARE_CONTAINERS, lifecycleAwareContainers); signalBeforeTestToContainers(lifecycleAwareContainers, testDescriptionFrom(context)); }
Example #3
Source File: GuiceExtension.java From bobcat with Apache License 2.0 | 6 votes |
/** * Create {@link Injector} or get existing one from test context */ private static Optional<Injector> getOrCreateInjector(ExtensionContext context) throws NoSuchMethodException, InstantiationException, IllegalAccessException, InvocationTargetException { Optional<AnnotatedElement> optionalAnnotatedElement = context.getElement(); if (!optionalAnnotatedElement.isPresent()) { return Optional.empty(); } AnnotatedElement element = optionalAnnotatedElement.get(); Store store = context.getStore(NAMESPACE); Injector injector = store.get(element, Injector.class); if (injector == null) { injector = createInjector(context); store.put(element, injector); } return Optional.of(injector); }
Example #4
Source File: UseDataProviderInvocationContextProvider.java From junit-dataprovider with Apache License 2.0 | 5 votes |
/** * Retrieves the test data from given dataprovider method. * * @param dataProviderMethod the dataprovider method that gives the parameters; never {@code null} * @param cacheDataProviderResult determines if the dataprovider result should be cached using * {@code dataProviderMethod} as key * @param context the execution context to use to create a {@link TestInfo} if required; never {@code null} * * @return a list of methods, each method bound to a parameter combination returned by the dataprovider * @throws NullPointerException if and only if one of the given arguments is {@code null} */ protected Object invokeDataProviderMethodToRetrieveData(Method dataProviderMethod, boolean cacheDataProviderResult, ExtensionContext context) { checkNotNull(dataProviderMethod, "'dataProviderMethod' must not be null"); checkNotNull(context, "'context' must not be null"); Store store = context.getRoot().getStore(NAMESPACE_USE_DATAPROVIDER); Object cached = store.get(dataProviderMethod); if (cached != null) { return cached; } try { // TODO how to not require junit-jupiter-engine dependency and reuse already existing ExtensionRegistry? ExtensionRegistry extensionRegistry = createRegistryWithDefaultExtensions( new DefaultJupiterConfiguration(emptyConfigurationParameters())); Object data = executableInvoker.invoke(dataProviderMethod, context.getTestInstance().orElse(null), context, extensionRegistry, InvocationInterceptor::interceptTestFactoryMethod); if (cacheDataProviderResult) { store.put(dataProviderMethod, data); } return data; } catch (Exception e) { throw new ParameterResolutionException( String.format("Exception while invoking dataprovider method '%s': %s", dataProviderMethod.getName(), e.getMessage()), e); } }
Example #5
Source File: SpringExtension.java From spring-analysis-note with MIT License | 5 votes |
/** * Get the {@link TestContextManager} associated with the supplied {@code ExtensionContext}. * @return the {@code TestContextManager} (never {@code null}) */ private static TestContextManager getTestContextManager(ExtensionContext context) { Assert.notNull(context, "ExtensionContext must not be null"); Class<?> testClass = context.getRequiredTestClass(); Store store = getStore(context); return store.getOrComputeIfAbsent(testClass, TestContextManager::new, TestContextManager.class); }
Example #6
Source File: AbstractUseDataProviderArgumentProvider.java From junit-dataprovider with Apache License 2.0 | 5 votes |
/** * Retrieves the test data from given dataprovider method. * * @param dataProviderMethod the dataprovider method that gives the parameters; never {@code null} * @param cacheDataProviderResult determines if the dataprovider result should be cached using * {@code dataProviderMethod} as key * @param context the execution context to use to create a {@link TestInfo} if required; never {@code null} * * @return a list of methods, each method bound to a parameter combination returned by the dataprovider * @throws NullPointerException if and only if one of the given arguments is {@code null} */ protected Object invokeDataProviderMethodToRetrieveData(Method dataProviderMethod, boolean cacheDataProviderResult, ExtensionContext context) { checkNotNull(dataProviderMethod, "'dataProviderMethod' must not be null"); checkNotNull(context, "'context' must not be null"); Store store = context.getRoot().getStore(NAMESPACE_USE_DATAPROVIDER); Object cached = store.get(dataProviderMethod); if (cached != null) { return cached; } try { // TODO how to not require junit-jupiter-engine dependency and reuse already existing ExtensionRegistry? ExtensionRegistry extensionRegistry = createRegistryWithDefaultExtensions( new DefaultJupiterConfiguration(emptyConfigurationParameters())); Object data = executableInvoker.invoke(dataProviderMethod, context.getTestInstance().orElse(null), context, extensionRegistry, InvocationInterceptor::interceptTestFactoryMethod); if (cacheDataProviderResult) { store.put(dataProviderMethod, data); } return data; } catch (Exception e) { throw new ParameterResolutionException( String.format("Exception while invoking dataprovider method '%s': %s", dataProviderMethod.getName(), e.getMessage()), e); } }
Example #7
Source File: WireMockExtension.java From junit-servers with MIT License | 5 votes |
@Override public void afterEach(ExtensionContext context) { Store store = getStore(context); WireMockServer wireMockServer = store.get(STORE_KEY, WireMockServer.class); try { wireMockServer.stop(); } finally { store.remove(STORE_KEY); } }
Example #8
Source File: CaptureSystemOutExtension.java From junit-servers with MIT License | 5 votes |
/** * Restore {@code System.out} stream and clear extension store (even if an error * occurred while restoring stream). * * @param store The extension store. */ private static void restoreSystemOutAndClearStore(Store store) { try { restoreSystemOut(store); } finally { clearStore(store); } }
Example #9
Source File: CaptureSystemOutExtension.java From junit-servers with MIT License | 5 votes |
/** * Override {@code System.out} stream with custom out stream. * * @param store The extension store. */ private static void overrideSystemOut(Store store) { ByteArrayOutputStream out = new ByteArrayOutputStream(); PrintStream outStream = new PrintStream(out); System.setOut(outStream); store.put(TEMPORARY_OUT_STORE_KEY, out); }
Example #10
Source File: CaptureSystemOutExtension.java From junit-servers with MIT License | 5 votes |
@Override public void afterEach(ExtensionContext context) throws Exception { Store store = getStore(context); try { closeTemporaryOut(store); } finally { restoreSystemOutAndClearStore(store); } }
Example #11
Source File: SpringExtension.java From spring-test-junit5 with Apache License 2.0 | 5 votes |
/** * Get the {@link TestContextManager} associated with the supplied {@code ExtensionContext}. * @return the {@code TestContextManager} (never {@code null}) */ private static TestContextManager getTestContextManager(ExtensionContext context) { Assert.notNull(context, "ExtensionContext must not be null"); Class<?> testClass = context.getRequiredTestClass(); Store store = getStore(context); return store.getOrComputeIfAbsent(testClass, TestContextManager::new, TestContextManager.class); }
Example #12
Source File: TestcontainersExtension.java From testcontainers-java with MIT License | 5 votes |
@Override public void beforeEach(final ExtensionContext context) { Store store = context.getStore(NAMESPACE); List<TestLifecycleAware> lifecycleAwareContainers = collectParentTestInstances(context).parallelStream() .flatMap(this::findRestartContainers) .peek(adapter -> store.getOrComputeIfAbsent(adapter.getKey(), k -> adapter.start())) .filter(this::isTestLifecycleAware) .map(lifecycleAwareAdapter -> (TestLifecycleAware) lifecycleAwareAdapter.container) .collect(toList()); store.put(LOCAL_LIFECYCLE_AWARE_CONTAINERS, lifecycleAwareContainers); signalBeforeTestToContainers(lifecycleAwareContainers, testDescriptionFrom(context)); }
Example #13
Source File: DBUnitExtension.java From database-rider with Apache License 2.0 | 5 votes |
private static Optional<io.micronaut.context.ApplicationContext> getMicronautApplicationContext(ExtensionContext extensionContext) { Store micronautStore = extensionContext.getRoot().getStore(Namespace.create(MicronautJunit5Extension.class)); if (micronautStore != null) { try { io.micronaut.context.ApplicationContext appContext = (io.micronaut.context.ApplicationContext) micronautStore.get(io.micronaut.context.ApplicationContext.class); if (appContext != null) { return Optional.of(appContext); } } catch (ClassCastException ex) { } } return Optional.empty(); }
Example #14
Source File: DBUnitExtension.java From database-rider with Apache License 2.0 | 5 votes |
private boolean isSpringTestContextEnabled(ExtensionContext extensionContext) { if (!extensionContext.getTestClass().isPresent()) { return false; } Store springStore = extensionContext.getRoot().getStore(Namespace.create(SpringExtension.class)); return springStore != null && springStore.get(extensionContext.getTestClass().get()) != null; }
Example #15
Source File: MockitoExtension.java From hypergraphql with Apache License 2.0 | 5 votes |
private Object getMock(Parameter parameter, ExtensionContext extensionContext) { Class<?> mockType = parameter.getType(); Store mocks = extensionContext.getStore(Namespace.create(MockitoExtension.class, mockType)); String mockName = getMockName(parameter); if (mockName != null) { return mocks.getOrComputeIfAbsent(mockName, key -> mock(mockType, mockName)); } else { return mocks.getOrComputeIfAbsent(mockType.getCanonicalName(), key -> mock(mockType)); } }
Example #16
Source File: MockitoExtension.java From Mastering-Software-Testing-with-JUnit-5 with MIT License | 5 votes |
private Object getMock(Parameter parameter, ExtensionContext extensionContext) { Class<?> mockType = parameter.getType(); Store mocks = extensionContext .getStore(Namespace.create(MockitoExtension.class, mockType)); String mockName = getMockName(parameter); if (mockName != null) { return mocks.getOrComputeIfAbsent(mockName, key -> mock(mockType, mockName)); } else { return mocks.getOrComputeIfAbsent(mockType.getCanonicalName(), key -> mock(mockType)); } }
Example #17
Source File: DisabledIfConditionTests.java From spring-analysis-note with MIT License | 5 votes |
private ExtensionContext buildExtensionContext(String methodName) { Class<?> testClass = SpringTestCase.class; Method method = ReflectionUtils.findMethod(getClass(), methodName); Store store = mock(Store.class); given(store.getOrComputeIfAbsent(any(), any(), any())).willReturn(new TestContextManager(testClass)); ExtensionContext extensionContext = mock(ExtensionContext.class); given(extensionContext.getTestClass()).willReturn(Optional.of(testClass)); given(extensionContext.getElement()).willReturn(Optional.of(method)); given(extensionContext.getStore(any())).willReturn(store); return extensionContext; }
Example #18
Source File: MockitoExtension.java From Mastering-Software-Testing-with-JUnit-5 with MIT License | 5 votes |
private Object getMock(Parameter parameter, ExtensionContext extensionContext) { Class<?> mockType = parameter.getType(); Store mocks = extensionContext .getStore(Namespace.create(MockitoExtension.class, mockType)); String mockName = getMockName(parameter); if (mockName != null) { return mocks.getOrComputeIfAbsent(mockName, key -> mock(mockType, mockName)); } else { return mocks.getOrComputeIfAbsent(mockType.getCanonicalName(), key -> mock(mockType)); } }
Example #19
Source File: SpringExtension.java From java-technology-stack with MIT License | 5 votes |
/** * Get the {@link TestContextManager} associated with the supplied {@code ExtensionContext}. * @return the {@code TestContextManager} (never {@code null}) */ private static TestContextManager getTestContextManager(ExtensionContext context) { Assert.notNull(context, "ExtensionContext must not be null"); Class<?> testClass = context.getRequiredTestClass(); Store store = getStore(context); return store.getOrComputeIfAbsent(testClass, TestContextManager::new, TestContextManager.class); }
Example #20
Source File: DisabledIfConditionTests.java From java-technology-stack with MIT License | 5 votes |
private ExtensionContext buildExtensionContext(String methodName) { Class<?> testClass = SpringTestCase.class; Method method = ReflectionUtils.findMethod(getClass(), methodName); Store store = mock(Store.class); when(store.getOrComputeIfAbsent(any(), any(), any())).thenReturn(new TestContextManager(testClass)); ExtensionContext extensionContext = mock(ExtensionContext.class); when(extensionContext.getTestClass()).thenReturn(Optional.of(testClass)); when(extensionContext.getElement()).thenReturn(Optional.of(method)); when(extensionContext.getStore(any())).thenReturn(store); return extensionContext; }
Example #21
Source File: MockitoExtension.java From intellij-spring-assistant with MIT License | 5 votes |
private Object getMock(Parameter parameter, ExtensionContext extensionContext) { Class<?> mockType = parameter.getType(); Store mocks = extensionContext.getStore(Namespace.create(MockitoExtension.class, mockType)); String mockName = getMockName(parameter); if (mockName != null) { return mocks.getOrComputeIfAbsent(mockName, key -> mock(mockType, mockName)); } else { return mocks.getOrComputeIfAbsent(mockType.getCanonicalName(), key -> mock(mockType)); } }
Example #22
Source File: GuiceExtension.java From junit5-extensions with MIT License | 5 votes |
/** * Returns an injector for the given context if and only if the given context has an {@link * ExtensionContext#getElement() annotated element}. */ private static Optional<Injector> getOrCreateInjector(ExtensionContext context) throws NoSuchMethodException, InstantiationException, IllegalAccessException, InvocationTargetException { if (!context.getElement().isPresent()) { return Optional.empty(); } AnnotatedElement element = context.getElement().get(); Store store = context.getStore(NAMESPACE); Injector injector = store.get(element, Injector.class); boolean sharedInjector = isSharedInjector(context); Set<Class<? extends Module>> moduleClasses = Collections.emptySet(); if (injector == null && sharedInjector) { moduleClasses = getContextModuleTypes(context); injector = INJECTOR_CACHE.get(moduleClasses); } if (injector == null) { injector = createInjector(context); store.put(element, injector); if (sharedInjector && !moduleClasses.isEmpty()) { INJECTOR_CACHE.put(moduleClasses, injector); } } return Optional.of(injector); }
Example #23
Source File: MockitoExtension.java From hypergraphql with Apache License 2.0 | 5 votes |
private Object getMock(Parameter parameter, ExtensionContext extensionContext) { Class<?> mockType = parameter.getType(); Store mocks = extensionContext.getStore(Namespace.create(MockitoExtension.class, mockType)); String mockName = getMockName(parameter); if (mockName != null) { return mocks.getOrComputeIfAbsent(mockName, key -> mock(mockType, mockName)); } else { return mocks.getOrComputeIfAbsent(mockType.getCanonicalName(), key -> mock(mockType)); } }
Example #24
Source File: JaasExtension.java From taskana with Apache License 2.0 | 5 votes |
@Override public Stream<TestTemplateInvocationContext> provideTestTemplateInvocationContexts( ExtensionContext context) { List<WithAccessId> accessIds = AnnotationSupport.findRepeatableAnnotations(context.getElement(), WithAccessId.class); Store store = getStore(context); return accessIds.stream() .peek(a -> store.put(ACCESS_IDS_STORE_KEY, a)) .map(JaasExtensionInvocationContext::new); }
Example #25
Source File: LightPlatformTestCaseExtension.java From GitToolBox with Apache License 2.0 | 4 votes |
private Store getStore(ExtensionContext context) { return context.getStore(NS); }
Example #26
Source File: BasePlatformTestCaseExtension.java From GitToolBox with Apache License 2.0 | 4 votes |
private Store getStore(ExtensionContext context) { return context.getStore(NS); }
Example #27
Source File: HeavyPlatformTestCaseExtension.java From GitToolBox with Apache License 2.0 | 4 votes |
private Store getStore(ExtensionContext context) { return context.getStore(NS); }
Example #28
Source File: CaptureSystemOutExtension.java From junit-servers with MIT License | 4 votes |
@Override public void beforeEach(ExtensionContext context) { Store store = getStore(context); storeOriginalSystemOut(store); overrideSystemOut(store); }
Example #29
Source File: HibernateSessionExtension.java From judgels with GNU General Public License v2.0 | 4 votes |
private Store getStore(ExtensionContext context) { return context.getStore(Namespace.create(getClass(), context)); }
Example #30
Source File: CaptureSystemOutExtension.java From junit-servers with MIT License | 4 votes |
@Override public Object resolveParameter(ParameterContext parameterContext, ExtensionContext extensionContext) throws ParameterResolutionException { Store store = getStore(extensionContext); ByteArrayOutputStream out = store.get(TEMPORARY_OUT_STORE_KEY, ByteArrayOutputStream.class); return new CaptureSystemOut(out); }