KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > directory > ldapstudio > dsmlv2 > extendedResponse > ExtendedResponseTest


1 /*
2  * Licensed to the Apache Software Foundation (ASF) under one
3  * or more contributor license agreements. See the NOTICE file
4  * distributed with this work for additional information
5  * regarding copyright ownership. The ASF licenses this file
6  * to you under the Apache License, Version 2.0 (the
7  * "License"); you may not use this file except in compliance
8  * with the License. You may obtain a copy of the License at
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing,
13  * software distributed under the License is distributed on an
14  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15  * KIND, either express or implied. See the License for the
16  * specific language governing permissions and limitations
17  * under the License.
18  *
19  */

20
21 package org.apache.directory.ldapstudio.dsmlv2.extendedResponse;
22
23
24 import java.util.List JavaDoc;
25
26 import javax.naming.NamingException JavaDoc;
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 /**
42  * Tests for the Extended Response parsing
43  *
44  * @author <a HREF="mailto:dev@directory.apache.org">Apache Directory Project</a>
45  * @version $Rev$, $Date$
46  */

47 public class ExtendedResponseTest extends AbstractResponseTest
48 {
49
50     /**
51      * Test parsing of a Response with the (optional) requestID attribute
52      */

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 JavaDoc 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     /**
77      * Test parsing of a Response with the (optional) requestID attribute equals 0
78      */

79     public void testResponseWithRequestIdEquals0()
80     {
81         testParsingFail( ExtendedResponseTest.class, "response_with_requestID_equals_0.xml" );
82     }
83
84
85     /**
86      * Test parsing of a response with a (optional) Control element
87      */

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 JavaDoc 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     /**
118      * Test parsing of a response with a (optional) Control element with empty value
119      */

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 JavaDoc 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     /**
147      * Test parsing of a response with 2 (optional) Control elements
148      */

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 JavaDoc 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     /**
180      * Test parsing of a response with 3 (optional) Control elements without value
181      */

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 JavaDoc 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     /**
214      * Test parsing of a response without Result Code element
215      */

216     public void testResponseWithoutResultCode()
217     {
218         testParsingFail( ExtendedResponseTest.class, "response_without_result_code.xml" );
219     }
220
221
222     /**
223      * Test parsing of a response with Result Code element but a not integer value
224      */

225     public void testResponseWithResultCodeNotInteger()
226     {
227         testParsingFail( ExtendedResponseTest.class, "response_with_result_code_not_integer.xml" );
228     }
229
230
231     /**
232      * Test parsing of a response with Result Code
233      */

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 JavaDoc 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     /**
259      * Test parsing of a response with Error Message
260      */

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 JavaDoc 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     /**
286      * Test parsing of a response with empty Error Message
287      */

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 JavaDoc 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     /**
313      * Test parsing of a response with a Referral
314      */

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 JavaDoc e )
327         {
328             fail( e.getMessage() );
329         }
330
331         ExtendedResponse extendedResponse = ( ExtendedResponse ) parser.getBatchResponse().getCurrentResponse();
332
333         LdapResult ldapResult = extendedResponse.getLdapResult();
334
335         List JavaDoc referrals = ldapResult.getReferrals();
336
337         assertEquals( 1, referrals.size() );
338
339         Object JavaDoc referral = referrals.get( 0 );
340
341         try
342         {
343             assertEquals( new LdapURL( "ldap://www.apache.org/" ).toString(), referral.toString() );
344         }
345         catch ( NamingException JavaDoc e )
346         {
347             fail();
348         }
349     }
350     
351     /**
352      * Test parsing of a response with a empty Referral
353      */

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 JavaDoc e )
366         {
367             fail( e.getMessage() );
368         }
369
370         ExtendedResponse extendedResponse = ( ExtendedResponse ) parser.getBatchResponse().getCurrentResponse();
371
372         LdapResult ldapResult = extendedResponse.getLdapResult();
373
374         List JavaDoc referrals = ldapResult.getReferrals();
375
376         assertEquals( 0, referrals.size() );
377     }
378
379
380     /**
381      * Test parsing of a response with 2 Referral elements
382      */

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 JavaDoc e )
395         {
396             fail( e.getMessage() );
397         }
398
399         ExtendedResponse extendedResponse = ( ExtendedResponse ) parser.getBatchResponse().getCurrentResponse();
400
401         LdapResult ldapResult = extendedResponse.getLdapResult();
402
403         List JavaDoc referrals = ldapResult.getReferrals();
404
405         assertEquals( 2, referrals.size() );
406
407         Object JavaDoc referral = referrals.get( 0 );
408
409         try
410         {
411             assertEquals( new LdapURL( "ldap://www.apache.org/" ).toString(), referral.toString() );
412         }
413         catch ( NamingException JavaDoc e )
414         {
415             fail();
416         }
417
418         Object JavaDoc referral2 = referrals.get( 1 );
419
420         try
421         {
422             assertEquals( new LdapURL( "ldap://www.apple.com/" ).toString(), referral2.toString() );
423         }
424         catch ( NamingException JavaDoc e )
425         {
426             fail();
427         }
428     }
429
430
431     /**
432      * Test parsing of a response with a Referral and an Error Message
433      */

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 JavaDoc e )
447         {
448             fail( e.getMessage() );
449         }
450
451         ExtendedResponse extendedResponse = ( ExtendedResponse ) parser.getBatchResponse().getCurrentResponse();
452
453         LdapResult ldapResult = extendedResponse.getLdapResult();
454
455         List JavaDoc referrals = ldapResult.getReferrals();
456
457         assertEquals( 1, referrals.size() );
458
459         Object JavaDoc referral = referrals.get( 0 );
460
461         try
462         {
463             assertEquals( new LdapURL( "ldap://www.apache.org/" ).toString(), referral.toString() );
464         }
465         catch ( NamingException JavaDoc e )
466         {
467             fail();
468         }
469     }
470
471
472     /**
473      * Test parsing of a response with MatchedDN attribute
474      */

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 JavaDoc 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     /**
501      * Test parsing of a response with wrong matched DN
502      */

503     public void testResponseWithWrongMatchedDN()
504     {
505         testParsingFail( ExtendedResponseTest.class, "response_with_wrong_matchedDN_attribute.xml" );
506     }
507
508
509     /**
510      * Test parsing of a response with Response Name
511      */

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 JavaDoc 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     /**
541      * Test parsing of a response with empty Response Name
542      */

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 JavaDoc 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     /**
566      * Test parsing of a response with wrong Response Name
567      */

568     public void testResponseWithWrongResponseName()
569     {
570         testParsingFail( ExtendedResponseTest.class, "response_with_wrong_responseName.xml" );
571     }
572
573
574     /**
575      * Test parsing of a response with Response
576      */

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 JavaDoc 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     /**
599      * Test parsing of a response with Base64 Response
600      */

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 JavaDoc e )
613         {
614             fail( e.getMessage() );
615         }
616
617         ExtendedResponse extendedResponse = ( ExtendedResponse ) parser.getBatchResponse().getCurrentResponse();
618
619         assertEquals( "DSMLv2.0 rocks!!", new String JavaDoc( (byte[]) extendedResponse.getResponse() ) );
620     }
621     
622     /**
623      * Test parsing of a response with empty Response
624      */

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 JavaDoc e )
637         {
638             fail( e.getMessage() );
639         }
640
641         ExtendedResponse extendedResponse = ( ExtendedResponse ) parser.getBatchResponse().getCurrentResponse();
642
643         assertEquals( "", extendedResponse.getResponse() );
644     }
645
646
647     /**
648      * Test parsing of a response with Response Name and Response
649      */

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 JavaDoc 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     /**
683      * Test parsing of a response with wrong Descr attribute
684      */

685     public void testResponseWithWrongDescr()
686     {
687         testParsingFail( ExtendedResponseTest.class, "response_with_wrong_descr.xml" );
688     }
689 }
690
Popular Tags