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 }