1fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffinpackage junitparams; 2fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin 3fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffinimport static org.assertj.core.api.Assertions.assertThat; 4fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin 5fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffinimport java.util.Arrays; 6fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffinimport java.util.List; 7fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin 8fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffinimport junitparams.usage.person_example.PersonTest; 9fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffinimport junitparams.usage.person_example.PersonTest.Person; 10fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin 11fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffinimport org.junit.Test; 12fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffinimport org.junit.runner.RunWith; 13fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin 14fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin@SuppressWarnings("unused") 15fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin@RunWith(JUnitParamsRunner.class) 16fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffinpublic class MethodAnnotationArgumentTest { 17fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin 18fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin @Test 19fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin @Parameters(method = "return1") 20fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin public void testSingleMethodName(int number) { 21fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin assertThat(number).isEqualTo(1); 22fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin } 23fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin 24fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin private Integer[] return1() { 25fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin return new Integer[] { 1 }; 26fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin } 27fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin 28fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin @Test 29fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin @Parameters(method = "return1,return2") 30fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin public void testMultipleMethodNames(int number) { 31fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin assertThat(number) 32fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin .isLessThanOrEqualTo(2) 33fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin .isGreaterThanOrEqualTo(1); 34fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin } 35fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin 36fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin @Test 37fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin @Parameters(method = "return1, return2") 38fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin public void testMultipleMethodNamesWithWhitespaces(int number) { 39fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin assertThat(number) 40fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin .isLessThanOrEqualTo(2) 41fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin .isGreaterThanOrEqualTo(1); 42fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin } 43fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin 44fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin private Integer[] return2() { 45fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin return new Integer[] { 2 }; 46fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin } 47fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin 48fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin @Test 49fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin @Parameters(source = PersonTest.class, method = "adultValues") 50fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin public void testSingleMethodFromDifferentClass(int age, boolean valid) { 51fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin assertThat(new Person(age).isAdult()).isEqualTo(valid); 52fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin } 53fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin 54fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin @Test 55fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin @Parameters(method = "stringParamsWithNull") 56fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin public void shouldPassStringParamsWithNullFromMethod(String parameter) { 57fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin // given 58fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin List<String> acceptedParams = Arrays.asList("1", "2", "3", null); 59fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin 60fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin // then 61fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin assertThat(acceptedParams).contains(parameter); 62fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin } 63fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin 64fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin Object[] stringParamsWithNull() { 65fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin return genericArray("1", "2", "3", null); 66fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin } 67fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin 68fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin @Test 69fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin @Parameters(method = "multiStringParams") 70fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin public void shouldPassMultiStringParams(String first, String second) { 71fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin assertThat(first).isEqualTo(second); 72fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin } 73fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin 74fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin Object[] multiStringParams() { 75fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin return genericArray( 76fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin genericArray("test", "test"), 77fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin genericArray("ble", "ble")); 78fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin } 79fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin 80fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin private static <T> T[] genericArray(T... elements) { 81fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin return elements; 82fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin } 83fd1f9491413fcdbfae3cbd43651db31fdabce41aPaul Duffin} 84