blob: 45071ed0a36f77f65417d601ee9c623a56b38e30 [file] [log] [blame]
package org.junit.tests.experimental.theories;
import static org.junit.Assert.*;
import org.junit.Test;
import org.junit.experimental.theories.PotentialAssignment;
import org.junit.experimental.theories.PotentialAssignment.CouldNotGenerateValueException;
public class PotentialAssignmentTest {
@Test
public void shouldUseQuotedValueInDescription() throws CouldNotGenerateValueException {
String name = "stringDatapoint";
Object value = new Object() {
@Override
public String toString() {
return "string value";
}
};
PotentialAssignment assignment = PotentialAssignment.forValue(name, value);
assertEquals("\"string value\" <from stringDatapoint>", assignment.getDescription());
}
@Test
public void shouldNotUseQuotesForNullValueDescriptions() throws CouldNotGenerateValueException {
String name = "nullDatapoint";
Object value = null;
PotentialAssignment assignment = PotentialAssignment.forValue(name, value);
assertEquals("null <from nullDatapoint>", assignment.getDescription());
}
@Test
public void shouldIncludeFailureInDescriptionIfToStringFails() throws CouldNotGenerateValueException {
String name = "explodingValue";
Object value = new Object() {
@Override
public String toString() {
throw new RuntimeException("Oh no!");
}
};
PotentialAssignment assignment = PotentialAssignment.forValue(name, value);
assertEquals("[toString() threw RuntimeException: Oh no!] <from explodingValue>", assignment.getDescription());
}
@Test
public void shouldReturnGivenValue() throws CouldNotGenerateValueException {
Object value = new Object();
PotentialAssignment assignment = PotentialAssignment.forValue("name", value);
assertEquals(value, assignment.getValue());
}
}