/** * {@inheritDoc} * * @see DefaultDataProviderMethodResolver */ @Override public List<Method> resolve(DataProviderResolverContext context) { checkNotNull(context, "'context' must not be null"); List<Method> dataProviderMethods = findAnnotatedMethods(context.getLocations(), context.getDataProviderAnnotationClass()); List<Method> result = new ArrayList<Method>(); for (Method dataProviderMethod : dataProviderMethods) { if (context.useDataProviderNameConvention()) { if (isMatchingNameConvention(context.getTestMethod().getName(), dataProviderMethod.getName())) { result.add(dataProviderMethod); } } else if (dataProviderMethod.getName().equals(context.getDataProviderName())) { result.add(dataProviderMethod); } } return result; }
@Test public void testResolveShouldReturnListContainingExplicitelySpecifiedDataProviderMethod() { // Given: final Method method2 = Methods.getMethod(this.getClass(), "dataProviderMethod"); final Method method3 = Methods.anyMethod(); doReturn(asList(method, method2, method3)).when(underTest).findAnnotatedMethods( ArgumentMatchers.<List<Class<?>>>any(), ArgumentMatchers.<Class<? extends Annotation>>any()); when(context.useDataProviderNameConvention()).thenReturn(false); when(context.getDataProviderName()).thenReturn("dataProviderMethod"); // When: List<Method> result = underTest.resolve(context); // Then: assertThat(result).containsOnly(method2); }
@Test public void testDataProviderResolverContext() { // When: DataProviderResolverContext result = new DataProviderResolverContext(testMethod, resolverClasses, resolveStrategy, locations, dataProviderAnnotationClass, dataProviderName); // Then: assertThat(result).isNotNull(); assertThat(result.getTestMethod()).isEqualTo(testMethod); assertThat(result.getResolverClasses()).isNotSameAs(resolverClasses).isEqualTo(resolverClasses); assertThat(result.getResolveStrategy()).isEqualTo(resolveStrategy); assertThat(result.getLocations()).isNotSameAs(locations).isEqualTo(locations); assertThat(result.getDataProviderAnnotationClass()).isEqualTo(dataProviderAnnotationClass); assertThat(result.getDataProviderName()).isEqualTo(dataProviderName); }