@@ -88,6 +88,62 @@ public void testMethodSignature() throws Exception {
88
88
assertFalse (checker .noSignaturesFilesParsed ());
89
89
}
90
90
91
+ @ Test
92
+ public void testMethodSignatureWS () throws Exception {
93
+ checker .parseSignaturesString ("java.lang.Object# toString\t ( ) @ Foobar" );
94
+ assertEquals (Collections .singletonMap (Signatures .getKey ("java/lang/Object" , new Method ("toString" , "()Ljava/lang/String;" )), "java.lang.Object# toString\t ( ) [Foobar]" ),
95
+ forbiddenSignatures .signatures );
96
+ assertEquals (Collections .emptySet (), forbiddenSignatures .classPatterns );
97
+ assertFalse (checker .hasNoSignatures ());
98
+ assertFalse (checker .noSignaturesFilesParsed ());
99
+ }
100
+
101
+ @ Test
102
+ public void testWildcardMethodSignature () throws Exception {
103
+ checker .parseSignaturesString ("java.lang.String#copyValueOf(**) @ Foobar" );
104
+
105
+ // For Java 7 it should at least contain those 2 signatures:
106
+ assertTrue (forbiddenSignatures .signatures .containsKey (Signatures .getKey ("java/lang/String" , new Method ("copyValueOf" , "([C)Ljava/lang/String;" ))));
107
+ assertTrue (forbiddenSignatures .signatures .containsKey (Signatures .getKey ("java/lang/String" , new Method ("copyValueOf" , "([CII)Ljava/lang/String;" ))));
108
+
109
+ assertEquals (Collections .emptySet (), forbiddenSignatures .classPatterns );
110
+ assertFalse (checker .hasNoSignatures ());
111
+ assertFalse (checker .noSignaturesFilesParsed ());
112
+ }
113
+
114
+ @ Test
115
+ public void testWildcardMethodSignatureWS () throws Exception {
116
+ checker .parseSignaturesString ("java.lang.String#copyValueOf ( ** \t ) @ Foobar" );
117
+
118
+ // For Java 7 it should at least contain those 2 signatures:
119
+ assertTrue (forbiddenSignatures .signatures .containsKey (Signatures .getKey ("java/lang/String" , new Method ("copyValueOf" , "([C)Ljava/lang/String;" ))));
120
+ assertTrue (forbiddenSignatures .signatures .containsKey (Signatures .getKey ("java/lang/String" , new Method ("copyValueOf" , "([CII)Ljava/lang/String;" ))));
121
+
122
+ assertEquals (Collections .emptySet (), forbiddenSignatures .classPatterns );
123
+ assertFalse (checker .hasNoSignatures ());
124
+ assertFalse (checker .noSignaturesFilesParsed ());
125
+ }
126
+
127
+ @ Test
128
+ public void testWildcardMethodSignatureNoArgs () throws Exception {
129
+ checker .parseSignaturesString ("java.lang.Object#toString(**) @ Foobar" );
130
+ assertEquals (Collections .singletonMap (Signatures .getKey ("java/lang/Object" , new Method ("toString" , "()Ljava/lang/String;" )), "java.lang.Object#toString(**) [Foobar]" ),
131
+ forbiddenSignatures .signatures );
132
+ assertEquals (Collections .emptySet (), forbiddenSignatures .classPatterns );
133
+ assertFalse (checker .hasNoSignatures ());
134
+ assertFalse (checker .noSignaturesFilesParsed ());
135
+ }
136
+
137
+ @ Test
138
+ public void testWildcardMethodSignatureNotExist () throws Exception {
139
+ try {
140
+ checker .parseSignaturesString ("java.lang.Object#foobarNotExist(**) @ Foobar" );
141
+ fail ("Should fail to parse because method does not exist" );
142
+ } catch (ParseException pe ) {
143
+ assertEquals ("Method not found while parsing signature: java.lang.Object#foobarNotExist(**)" , pe .getMessage ());
144
+ }
145
+ }
146
+
91
147
@ Test
92
148
public void testEmptyCtor () throws Exception {
93
149
Checker chk = new Checker (StdIoLogger .INSTANCE , ClassLoader .getSystemClassLoader ());
0 commit comments