View Javadoc
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      @Test
18      public void testNoDuplicateMessages() {
19          List<String> messages = Lists.newArrayList();
20          messages.add("Message One");
21          messages.add("Message Two");
22          messages.add("Message Duplicate");
23          messages.add("Message Duplicate");
24          final ValidationResult validationResult = ValidationResult.withErrorAndWarningMessages(messages, messages);
25          assertEquals(3, Iterables.size(validationResult.getErrorMessages()));
26          assertEquals(3, Iterables.size(validationResult.getWarningMessages()));
27      }
28  
29      @Test
30      public void testImmutable() {
31          List<String> messages = Lists.newArrayList();
32          messages.add("Message One");
33          messages.add("Message Two");
34          messages.add("Message Tree");
35          final ValidationResult validationResult = ValidationResult.withErrorAndWarningMessages(messages, messages);
36          messages.add("Another message");
37          assertEquals(3, Iterables.size(validationResult.getErrorMessages()));
38          assertEquals(3, Iterables.size(validationResult.getWarningMessages()));
39      }
40  
41      @Test
42      public void testWaringAndError() {
43          List<String> errorMessages = Lists.newArrayList();
44          errorMessages.add("ERROR One");
45          errorMessages.add("ERROR Two");
46          errorMessages.add("ERROR Tree");
47  
48          List<String> warningMessages = Lists.newArrayList();
49          warningMessages.add("WARN One");
50          warningMessages.add("WARN Two");
51          warningMessages.add("WARN Tree");
52          warningMessages.add("WARN Four");
53  
54          final ValidationResult validationResult = ValidationResult.withErrorAndWarningMessages(errorMessages, warningMessages);
55          assertTrue(validationResult.hasErrors());
56          assertTrue(validationResult.hasWarnings());
57          assertFalse(validationResult.isValid());
58          assertEquals(3, Iterables.size(validationResult.getErrorMessages()));
59          assertEquals(4, Iterables.size(validationResult.getWarningMessages()));
60          assertThat(validationResult.getErrorMessages(), contains(errorMessages.toArray(new String[errorMessages.size()])));
61          assertThat(validationResult.getWarningMessages(), contains(warningMessages.toArray(new String[warningMessages.size()])));
62      }
63  
64      @Test
65      public void testWaring() {
66          List<String> warningMessages = Lists.newArrayList();
67          warningMessages.add("WARN One");
68          warningMessages.add("WARN Two");
69          warningMessages.add("WARN Tree");
70          warningMessages.add("WARN Four");
71  
72          final ValidationResult validationResult = ValidationResult.withWarningMessages(warningMessages);
73          assertFalse(validationResult.hasErrors());
74          assertTrue(validationResult.hasWarnings());
75          assertTrue(validationResult.isValid());
76          assertNotNull(validationResult.getErrorMessages());
77          assertNotNull(validationResult.getWarningMessages());
78          assertEquals(0, Iterables.size(validationResult.getErrorMessages()));
79          assertEquals(4, Iterables.size(validationResult.getWarningMessages()));
80          assertThat(validationResult.getWarningMessages(), contains(warningMessages.toArray(new String[warningMessages.size()])));
81      }
82  
83      @Test
84      public void testErrors() {
85          List<String> errorMessages = Lists.newArrayList();
86          errorMessages.add("ERROR One");
87          errorMessages.add("ERROR Two");
88          errorMessages.add("ERROR Tree");
89  
90          final ValidationResult validationResult = ValidationResult.withErrorMessages(errorMessages);
91          assertTrue(validationResult.hasErrors());
92          assertFalse(validationResult.hasWarnings());
93          assertFalse(validationResult.isValid());
94          assertNotNull(validationResult.getErrorMessages());
95          assertNotNull(validationResult.getWarningMessages());
96          assertEquals(3, Iterables.size(validationResult.getErrorMessages()));
97          assertEquals(0, Iterables.size(validationResult.getWarningMessages()));
98          assertThat(validationResult.getErrorMessages(), contains(errorMessages.toArray(new String[errorMessages.size()])));
99      }
100 
101     @Test(expected = NullPointerException.class)
102     public void testNullErrors() {
103         ValidationResult.withErrorMessages(null);
104     }
105 
106     @Test(expected = NullPointerException.class)
107     public void testNullWarning() {
108         ValidationResult.withWarningMessages(null);
109     }
110 
111     @Test(expected = NullPointerException.class)
112     public void testWithNullWarningsButErrors() {
113         ValidationResult.withErrorAndWarningMessages(Lists.<String>newArrayList(), null);
114     }
115 
116     @Test(expected = NullPointerException.class)
117     public void testWithNullErrorsButWarnings() {
118         ValidationResult.withErrorAndWarningMessages(null, Lists.<String>newArrayList());
119     }
120 }