package mixconfig.tools.dataretention.smartcard import static org.junit.Assert.*; import org.junit.Test; class ApduConstantsTest { @Test public void apduConstantsArePairwiseUnequal() { checkThatConstantsStartingWithAPrefixArePairwiseUnequal("INSTRUCTION") checkThatConstantsStartingWithAPrefixArePairwiseUnequal("EXCEPTION") } protected void checkThatConstantsStartingWithAPrefixArePairwiseUnequal(String prefixOfConstant) { def classUnderTest = ApduConstants.class; def variables = classUnderTest.declaredFields.findAll{it.name.startsWith(prefixOfConstant)} variables.eachWithIndex{variable, i -> if (i>0) { def variableWithSameValue = variables[0..i-1].find{it -> variable.get() == it.get()}; if (variableWithSameValue != null) { fail(variableWithSameValue.name + " is equal to " + variable.name) } } } } }