@Test(expected = IllegalStateException.class) public void testGetResolverInstanceIntShouldThrowIllegalStateExceptionIfDefaultConstructorThrowsException() { // When: underTest.getResolverInstanceInt(ExceptionInDefaultConstructor.class); // Then: expect exception }
@Test(expected = IllegalStateException.class) public void testGetResolverInstanceIntShouldThrowIllegalStateExceptionIfNoDefaultConstructorExists() { // When: underTest.getResolverInstanceInt(NoDefaultConstructor.class); // Then: expect exception }
@Test(expected = IllegalStateException.class) public void testGetResolverInstanceIntShouldThrowIllegalStateExceptionIfClassIsAbstract() { // When: underTest.getResolverInstanceInt(AbstractClass.class); // Then: expect exception }
} else { for (Class<? extends DataProviderMethodResolver> resolverClass : useDataProvider.resolver()) { DataProviderMethodResolver resolver = getResolverInstanceInt(resolverClass);
} else { for (Class<? extends DataProviderMethodResolver> resolverClass : useDataProvider.resolver()) { DataProviderMethodResolver resolver = getResolverInstanceInt(resolverClass);
} else { for (Class<? extends DataProviderMethodResolver> resolverClass : useDataProvider.resolver()) { DataProviderMethodResolver resolver = getResolverInstanceInt(resolverClass);
@Test public void testGetResolverInstanceIntShouldReturnInstanceIfDefaultConstructorIsAvailableEvenIfPrivate() { // Given: // When: DataProviderMethodResolver result = underTest.getResolverInstanceInt(PrivateDefaultConstructor.class); // Then: assertThat(result).isNotNull().isInstanceOf(PrivateDefaultConstructor.class); }
@Test public void testGetDataProviderMethodShouldReturnEmptyListIfUseDataProviderResolversAreEmpty() { // Given: doReturn(useDataProvider).when(testMethod).getAnnotation(UseDataProvider.class); doReturn(dataProviderMethodResolver).when(underTest).getResolverInstanceInt(any(Class.class)); // When: List<FrameworkMethod> result = underTest.getDataProviderMethods(testMethod); // Then: assertThat(result).isEmpty(); assertThat(underTest.dataProviderMethods).containsEntry(testMethod, result); }
@Test public void testGetDataProviderMethodShouldReturnEmptyListForNotFoundDataProviderMethod() { // Given: doReturn(useDataProvider).when(testMethod).getAnnotation(UseDataProvider.class); doReturn("notAvailableDataProviderMethod").when(useDataProvider).value(); doReturn(asList(dataProviderMethod)).when(testClass).getAnnotatedMethods(DataProvider.class); doReturn("availableDataProviderMethod").when(dataProviderMethod).getName(); doReturn(dataProviderMethodResolver).when(underTest).getResolverInstanceInt(any(Class.class)); // When: List<FrameworkMethod> result = underTest.getDataProviderMethods(testMethod); // Then: assertThat(result).isEmpty(); assertThat(underTest.dataProviderMethods).containsEntry(testMethod, result); }
@Test public void testGetDataProviderMethodShouldReturnFirstNotEmptyListIfResolveStrategyIsUntilFirstMatchAndMultipleResolversWouldMatch() { // Given: final DataProviderMethodResolver resolver2 = mock(DataProviderMethodResolver.class); final DataProviderMethodResolver resolver3 = mock(DataProviderMethodResolver.class); final List<FrameworkMethod> expected2 = Arrays.asList(mock(FrameworkMethod.class), mock(FrameworkMethod.class)); final List<FrameworkMethod> expected3 = Arrays.asList(mock(FrameworkMethod.class)); doReturn(useDataProvider).when(testMethod).getAnnotation(UseDataProvider.class); doReturn(new Class<?>[] { DataProviderMethodResolver.class, DataProviderMethodResolver.class, DataProviderMethodResolver.class }) .when(useDataProvider).resolver(); doReturn(ResolveStrategy.UNTIL_FIRST_MATCH).when(useDataProvider).resolveStrategy(); doReturn(dataProviderMethodResolver, resolver2, resolver3).when(underTest).getResolverInstanceInt(any(Class.class)); doReturn(emptyList()).when(dataProviderMethodResolver).resolve(testMethod, useDataProvider); doReturn(expected2).when(resolver2).resolve(testMethod, useDataProvider); doReturn(expected3).when(resolver3).resolve(testMethod, useDataProvider); // When: List<FrameworkMethod> result = underTest.getDataProviderMethods(testMethod); // Then: assertThat(result).containsExactlyElementsOf(expected2); assertThat(underTest.dataProviderMethods).containsEntry(testMethod, result); }
@Test public void testGetDataProviderMethodShouldReturnFirstNotEmptyListIfResolveStrategyIsAggregateAllMatchesAndMultipleResolversWouldMatch() { // Given: final DataProviderMethodResolver resolver2 = mock(DataProviderMethodResolver.class); final DataProviderMethodResolver resolver3 = mock(DataProviderMethodResolver.class); final List<FrameworkMethod> expected2 = Arrays.asList(mock(FrameworkMethod.class), mock(FrameworkMethod.class)); final List<FrameworkMethod> expected3 = Arrays.asList(mock(FrameworkMethod.class)); doReturn(useDataProvider).when(testMethod).getAnnotation(UseDataProvider.class); doReturn(new Class<?>[] { DataProviderMethodResolver.class, DataProviderMethodResolver.class, DataProviderMethodResolver.class }) .when(useDataProvider).resolver(); doReturn(ResolveStrategy.AGGREGATE_ALL_MATCHES).when(useDataProvider).resolveStrategy(); doReturn(dataProviderMethodResolver, resolver2, resolver3).when(underTest).getResolverInstanceInt(any(Class.class)); doReturn(emptyList()).when(dataProviderMethodResolver).resolve(testMethod, useDataProvider); doReturn(expected2).when(resolver2).resolve(testMethod, useDataProvider); doReturn(expected3).when(resolver3).resolve(testMethod, useDataProvider); // When: List<FrameworkMethod> result = underTest.getDataProviderMethods(testMethod); // Then: assertThat(result).hasSize(3).containsAll(expected2).containsAll(expected3); assertThat(underTest.dataProviderMethods).containsEntry(testMethod, result); }