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.io.Serializable;
20
21 import static org.junit.Assert.assertFalse;
22 import static org.junit.Assert.assertSame;
23 import static org.junit.Assert.assertTrue;
24 import org.junit.Test;
25
26
27 public class DefaultValueSpecificationTest {
28
29 @Test
30 public void testBlankStringSpecificationType() {
31 Specification<Object> spec = new DefaultValueSpecification<Object>(Object.class);
32 assertSame(Object.class, spec.getType());
33 assertSame(Object.class, new DefaultValueSpecification<Object>(Object.class).getType());
34
35 Specification<Serializable> spec2 = new DefaultValueSpecification<Serializable>(Serializable.class);
36 assertSame(Serializable.class, spec2.getType());
37 assertSame(Serializable.class, new DefaultValueSpecification<Serializable>(Serializable.class).getType());
38 }
39
40 @Test
41 public void testBlankStringSpecification() {
42 Specification<String> spec = new DefaultValueSpecification<String>(String.class);
43
44 assertTrue(spec.isSatisfiedBy(null));
45 assertTrue(spec.isSatisfiedBy(""));
46 assertTrue(spec.isSatisfiedBy(" "));
47
48 assertTrue(spec.isSatisfiedBy("\n"));
49 assertTrue(spec.isSatisfiedBy("\r"));
50 assertTrue(spec.isSatisfiedBy("\t"));
51 assertTrue(spec.isSatisfiedBy("\r\n"));
52 assertTrue(spec.isSatisfiedBy("\r\n\t"));
53
54 assertFalse(spec.isSatisfiedBy("."));
55 assertFalse(spec.isSatisfiedBy("x"));
56 }
57
58 @Test
59 public void testBlankNumberSpecification() {
60 Specification<Number> spec = new DefaultValueSpecification<Number>(Number.class);
61
62 assertTrue(spec.isSatisfiedBy(0));
63 assertTrue(spec.isSatisfiedBy(0L));
64 assertTrue(spec.isSatisfiedBy(0.0F));
65 assertTrue(spec.isSatisfiedBy(0.0D));
66 assertTrue(spec.isSatisfiedBy((short) 0));
67 assertTrue(spec.isSatisfiedBy(new Short((short) 0)));
68 assertTrue(spec.isSatisfiedBy(new Integer(0)));
69 assertTrue(spec.isSatisfiedBy(new Long(0)));
70 assertTrue(spec.isSatisfiedBy(new Float(0.00)));
71 assertTrue(spec.isSatisfiedBy(new Double(0.0000)));
72 }
73
74 @Test
75 public void testDefaultBooleanSpecification() {
76 Specification<Boolean> spec = new DefaultValueSpecification<Boolean>(Boolean.class);
77
78 assertTrue(spec.isSatisfiedBy(Boolean.FALSE));
79 assertTrue(spec.isSatisfiedBy(false));
80 assertFalse(spec.isSatisfiedBy(Boolean.TRUE));
81 assertFalse(spec.isSatisfiedBy(true));
82 }
83
84 @Test
85 public void rawBulkTest() {
86 Specification spec = new DefaultValueSpecification();
87 assertSame(Object.class, spec.getType());
88 assertSame(Object.class, new DefaultValueSpecification<Object>(Object.class).getType());
89
90 assertTrue(spec.isSatisfiedBy(null));
91 assertTrue(spec.isSatisfiedBy(""));
92 assertTrue(spec.isSatisfiedBy(" "));
93
94 assertTrue(spec.isSatisfiedBy("\n"));
95 assertTrue(spec.isSatisfiedBy("\r"));
96 assertTrue(spec.isSatisfiedBy("\t"));
97 assertTrue(spec.isSatisfiedBy("\r\n"));
98 assertTrue(spec.isSatisfiedBy("\r\n\t"));
99
100 assertFalse(spec.isSatisfiedBy("."));
101 assertFalse(spec.isSatisfiedBy("x"));
102
103 assertTrue(spec.isSatisfiedBy(0));
104 assertTrue(spec.isSatisfiedBy(0L));
105 assertTrue(spec.isSatisfiedBy(0.0F));
106 assertTrue(spec.isSatisfiedBy(0.0D));
107 assertTrue(spec.isSatisfiedBy((short) 0));
108 assertTrue(spec.isSatisfiedBy(new Short((short) 0)));
109 assertTrue(spec.isSatisfiedBy(new Integer(0)));
110 assertTrue(spec.isSatisfiedBy(new Long(0)));
111 assertTrue(spec.isSatisfiedBy(new Float(0.00)));
112 assertTrue(spec.isSatisfiedBy(new Double(0.0000)));
113
114 assertTrue(spec.isSatisfiedBy(Boolean.FALSE));
115 assertTrue(spec.isSatisfiedBy(false));
116 assertFalse(spec.isSatisfiedBy(Boolean.TRUE));
117 assertFalse(spec.isSatisfiedBy(true));
118 }
119 }