1 22 package org.jboss.test.jbossmq.test; 23 24 import junit.framework.TestCase; 25 26 import org.jboss.mq.SpyMessage; 27 import org.jboss.mq.selectors.Selector; 28 29 37 public class SelectorSyntaxUnitTestCase 38 extends TestCase 39 { 40 private Selector selector; 41 private SpyMessage message; 42 43 public SelectorSyntaxUnitTestCase(String name) 44 { 45 super(name); 46 } 47 48 protected void setUp() throws Exception 49 { 50 super.setUp(); 51 message = new SpyMessage(); 52 } 53 54 public void testBooleanTrue() throws Exception 55 { 56 selector = new Selector("MyBoolean=true"); 57 testBoolean("MyBoolean", true); 58 } 59 60 public void testBooleanFalse() throws Exception 61 { 62 selector = new Selector("MyBoolean=false"); 63 testBoolean("MyBoolean", false); 64 } 65 66 private void testBoolean(String name, boolean flag) throws Exception 67 { 68 message.setBooleanProperty(name, flag); 69 assertTrue(selector.test(message)); 70 71 message.setBooleanProperty(name, !flag); 72 assertTrue(!selector.test(message)); 73 } 74 75 public void testStringEquals() throws Exception 76 { 77 selector = new Selector("MyString='astring'"); 79 80 message.setStringProperty("MyString", "astring"); 81 assertTrue(selector.test(message)); 82 83 message.setStringProperty("MyString", "NOTastring"); 84 assertTrue(!selector.test(message)); 85 86 selector = new Selector("MyString=''"); 88 89 message.setStringProperty("MyString", ""); 90 assertTrue("test 1", selector.test(message)); 91 92 message.setStringProperty("MyString", "NOTastring"); 93 assertTrue("test 2", !selector.test(message)); 94 95 selector = new Selector("MyString='test JBoss''s selector'"); 98 99 message.setStringProperty("MyString", "test JBoss's selector"); 101 104 message.setStringProperty("MyString", "NOTastring"); 105 assertTrue("test 4", !selector.test(message)); 106 107 } 108 109 public void testStringLike() throws Exception 110 { 111 selector = new Selector("MyString LIKE 'astring'"); 113 114 message.setStringProperty("MyString", "astring"); 116 assertTrue(selector.test(message)); 117 118 selector = new Selector("MyString LIKE 'a'"); 120 message.setStringProperty("MyString","a"); 121 assertTrue(selector.test(message)); 122 123 selector = new Selector("MyString LIKE ''"); 125 message.setStringProperty("MyString", ""); 126 assertTrue(selector.test(message)); 127 128 selector = new Selector("MyString LIKE 'astring'"); 130 131 message.setStringProperty("MyString", "NOTastring"); 133 assertTrue(!selector.test(message)); 134 135 message.setStringProperty("MyString", "astringNOT"); 137 assertTrue(!selector.test(message)); 138 139 message.setStringProperty("MyString", "astNOTring"); 141 assertTrue(!selector.test(message)); 142 143 message.setStringProperty("MyString", "totally different"); 145 assertTrue(!selector.test(message)); 146 147 message.setStringProperty("MyString", "ASTRING"); 149 assertTrue(!selector.test(message)); 150 151 message.setStringProperty("MyString", ""); 153 assertTrue(!selector.test(message)); 154 155 156 } 158 159 public void testStringLikeUnderbarWildcard() throws Exception 160 { 161 164 selector = new Selector("MyString LIKE '_'"); 166 167 message.setStringProperty("MyString", "a"); 169 assertTrue(selector.test(message)); 170 171 message.setStringProperty("MyString", "aaaaa"); 173 assertTrue(!selector.test(message)); 174 175 message.setStringProperty("MyString", ""); 177 assertTrue(!selector.test(message)); 178 179 180 selector = new Selector("MyString LIKE '_bcdf'"); 182 183 message.setStringProperty("MyString", "abcdf"); 185 assertTrue(selector.test(message)); 186 187 message.setStringProperty("MyString", "aXcdf"); 189 assertTrue(!selector.test(message)); 190 191 message.setStringProperty("MyString", "abXdf"); 193 assertTrue(!selector.test(message)); 194 195 message.setStringProperty("MyString", "abcdX"); 197 assertTrue(!selector.test(message)); 198 199 message.setStringProperty("MyString", ""); 201 assertTrue(!selector.test(message)); 202 203 message.setStringProperty("MyString", "XXXabcdf"); 205 assertTrue(!selector.test(message)); 206 207 message.setStringProperty("MyString", "abcdfXXX"); 209 assertTrue(!selector.test(message)); 210 211 message.setStringProperty("MyString", "bcdf"); 213 assertTrue(!selector.test(message)); 214 215 selector = new Selector("MyString LIKE 'abcd_'"); 217 218 message.setStringProperty("MyString", "abcdf"); 220 assertTrue(selector.test(message)); 221 222 message.setStringProperty("MyString", "abcXf"); 224 assertTrue(!selector.test(message)); 225 226 message.setStringProperty("MyString", "abXdf"); 228 assertTrue(!selector.test(message)); 229 230 message.setStringProperty("MyString", "Xbcdf"); 232 assertTrue(!selector.test(message)); 233 234 message.setStringProperty("MyString", ""); 236 assertTrue(!selector.test(message)); 237 238 message.setStringProperty("MyString", "XXXabcdf"); 240 assertTrue(!selector.test(message)); 241 242 message.setStringProperty("MyString", "abcdfXXX"); 244 assertTrue(!selector.test(message)); 245 246 message.setStringProperty("MyString", "abcd"); 248 assertTrue(!selector.test(message)); 249 250 252 selector = new Selector("MyString LIKE 'ab_df'"); 254 255 message.setStringProperty("MyString", "abcdf"); 257 assertTrue(selector.test(message)); 258 259 message.setStringProperty("MyString", "aXcdf"); 261 assertTrue(!selector.test(message)); 262 263 message.setStringProperty("MyString", "abcXf"); 265 assertTrue(!selector.test(message)); 266 267 message.setStringProperty("MyString", "abcdX"); 269 assertTrue(!selector.test(message)); 270 271 message.setStringProperty("MyString", ""); 273 assertTrue(!selector.test(message)); 274 275 message.setStringProperty("MyString", "XXXabcdf"); 277 assertTrue(!selector.test(message)); 278 279 message.setStringProperty("MyString", "abcdfXXX"); 281 assertTrue(!selector.test(message)); 282 283 message.setStringProperty("MyString", "abdf"); 285 assertTrue(!selector.test(message)); 286 287 } 289 290 public void testStringLikePercentWildcard() throws Exception 291 { 292 296 297 selector = new Selector("MyString LIKE '%'"); 299 300 message.setStringProperty("MyString", "a"); 302 assertTrue(selector.test(message)); 303 304 message.setStringProperty("MyString", "aaaaa"); 306 assertTrue(selector.test(message)); 307 308 message.setStringProperty("MyString", "abcdf"); 309 assertTrue(selector.test(message)); 310 311 message.setStringProperty("MyString", ""); 313 assertTrue(selector.test(message)); 314 315 316 selector = new Selector("MyString LIKE '%bcdf'"); 318 319 message.setStringProperty("MyString", "Xbcdf"); 321 assertTrue(selector.test(message)); 322 323 message.setStringProperty("MyString", "XXbcdf"); 325 assertTrue(selector.test(message)); 326 327 message.setStringProperty("MyString", "abXdf"); 329 assertTrue(!selector.test(message)); 330 331 message.setStringProperty("MyString", "abcdX"); 333 assertTrue(!selector.test(message)); 334 335 message.setStringProperty("MyString", ""); 337 assertTrue(!selector.test(message)); 338 339 message.setStringProperty("MyString", "abcdfXXX"); 341 assertTrue(!selector.test(message)); 342 343 message.setStringProperty("MyString", "bcdf"); 345 assertTrue(selector.test(message)); 346 347 selector = new Selector("MyString LIKE 'abcd%'"); 349 350 message.setStringProperty("MyString", "abcdf"); 352 assertTrue(selector.test(message)); 353 354 message.setStringProperty("MyString", "abcdfgh"); 356 assertTrue(selector.test(message)); 357 358 message.setStringProperty("MyString", "abcXf"); 360 assertTrue(!selector.test(message)); 361 362 message.setStringProperty("MyString", "abXdf"); 364 assertTrue(!selector.test(message)); 365 366 message.setStringProperty("MyString", "Xbcdf"); 368 assertTrue(!selector.test(message)); 369 370 message.setStringProperty("MyString", ""); 372 assertTrue(!selector.test(message)); 373 374 message.setStringProperty("MyString", "XXXabcdf"); 376 assertTrue(!selector.test(message)); 377 378 message.setStringProperty("MyString", "abcd"); 380 assertTrue(selector.test(message)); 381 382 selector = new Selector("MyString LIKE 'ab%df'"); 384 385 message.setStringProperty("MyString", "abXdf"); 387 assertTrue(selector.test(message)); 388 389 message.setStringProperty("MyString", "abXXXdf"); 391 assertTrue(selector.test(message)); 392 393 message.setStringProperty("MyString", "aXcdf"); 395 assertTrue(!selector.test(message)); 396 397 message.setStringProperty("MyString", "abcXf"); 399 assertTrue(!selector.test(message)); 400 401 message.setStringProperty("MyString", "abcdX"); 403 assertTrue(!selector.test(message)); 404 405 message.setStringProperty("MyString", ""); 407 assertTrue(!selector.test(message)); 408 409 message.setStringProperty("MyString", "XXXabcdf"); 411 assertTrue(!selector.test(message)); 412 413 message.setStringProperty("MyString", "abcdfXXX"); 415 assertTrue(!selector.test(message)); 416 417 message.setStringProperty("MyString", "abdf"); 419 assertTrue(selector.test(message)); 420 421 } 422 423 public void testStringLikePunctuation() throws Exception 424 { 425 431 435 selector = new Selector("MyString LIKE 'a^$b'"); 436 message.setStringProperty("MyString", "a^$b"); 437 assertTrue(selector.test(message)); 438 439 selector = new Selector("MyString LIKE 'a\\dc'"); 442 message.setStringProperty("MyString", "a\\dc"); 443 assertTrue(selector.test(message)); 444 445 selector = new Selector("MyString LIKE 'a.c'"); 446 message.setStringProperty("MyString", "abc"); 447 assertTrue(!selector.test(message)); 448 449 selector = new Selector("MyString LIKE '[abc]'"); 450 message.setStringProperty("MyString", "[abc]"); 451 assertTrue(selector.test(message)); 452 453 selector = new Selector("MyString LIKE '[^abc]'"); 454 message.setStringProperty("MyString", "[^abc]"); 455 assertTrue(selector.test(message)); 456 457 selector = new Selector("MyString LIKE '[a-c]'"); 458 message.setStringProperty("MyString", "[a-c]"); 459 assertTrue(selector.test(message)); 460 461 selector = new Selector("MyString LIKE '[:alpha]'"); 462 message.setStringProperty("MyString", "[:alpha]"); 463 assertTrue(selector.test(message)); 464 465 selector = new Selector("MyString LIKE '(abc)'"); 466 message.setStringProperty("MyString", "(abc)"); 467 assertTrue(selector.test(message)); 468 469 selector = new Selector("MyString LIKE 'a|bc'"); 470 message.setStringProperty("MyString", "a|bc"); 471 assertTrue(selector.test(message)); 472 473 selector = new Selector("MyString LIKE '(abc)?'"); 474 message.setStringProperty("MyString", "(abc)?"); 475 assertTrue(selector.test(message)); 476 477 selector = new Selector("MyString LIKE '(abc)*'"); 478 message.setStringProperty("MyString", "(abc)*"); 479 assertTrue(selector.test(message)); 480 481 selector = new Selector("MyString LIKE '(abc)+'"); 482 message.setStringProperty("MyString", "(abc)+"); 483 assertTrue(selector.test(message)); 484 485 selector = new Selector("MyString LIKE '(abc){3}'"); 486 message.setStringProperty("MyString", "(abc){3}"); 487 assertTrue(selector.test(message)); 488 489 selector = new Selector("MyString LIKE '(abc){3,5}'"); 490 message.setStringProperty("MyString", "(abc){3,5}"); 491 assertTrue(selector.test(message)); 492 493 selector = new Selector("MyString LIKE '(abc){3,}'"); 494 message.setStringProperty("MyString", "(abc){3,}"); 495 assertTrue(selector.test(message)); 496 497 selector = new Selector("MyString LIKE '(?=abc)'"); 498 message.setStringProperty("MyString", "(?=abc)"); 499 assertTrue(selector.test(message)); 500 501 selector = new Selector("MyString LIKE '(?!abc)'"); 502 message.setStringProperty("MyString", "(?!abc)"); 503 assertTrue(selector.test(message)); 504 } 505 } 506 | Popular Tags |