11d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringertpackage junitparams; 21d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert 31d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringertimport static org.assertj.core.api.Assertions.assertThat; 41d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert 51d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringertimport java.util.Arrays; 61d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringertimport java.util.List; 71d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert 81d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringertimport junitparams.usage.person_example.PersonTest; 91d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringertimport junitparams.usage.person_example.PersonTest.Person; 101d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert 111d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringertimport org.junit.Test; 121d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringertimport org.junit.runner.RunWith; 131d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert 141d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert@SuppressWarnings("unused") 151d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert@RunWith(JUnitParamsRunner.class) 161d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringertpublic class MethodAnnotationArgumentTest { 171d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert 181d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert @Test 190888a09821a98ac0680fad765217302858e70fa4Paul Duffin @Parameters(method = "return1") 201d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert public void testSingleMethodName(int number) { 211d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert assertThat(number).isEqualTo(1); 221d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert } 231d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert 241d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert private Integer[] return1() { 251d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert return new Integer[] { 1 }; 261d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert } 271d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert 281d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert @Test 291d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert @Parameters(method = "return1,return2") 301d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert public void testMultipleMethodNames(int number) { 311d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert assertThat(number) 320888a09821a98ac0680fad765217302858e70fa4Paul Duffin .isLessThanOrEqualTo(2) 331d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert .isGreaterThanOrEqualTo(1); 341d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert } 351d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert 361d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert @Test 371d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert @Parameters(method = "return1, return2") 381d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert public void testMultipleMethodNamesWithWhitespaces(int number) { 391d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert assertThat(number) 401d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert .isLessThanOrEqualTo(2) 411d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert .isGreaterThanOrEqualTo(1); 420888a09821a98ac0680fad765217302858e70fa4Paul Duffin } 431d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert 440888a09821a98ac0680fad765217302858e70fa4Paul Duffin private Integer[] return2() { 451d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert return new Integer[] { 2 }; 460888a09821a98ac0680fad765217302858e70fa4Paul Duffin } 471d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert 480888a09821a98ac0680fad765217302858e70fa4Paul Duffin @Test 491d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert @Parameters(source = PersonTest.class, method = "adultValues") 500888a09821a98ac0680fad765217302858e70fa4Paul Duffin public void testSingleMethodFromDifferentClass(int age, boolean valid) { 511d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert assertThat(new Person(age).isAdult()).isEqualTo(valid); 520888a09821a98ac0680fad765217302858e70fa4Paul Duffin } 531d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert 540888a09821a98ac0680fad765217302858e70fa4Paul Duffin @Test 551d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert @Parameters(method = "stringParamsWithNull") 561d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert public void shouldPassStringParamsWithNullFromMethod(String parameter) { 571d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert // given 581d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert List<String> acceptedParams = Arrays.asList("1", "2", "3", null); 590888a09821a98ac0680fad765217302858e70fa4Paul Duffin 601d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert // then 610888a09821a98ac0680fad765217302858e70fa4Paul Duffin assertThat(acceptedParams).contains(parameter); 621d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert } 630888a09821a98ac0680fad765217302858e70fa4Paul Duffin 641d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert Object[] stringParamsWithNull() { 650888a09821a98ac0680fad765217302858e70fa4Paul Duffin return genericArray("1", "2", "3", null); 661d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert } 670888a09821a98ac0680fad765217302858e70fa4Paul Duffin 681d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert @Test 690888a09821a98ac0680fad765217302858e70fa4Paul Duffin @Parameters(method = "multiStringParams") 701d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert public void shouldPassMultiStringParams(String first, String second) { 710888a09821a98ac0680fad765217302858e70fa4Paul Duffin assertThat(first).isEqualTo(second); 721d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert } 730888a09821a98ac0680fad765217302858e70fa4Paul Duffin 741d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert Object[] multiStringParams() { 750888a09821a98ac0680fad765217302858e70fa4Paul Duffin return genericArray( 761d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert genericArray("test", "test"), 770888a09821a98ac0680fad765217302858e70fa4Paul Duffin genericArray("ble", "ble")); 781d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert } 790888a09821a98ac0680fad765217302858e70fa4Paul Duffin 801d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert private static <T> T[] genericArray(T... elements) { 810888a09821a98ac0680fad765217302858e70fa4Paul Duffin return elements; 820888a09821a98ac0680fad765217302858e70fa4Paul Duffin } 830888a09821a98ac0680fad765217302858e70fa4Paul Duffin} 840888a09821a98ac0680fad765217302858e70fa4Paul Duffin