1 package org.pojomatic.diff;
2
3 import org.testng.annotations.Test;
4 import static org.testng.Assert.*;
5
6 import java.util.Arrays;
7 import java.util.Collections;
8
9 public class PropertyDifferencesTest {
10
11 @Test(expectedExceptions=NullPointerException.class)
12 public void testConstructorNullPointerException() {
13 new PropertyDifferences(null);
14 }
15
16 @Test(expectedExceptions=IllegalArgumentException.class)
17 public void testEmptyDifferences() {
18 new PropertyDifferences(Collections.<Difference>emptyList());
19 }
20
21 @Test
22 public void testSingleDifferenceToString() {
23 PropertyDifferences propertyDifferences = new PropertyDifferences(
24 Arrays.<Difference>asList(new ValueDifference("foo", 3, 4)));
25 assertEquals(propertyDifferences.toString(), "[foo: {3} versus {4}]");
26
27 propertyDifferences = new PropertyDifferences(
28 Arrays.<Difference>asList(new ValueDifference("foo", null, 4)));
29 assertEquals(propertyDifferences.toString(), "[foo: {null} versus {4}]");
30 }
31
32 @Test
33 public void testMultipleDifferencesToString() {
34 assertEquals(new PropertyDifferences(Arrays.<Difference>asList(
35 new ValueDifference("foo", 3, 4), new ValueDifference("bar", "this", "that"))).toString(), "[foo: {3} versus {4}, bar: {this} versus {that}]");
36 }
37
38 @Test
39 public void testAreEqual() {
40 PropertyDifferences propertyDifferences = new PropertyDifferences(
41 Arrays.<Difference>asList(new ValueDifference("foo", 3, 4)));
42 assertFalse(propertyDifferences.areEqual());
43 }
44 }