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  {
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 }