blob: e75b8ef8d19bb6586a671281156e307fc5ef8d5f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
package org.onap.aai.sparky.logging.util;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
import org.onap.aai.sparky.logging.AaiUiMsgs;
import com.att.eelf.i18n.EELFResourceManager;
public class LoggingMessageTemplateTest {
@Test
public void validateAllMessageEnumsHaveValidMessageFormats() {
/*
* I discovered that some of the message formats had missing characters
* which made the EELFResourceManager interpret the message format as null
* which would inturn randomly geneate Null-Pointer-Exceptions while trying
* log formatted messages.
*
* Two concrete examples of this issue are as follows, from the AaiUiMsgs.properties
*
* ERROR_PROCESSING_REQUEST=\
* AAIUI30037E
* Failure to process request with error: {1}
*
* ERROR_PROCESSING_REQUEST=\
* AAIUI30037E\
* Failure to process request with error: {1}
*
* Both of these formats look valid except for the second line. The code is expected to be terminated with a |\
* and this character sequence was missing from 4 of the message enums in our file. I created this
* test case to catch any future formatting errors of the message templates. There is no obvious error that
* exposes this problem until we experience an NPE at runtime, but even then it's not clear as to why it happened.
* Hopefully now we will be able to at least catch those issues before they happen.
*/
int numMessageTemplatesWithMissingFormats = 0;
for ( AaiUiMsgs x : AaiUiMsgs.values() ) {
if (x != null) {
String format = EELFResourceManager.getMessage(x);
if (format == null) {
numMessageTemplatesWithMissingFormats++;
System.out
.println("Message enum = " + x + " has a missing message format.");
}
}
}
assertEquals(0, numMessageTemplatesWithMissingFormats);
}
}
|