1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package net.sourceforge.domian.specification;
17
18
19 import java.util.Date;
20
21 import static org.junit.Assert.assertEquals;
22 import static org.junit.Assert.assertFalse;
23 import static org.junit.Assert.assertTrue;
24 import static org.junit.Assert.fail;
25 import org.junit.Test;
26
27 import static net.sourceforge.domian.test.domain.Testdata.maleCustomer;
28
29
30 public class EqualIgnoreCaseStringSpecificationTest {
31
32 @Test
33 public void testShouldNotAcceptNullAsValue() {
34 try {
35 new EqualIgnoreCaseStringSpecification(null);
36 fail("Should have thrown exception");
37
38 } catch (IllegalArgumentException e) {
39 String expectedMessage = "Value parameter cannot be null";
40 assertEquals(expectedMessage, e.getMessage());
41 }
42 }
43
44 @Test
45 public void testEqualIgnoreCaseStringSpecification_equals() {
46 Specification<String> spec = new EqualIgnoreCaseStringSpecification("Hey Chica!");
47 assertFalse(spec.equals(new EqualIgnoreCaseStringSpecification("")));
48 assertFalse(spec.equals(new EqualIgnoreCaseStringSpecification(" ")));
49 assertFalse(spec.equals(new EqualIgnoreCaseStringSpecification("Hey Chico!")));
50 assertTrue(spec.equals(new EqualIgnoreCaseStringSpecification("Hey Chica!")));
51 assertFalse(spec.equals(new EqualIgnoreCaseStringSpecification("hey chica!")));
52
53 assertFalse(new EqualIgnoreCaseStringSpecification("").equals(spec));
54 assertFalse(new EqualIgnoreCaseStringSpecification(" ").equals(spec));
55 assertFalse(new EqualIgnoreCaseStringSpecification("Hey Chico!").equals(spec));
56 assertTrue(new EqualIgnoreCaseStringSpecification("Hey Chica!").equals(spec));
57 assertFalse(new EqualIgnoreCaseStringSpecification("hey chica!").equals(spec));
58
59 assertFalse(new EqualSpecification<String>("hey chica!").equals(spec));
60 assertFalse(new EqualSpecification<String>("Hey Chica!").equals(spec));
61 }
62
63 @Test
64 public void testEqualIgnoreCaseStringSpecification() {
65 Specification<String> spec = new EqualIgnoreCaseStringSpecification("Hey Chica!");
66 assertFalse(spec.isSatisfiedBy(null));
67 assertFalse(spec.isSatisfiedBy(""));
68 assertFalse(spec.isSatisfiedBy(" "));
69 assertFalse(spec.isSatisfiedBy("Hey Chico!"));
70 assertTrue(spec.isSatisfiedBy("Hey Chica!"));
71 assertTrue(spec.isSatisfiedBy("hey Chica!"));
72 assertTrue(spec.isSatisfiedBy("Hey chica!"));
73 }
74
75 @Test
76 public void testEqualIgnoreCaseStringSpecification_Raw() {
77 Specification spec = new EqualIgnoreCaseStringSpecification("Hey Chica!");
78 assertFalse(spec.isSatisfiedBy(null));
79 assertFalse(spec.isSatisfiedBy(""));
80 assertFalse(spec.isSatisfiedBy(" "));
81 assertFalse(spec.isSatisfiedBy("Hey Chico!"));
82 assertTrue(spec.isSatisfiedBy("Hey Chica!"));
83 assertTrue(spec.isSatisfiedBy("hey Chica!"));
84 assertTrue(spec.isSatisfiedBy("Hey chica!"));
85
86 try {
87 assertFalse(spec.isSatisfiedBy(0));
88 fail("Should have thrown exception");
89 } catch (ClassCastException e) {
90 assertEquals("java.lang.Integer cannot be cast to java.lang.String",
91 e.getMessage());
92 }
93 try {
94 assertFalse(spec.isSatisfiedBy(new Date()));
95 fail("Should have thrown exception");
96 } catch (ClassCastException e) {
97 assertEquals("java.util.Date cannot be cast to java.lang.String",
98 e.getMessage());
99 }
100 try {
101 assertFalse(spec.isSatisfiedBy(maleCustomer));
102 fail("Should have thrown exception");
103 } catch (ClassCastException e) {
104 assertEquals("net.sourceforge.domian.test.domain.Customer cannot be cast to java.lang.String",
105 e.getMessage());
106 }
107 }
108 }