1 20 21 package org.apache.directory.ldapstudio.dsmlv2.extendedResponse; 22 23 24 import java.util.List ; 25 26 import javax.naming.NamingException ; 27 28 import org.apache.directory.ldapstudio.dsmlv2.AbstractResponseTest; 29 import org.apache.directory.ldapstudio.dsmlv2.Dsmlv2ResponseParser; 30 import org.apache.directory.shared.asn1.codec.DecoderException; 31 import org.apache.directory.shared.asn1.primitives.OID; 32 import org.apache.directory.shared.ldap.codec.Control; 33 import org.apache.directory.shared.ldap.codec.LdapResult; 34 import org.apache.directory.shared.ldap.codec.extended.ExtendedResponse; 35 import org.apache.directory.shared.ldap.message.ResultCodeEnum; 36 import org.apache.directory.shared.ldap.util.StringTools; 37 38 import com.sun.jndi.ldap.LdapURL; 39 40 41 47 public class ExtendedResponseTest extends AbstractResponseTest 48 { 49 50 53 public void testResponseWithRequestId() 54 { 55 Dsmlv2ResponseParser parser = null; 56 try 57 { 58 parser = new Dsmlv2ResponseParser(); 59 60 parser.setInputFile( ExtendedResponseTest.class.getResource( "response_with_requestID_attribute.xml" ) 61 .getFile() ); 62 63 parser.parse(); 64 } 65 catch ( Exception e ) 66 { 67 fail( e.getMessage() ); 68 } 69 70 ExtendedResponse extendedResponse = ( ExtendedResponse ) parser.getBatchResponse().getCurrentResponse(); 71 72 assertEquals( 456, extendedResponse.getMessageId() ); 73 } 74 75 76 79 public void testResponseWithRequestIdEquals0() 80 { 81 testParsingFail( ExtendedResponseTest.class, "response_with_requestID_equals_0.xml" ); 82 } 83 84 85 88 public void testResponseWith1Control() 89 { 90 Dsmlv2ResponseParser parser = null; 91 try 92 { 93 parser = new Dsmlv2ResponseParser(); 94 95 parser.setInputFile( ExtendedResponseTest.class.getResource( "response_with_1_control.xml" ).getFile() ); 96 97 parser.parse(); 98 } 99 catch ( Exception e ) 100 { 101 fail( e.getMessage() ); 102 } 103 104 ExtendedResponse extendedResponse = ( ExtendedResponse ) parser.getBatchResponse().getCurrentResponse(); 105 106 assertEquals( 1, extendedResponse.getControls().size() ); 107 108 Control control = extendedResponse.getCurrentControl(); 109 110 assertTrue( control.getCriticality() ); 111 112 assertEquals( "1.2.840.113556.1.4.643", control.getControlType() ); 113 114 assertEquals( "Some text", StringTools.utf8ToString( ( byte[] ) control.getControlValue() ) ); 115 } 116 117 120 public void testResponseWith1ControlEmptyValue() 121 { 122 Dsmlv2ResponseParser parser = null; 123 try 124 { 125 parser = new Dsmlv2ResponseParser(); 126 127 parser.setInputFile( ExtendedResponseTest.class.getResource( "response_with_1_control_empty_value.xml" ).getFile() ); 128 129 parser.parse(); 130 } 131 catch ( Exception e ) 132 { 133 fail( e.getMessage() ); 134 } 135 136 ExtendedResponse extendedResponse = ( ExtendedResponse ) parser.getBatchResponse().getCurrentResponse(); 137 Control control = extendedResponse.getCurrentControl(); 138 139 assertEquals( 1, extendedResponse.getControls().size() ); 140 assertTrue( control.getCriticality() ); 141 assertEquals( "1.2.840.113556.1.4.643", control.getControlType() ); 142 assertEquals( StringTools.EMPTY_BYTES, ( byte[] ) control.getControlValue() ); 143 } 144 145 146 149 public void testResponseWith2Controls() 150 { 151 Dsmlv2ResponseParser parser = null; 152 try 153 { 154 parser = new Dsmlv2ResponseParser(); 155 156 parser.setInputFile( ExtendedResponseTest.class.getResource( "response_with_2_controls.xml" ).getFile() ); 157 158 parser.parse(); 159 } 160 catch ( Exception e ) 161 { 162 fail( e.getMessage() ); 163 } 164 165 ExtendedResponse extendedResponse = ( ExtendedResponse ) parser.getBatchResponse().getCurrentResponse(); 166 167 assertEquals( 2, extendedResponse.getControls().size() ); 168 169 Control control = extendedResponse.getCurrentControl(); 170 171 assertFalse( control.getCriticality() ); 172 173 assertEquals( "1.2.840.113556.1.4.789", control.getControlType() ); 174 175 assertEquals( "Some other text", StringTools.utf8ToString( ( byte[] ) control.getControlValue() ) ); 176 } 177 178 179 182 public void testResponseWith3ControlsWithoutValue() 183 { 184 Dsmlv2ResponseParser parser = null; 185 try 186 { 187 parser = new Dsmlv2ResponseParser(); 188 189 parser.setInputFile( ExtendedResponseTest.class.getResource( "response_with_3_controls_without_value.xml" ) 190 .getFile() ); 191 192 parser.parse(); 193 } 194 catch ( Exception e ) 195 { 196 fail( e.getMessage() ); 197 } 198 199 ExtendedResponse extendedResponse = ( ExtendedResponse ) parser.getBatchResponse().getCurrentResponse(); 200 201 assertEquals( 3, extendedResponse.getControls().size() ); 202 203 Control control = extendedResponse.getCurrentControl(); 204 205 assertTrue( control.getCriticality() ); 206 207 assertEquals( "1.2.840.113556.1.4.456", control.getControlType() ); 208 209 assertEquals( StringTools.EMPTY_BYTES, control.getControlValue() ); 210 } 211 212 213 216 public void testResponseWithoutResultCode() 217 { 218 testParsingFail( ExtendedResponseTest.class, "response_without_result_code.xml" ); 219 } 220 221 222 225 public void testResponseWithResultCodeNotInteger() 226 { 227 testParsingFail( ExtendedResponseTest.class, "response_with_result_code_not_integer.xml" ); 228 } 229 230 231 234 public void testResponseWithResultCode() 235 { 236 Dsmlv2ResponseParser parser = null; 237 try 238 { 239 parser = new Dsmlv2ResponseParser(); 240 241 parser.setInputFile( ExtendedResponseTest.class.getResource( "response_with_result_code.xml" ).getFile() ); 242 243 parser.parse(); 244 } 245 catch ( Exception e ) 246 { 247 fail( e.getMessage() ); 248 } 249 250 ExtendedResponse extendedResponse = ( ExtendedResponse ) parser.getBatchResponse().getCurrentResponse(); 251 252 LdapResult ldapResult = extendedResponse.getLdapResult(); 253 254 assertEquals( ResultCodeEnum.PROTOCOL_ERROR, ldapResult.getResultCode() ); 255 } 256 257 258 261 public void testResponseWithErrorMessage() 262 { 263 Dsmlv2ResponseParser parser = null; 264 try 265 { 266 parser = new Dsmlv2ResponseParser(); 267 268 parser.setInputFile( ExtendedResponseTest.class.getResource( "response_with_error_message.xml" ).getFile() ); 269 270 parser.parse(); 271 } 272 catch ( Exception e ) 273 { 274 fail( e.getMessage() ); 275 } 276 277 ExtendedResponse extendedResponse = ( ExtendedResponse ) parser.getBatchResponse().getCurrentResponse(); 278 279 LdapResult ldapResult = extendedResponse.getLdapResult(); 280 281 assertEquals( "Unrecognized extended operation EXTENSION_OID: 1.2.6.1.4.1.18060.1.1.1.100.2", ldapResult 282 .getErrorMessage() ); 283 } 284 285 288 public void testResponseWithEmptyErrorMessage() 289 { 290 Dsmlv2ResponseParser parser = null; 291 try 292 { 293 parser = new Dsmlv2ResponseParser(); 294 295 parser.setInputFile( ExtendedResponseTest.class.getResource( "response_with_empty_error_message.xml" ).getFile() ); 296 297 parser.parse(); 298 } 299 catch ( Exception e ) 300 { 301 fail( e.getMessage() ); 302 } 303 304 ExtendedResponse extendedResponse = ( ExtendedResponse ) parser.getBatchResponse().getCurrentResponse(); 305 306 LdapResult ldapResult = extendedResponse.getLdapResult(); 307 308 assertNull( ldapResult.getErrorMessage() ); 309 } 310 311 312 315 public void testResponseWith1Referral() 316 { 317 Dsmlv2ResponseParser parser = null; 318 try 319 { 320 parser = new Dsmlv2ResponseParser(); 321 322 parser.setInputFile( ExtendedResponseTest.class.getResource( "response_with_1_referral.xml" ).getFile() ); 323 324 parser.parse(); 325 } 326 catch ( Exception e ) 327 { 328 fail( e.getMessage() ); 329 } 330 331 ExtendedResponse extendedResponse = ( ExtendedResponse ) parser.getBatchResponse().getCurrentResponse(); 332 333 LdapResult ldapResult = extendedResponse.getLdapResult(); 334 335 List referrals = ldapResult.getReferrals(); 336 337 assertEquals( 1, referrals.size() ); 338 339 Object referral = referrals.get( 0 ); 340 341 try 342 { 343 assertEquals( new LdapURL( "ldap://www.apache.org/" ).toString(), referral.toString() ); 344 } 345 catch ( NamingException e ) 346 { 347 fail(); 348 } 349 } 350 351 354 public void testResponseWith1EmptyReferral() 355 { 356 Dsmlv2ResponseParser parser = null; 357 try 358 { 359 parser = new Dsmlv2ResponseParser(); 360 361 parser.setInputFile( ExtendedResponseTest.class.getResource( "response_with_1_empty_referral.xml" ).getFile() ); 362 363 parser.parse(); 364 } 365 catch ( Exception e ) 366 { 367 fail( e.getMessage() ); 368 } 369 370 ExtendedResponse extendedResponse = ( ExtendedResponse ) parser.getBatchResponse().getCurrentResponse(); 371 372 LdapResult ldapResult = extendedResponse.getLdapResult(); 373 374 List referrals = ldapResult.getReferrals(); 375 376 assertEquals( 0, referrals.size() ); 377 } 378 379 380 383 public void testResponseWith2Referrals() 384 { 385 Dsmlv2ResponseParser parser = null; 386 try 387 { 388 parser = new Dsmlv2ResponseParser(); 389 390 parser.setInputFile( ExtendedResponseTest.class.getResource( "response_with_2_referrals.xml" ).getFile() ); 391 392 parser.parse(); 393 } 394 catch ( Exception e ) 395 { 396 fail( e.getMessage() ); 397 } 398 399 ExtendedResponse extendedResponse = ( ExtendedResponse ) parser.getBatchResponse().getCurrentResponse(); 400 401 LdapResult ldapResult = extendedResponse.getLdapResult(); 402 403 List referrals = ldapResult.getReferrals(); 404 405 assertEquals( 2, referrals.size() ); 406 407 Object referral = referrals.get( 0 ); 408 409 try 410 { 411 assertEquals( new LdapURL( "ldap://www.apache.org/" ).toString(), referral.toString() ); 412 } 413 catch ( NamingException e ) 414 { 415 fail(); 416 } 417 418 Object referral2 = referrals.get( 1 ); 419 420 try 421 { 422 assertEquals( new LdapURL( "ldap://www.apple.com/" ).toString(), referral2.toString() ); 423 } 424 catch ( NamingException e ) 425 { 426 fail(); 427 } 428 } 429 430 431 434 public void testResponseWith1ReferralAndAnErrorMessage() 435 { 436 Dsmlv2ResponseParser parser = null; 437 try 438 { 439 parser = new Dsmlv2ResponseParser(); 440 441 parser.setInputFile( ExtendedResponseTest.class.getResource( 442 "response_with_1_referral_and_error_message.xml" ).getFile() ); 443 444 parser.parse(); 445 } 446 catch ( Exception e ) 447 { 448 fail( e.getMessage() ); 449 } 450 451 ExtendedResponse extendedResponse = ( ExtendedResponse ) parser.getBatchResponse().getCurrentResponse(); 452 453 LdapResult ldapResult = extendedResponse.getLdapResult(); 454 455 List referrals = ldapResult.getReferrals(); 456 457 assertEquals( 1, referrals.size() ); 458 459 Object referral = referrals.get( 0 ); 460 461 try 462 { 463 assertEquals( new LdapURL( "ldap://www.apache.org/" ).toString(), referral.toString() ); 464 } 465 catch ( NamingException e ) 466 { 467 fail(); 468 } 469 } 470 471 472 475 public void testResponseWithMatchedDNAttribute() 476 { 477 Dsmlv2ResponseParser parser = null; 478 try 479 { 480 parser = new Dsmlv2ResponseParser(); 481 482 parser.setInputFile( ExtendedResponseTest.class.getResource( "response_with_matchedDN_attribute.xml" ) 483 .getFile() ); 484 485 parser.parse(); 486 } 487 catch ( Exception e ) 488 { 489 fail( e.getMessage() ); 490 } 491 492 ExtendedResponse extendedResponse = ( ExtendedResponse ) parser.getBatchResponse().getCurrentResponse(); 493 494 LdapResult ldapResult = extendedResponse.getLdapResult(); 495 496 assertEquals( "cn=Bob Rush,ou=Dev,dc=Example,dc=COM", ldapResult.getMatchedDN() ); 497 } 498 499 500 503 public void testResponseWithWrongMatchedDN() 504 { 505 testParsingFail( ExtendedResponseTest.class, "response_with_wrong_matchedDN_attribute.xml" ); 506 } 507 508 509 512 public void testResponseWithResponseName() 513 { 514 Dsmlv2ResponseParser parser = null; 515 try 516 { 517 parser = new Dsmlv2ResponseParser(); 518 519 parser.setInputFile( ExtendedResponseTest.class.getResource( "response_with_responseName.xml" ).getFile() ); 520 521 parser.parse(); 522 } 523 catch ( Exception e ) 524 { 525 fail( e.getMessage() ); 526 } 527 528 ExtendedResponse extendedResponse = ( ExtendedResponse ) parser.getBatchResponse().getCurrentResponse(); 529 530 try 531 { 532 assertEquals( new OID( "1.2.3.4.5.6.7.8.9.0" ).toString(), extendedResponse.getResponseName().toString() ); 533 } 534 catch ( DecoderException e ) 535 { 536 fail(); 537 } 538 } 539 540 543 public void testResponseWithEmptyResponseName() 544 { 545 Dsmlv2ResponseParser parser = null; 546 try 547 { 548 parser = new Dsmlv2ResponseParser(); 549 550 parser.setInputFile( ExtendedResponseTest.class.getResource( "response_with_empty_responseName.xml" ).getFile() ); 551 552 parser.parse(); 553 } 554 catch ( Exception e ) 555 { 556 fail( e.getMessage() ); 557 } 558 559 ExtendedResponse extendedResponse = ( ExtendedResponse ) parser.getBatchResponse().getCurrentResponse(); 560 561 assertEquals( "", extendedResponse.getResponseName().toString() ); 562 } 563 564 565 568 public void testResponseWithWrongResponseName() 569 { 570 testParsingFail( ExtendedResponseTest.class, "response_with_wrong_responseName.xml" ); 571 } 572 573 574 577 public void testResponseWithResponse() 578 { 579 Dsmlv2ResponseParser parser = null; 580 try 581 { 582 parser = new Dsmlv2ResponseParser(); 583 584 parser.setInputFile( ExtendedResponseTest.class.getResource( "response_with_response.xml" ).getFile() ); 585 586 parser.parse(); 587 } 588 catch ( Exception e ) 589 { 590 fail( e.getMessage() ); 591 } 592 593 ExtendedResponse extendedResponse = ( ExtendedResponse ) parser.getBatchResponse().getCurrentResponse(); 594 595 assertEquals( "This is a response", extendedResponse.getResponse() ); 596 } 597 598 601 public void testResponseWithBase64Response() 602 { 603 Dsmlv2ResponseParser parser = null; 604 try 605 { 606 parser = new Dsmlv2ResponseParser(); 607 608 parser.setInputFile( ExtendedResponseTest.class.getResource( "response_with_base64_response.xml" ).getFile() ); 609 610 parser.parse(); 611 } 612 catch ( Exception e ) 613 { 614 fail( e.getMessage() ); 615 } 616 617 ExtendedResponse extendedResponse = ( ExtendedResponse ) parser.getBatchResponse().getCurrentResponse(); 618 619 assertEquals( "DSMLv2.0 rocks!!", new String ( (byte[]) extendedResponse.getResponse() ) ); 620 } 621 622 625 public void testResponseWithEmptyResponse() 626 { 627 Dsmlv2ResponseParser parser = null; 628 try 629 { 630 parser = new Dsmlv2ResponseParser(); 631 632 parser.setInputFile( ExtendedResponseTest.class.getResource( "response_with_empty_response.xml" ).getFile() ); 633 634 parser.parse(); 635 } 636 catch ( Exception e ) 637 { 638 fail( e.getMessage() ); 639 } 640 641 ExtendedResponse extendedResponse = ( ExtendedResponse ) parser.getBatchResponse().getCurrentResponse(); 642 643 assertEquals( "", extendedResponse.getResponse() ); 644 } 645 646 647 650 public void testResponseWithResponseNameAndResponse() 651 { 652 Dsmlv2ResponseParser parser = null; 653 try 654 { 655 parser = new Dsmlv2ResponseParser(); 656 657 parser.setInputFile( ExtendedResponseTest.class.getResource( "response_with_responseName_and_response.xml" ) 658 .getFile() ); 659 660 parser.parse(); 661 } 662 catch ( Exception e ) 663 { 664 fail( e.getMessage() ); 665 } 666 667 ExtendedResponse extendedResponse = ( ExtendedResponse ) parser.getBatchResponse().getCurrentResponse(); 668 669 assertEquals( "This is a response", extendedResponse.getResponse() ); 670 671 try 672 { 673 assertEquals( new OID( "1.2.3.4.5.6.7.8.9.0" ).toString(), extendedResponse.getResponseName().toString() ); 674 } 675 catch ( DecoderException e ) 676 { 677 fail(); 678 } 679 } 680 681 682 685 public void testResponseWithWrongDescr() 686 { 687 testParsingFail( ExtendedResponseTest.class, "response_with_wrong_descr.xml" ); 688 } 689 } 690 | Popular Tags |