| 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()); |
| } |
| |
| } |