1 package com.atlassian.sal.api.validate;
2
3 import com.google.common.collect.Iterables;
4 import com.google.common.collect.Lists;
5 import org.junit.Test;
6
7 import java.util.List;
8
9 import static org.hamcrest.Matchers.contains;
10 import static org.junit.Assert.assertEquals;
11 import static org.junit.Assert.assertFalse;
12 import static org.junit.Assert.assertNotNull;
13 import static org.junit.Assert.assertThat;
14 import static org.junit.Assert.assertTrue;
15
16 public class ValidationResultTest
17 {
18 @Test
19 public void testNoDuplicateMessages()
20 {
21 List<String> messages = Lists.newArrayList();
22 messages.add("Message One");
23 messages.add("Message Two");
24 messages.add("Message Duplicate");
25 messages.add("Message Duplicate");
26 final ValidationResult validationResult = ValidationResult.withErrorAndWarningMessages(messages, messages);
27 assertEquals(3, Iterables.size(validationResult.getErrorMessages()));
28 assertEquals(3, Iterables.size(validationResult.getWarningMessages()));
29 }
30
31 @Test
32 public void testImmutable()
33 {
34 List<String> messages = Lists.newArrayList();
35 messages.add("Message One");
36 messages.add("Message Two");
37 messages.add("Message Tree");
38 final ValidationResult validationResult = ValidationResult.withErrorAndWarningMessages(messages, messages);
39 messages.add("Another message");
40 assertEquals(3, Iterables.size(validationResult.getErrorMessages()));
41 assertEquals(3, Iterables.size(validationResult.getWarningMessages()));
42 }
43
44 @Test
45 public void testWaringAndError()
46 {
47 List<String> errorMessages = Lists.newArrayList();
48 errorMessages.add("ERROR One");
49 errorMessages.add("ERROR Two");
50 errorMessages.add("ERROR Tree");
51
52 List<String> warningMessages = Lists.newArrayList();
53 warningMessages.add("WARN One");
54 warningMessages.add("WARN Two");
55 warningMessages.add("WARN Tree");
56 warningMessages.add("WARN Four");
57
58 final ValidationResult validationResult = ValidationResult.withErrorAndWarningMessages(errorMessages, warningMessages);
59 assertTrue(validationResult.hasErrors());
60 assertTrue(validationResult.hasWarnings());
61 assertFalse(validationResult.isValid());
62 assertEquals(3, Iterables.size(validationResult.getErrorMessages()));
63 assertEquals(4, Iterables.size(validationResult.getWarningMessages()));
64 assertThat(validationResult.getErrorMessages(), contains(errorMessages.toArray(new String[errorMessages.size()])));
65 assertThat(validationResult.getWarningMessages(), contains(warningMessages.toArray(new String[warningMessages.size()])));
66 }
67
68 @Test
69 public void testWaring()
70 {
71 List<String> warningMessages = Lists.newArrayList();
72 warningMessages.add("WARN One");
73 warningMessages.add("WARN Two");
74 warningMessages.add("WARN Tree");
75 warningMessages.add("WARN Four");
76
77 final ValidationResult validationResult = ValidationResult.withWarningMessages(warningMessages);
78 assertFalse(validationResult.hasErrors());
79 assertTrue(validationResult.hasWarnings());
80 assertTrue(validationResult.isValid());
81 assertNotNull(validationResult.getErrorMessages());
82 assertNotNull(validationResult.getWarningMessages());
83 assertEquals(0, Iterables.size(validationResult.getErrorMessages()));
84 assertEquals(4, Iterables.size(validationResult.getWarningMessages()));
85 assertThat(validationResult.getWarningMessages(), contains(warningMessages.toArray(new String[warningMessages.size()])));
86 }
87
88 @Test
89 public void testErrors()
90 {
91 List<String> errorMessages = Lists.newArrayList();
92 errorMessages.add("ERROR One");
93 errorMessages.add("ERROR Two");
94 errorMessages.add("ERROR Tree");
95
96 final ValidationResult validationResult = ValidationResult.withErrorMessages(errorMessages);
97 assertTrue(validationResult.hasErrors());
98 assertFalse(validationResult.hasWarnings());
99 assertFalse(validationResult.isValid());
100 assertNotNull(validationResult.getErrorMessages());
101 assertNotNull(validationResult.getWarningMessages());
102 assertEquals(3, Iterables.size(validationResult.getErrorMessages()));
103 assertEquals(0, Iterables.size(validationResult.getWarningMessages()));
104 assertThat(validationResult.getErrorMessages(), contains(errorMessages.toArray(new String[errorMessages.size()])));
105 }
106
107 @Test (expected = NullPointerException.class)
108 public void testNullErrors()
109 {
110 ValidationResult.withErrorMessages(null);
111 }
112
113 @Test (expected = NullPointerException.class)
114 public void testNullWarning()
115 {
116 ValidationResult.withWarningMessages(null);
117 }
118
119 @Test (expected = NullPointerException.class)
120 public void testWithNullWarningsButErrors()
121 {
122 ValidationResult.withErrorAndWarningMessages(Lists.<String>newArrayList(), null);
123 }
124
125 @Test (expected = NullPointerException.class)
126 public void testWithNullErrorsButWarnings()
127 {
128 ValidationResult.withErrorAndWarningMessages(null, Lists.<String>newArrayList());
129 }
130 }