| package junitparams.custom.combined; |
| |
| import java.util.LinkedList; |
| import java.util.List; |
| |
| import org.junit.AfterClass; |
| import org.junit.Test; |
| import org.junit.runner.RunWith; |
| |
| import junitparams.JUnitParamsRunner; |
| |
| import static org.assertj.core.api.Assertions.*; |
| |
| @RunWith(JUnitParamsRunner.class) |
| public class CombinedParametersProviderTest { |
| |
| private static Verifier verifier = new Verifier(); |
| |
| @Test |
| @CombinedParameters({"a,b", "1,2"}) |
| public void calledWithCartesianProduct(String character, String number) { |
| verifier.called(character, number); |
| } |
| |
| @AfterClass |
| public static void verify() { |
| assertThat(verifier.getCalls()).containsOnly( |
| new Verifier.Call("a", "1"), |
| new Verifier.Call("b", "1"), |
| new Verifier.Call("a", "2"), |
| new Verifier.Call("b", "2") |
| ); |
| } |
| |
| private static class Verifier { |
| |
| private List<Call> calls = new LinkedList<Call>(); |
| |
| void called(String firstParam, String anotherParam){ |
| calls.add(new Call(firstParam, anotherParam)); |
| } |
| |
| List<Call> getCalls() { |
| return calls; |
| } |
| |
| private static class Call { |
| |
| private final String firstParam; |
| private final String anotherParam; |
| |
| Call(String firstParam, String anotherParam) { |
| this.firstParam = firstParam; |
| this.anotherParam = anotherParam; |
| } |
| |
| @Override |
| public String toString() { |
| return "Call{" + |
| "'" + firstParam + '\'' + |
| ",'" + anotherParam + '\'' + |
| '}'; |
| } |
| |
| @Override |
| public boolean equals(Object o) { |
| if (this == o) { |
| return true; |
| } |
| if (o == null || getClass() != o.getClass()) { |
| return false; |
| } |
| |
| Call call = (Call) o; |
| |
| return firstParam.equals(call.firstParam) && anotherParam.equals(call.anotherParam); |
| |
| } |
| |
| @Override |
| public int hashCode() { |
| int result = firstParam.hashCode(); |
| result = 31 * result + anotherParam.hashCode(); |
| return result; |
| } |
| } |
| } |
| } |