1 package org.apache.helix.alerts;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.apache.helix.HelixException;
23 import org.apache.helix.alerts.ExpressionParser;
24 import org.testng.annotations.Test;
25 import org.testng.AssertJUnit;
26 import org.testng.Assert;
27 import org.testng.annotations.Test;
28
29
30 @Test
31 public class TestStatsMatch {
32
33 @Test
34 public void testExactMatch()
35 {
36
37 String persistedStatName = "window(5)(dbFoo.partition10.latency)";
38 String incomingStatName = "dbFoo.partition10.latency";
39 AssertJUnit.assertTrue(ExpressionParser.isIncomingStatExactMatch(persistedStatName, incomingStatName));
40 }
41
42 @Test
43 public void testSingleWildcardMatch()
44 {
45
46 String persistedStatName = "window(5)(dbFoo.partition*.latency)";
47 String incomingStatName = "dbFoo.partition10.latency";
48 AssertJUnit.assertTrue(ExpressionParser.isIncomingStatWildcardMatch(persistedStatName, incomingStatName));
49 }
50
51 @Test
52 public void testDoubleWildcardMatch()
53 {
54
55 String persistedStatName = "window(5)(db*.partition*.latency)";
56 String incomingStatName = "dbFoo.partition10.latency";
57 AssertJUnit.assertTrue(ExpressionParser.isIncomingStatWildcardMatch(persistedStatName, incomingStatName));
58 }
59
60 @Test
61 public void testWildcardMatchNoWildcard()
62 {
63
64 String persistedStatName = "window(5)(dbFoo.partition10.latency)";
65 String incomingStatName = "dbFoo.partition10.latency";
66 AssertJUnit.assertFalse(ExpressionParser.isIncomingStatWildcardMatch(persistedStatName, incomingStatName));
67 }
68
69 @Test
70 public void testWildcardMatchTooManyFields()
71 {
72
73 String persistedStatName = "window(5)(dbFoo.partition*.latency)";
74 String incomingStatName = "dbFoo.tableBar.partition10.latency";
75 AssertJUnit.assertFalse(ExpressionParser.isIncomingStatWildcardMatch(persistedStatName, incomingStatName));
76 }
77
78 @Test
79 public void testWildcardMatchTooFewFields()
80 {
81
82 String persistedStatName = "window(5)(dbFoo.partition*.latency)";
83 String incomingStatName = "dbFoo.latency";
84 AssertJUnit.assertFalse(ExpressionParser.isIncomingStatWildcardMatch(persistedStatName, incomingStatName));
85 }
86
87
88 @Test
89 public void testBadWildcardRepeated()
90 {
91
92 String persistedStatName = "window(5)(dbFoo.partition**4.latency)";
93 String incomingStatName = "dbFoo.partition10.latency";
94 boolean match = ExpressionParser.isIncomingStatWildcardMatch(persistedStatName, incomingStatName);
95
96 AssertJUnit.assertFalse(match);
97 }
98
99 @Test
100 public void testBadWildcardNotAtEnd()
101 {
102
103 String persistedStatName = "window(5)(dbFoo.*partition.latency)";
104 String incomingStatName = "dbFoo.partition10.latency";
105 boolean match = ExpressionParser.isIncomingStatWildcardMatch(persistedStatName, incomingStatName);
106
107 AssertJUnit.assertFalse(match);
108 }
109 }