KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > scriptella > driver > ldap > ldif > SubstitutingLineReaderTest


1 /*
2  * Copyright 2006-2007 The Scriptella Project Team.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */

16 package scriptella.driver.ldap.ldif;
17
18 import scriptella.AbstractTestCase;
19 import scriptella.spi.MockParametersCallbacks;
20 import scriptella.spi.ParametersCallback;
21
22 import java.io.BufferedReader JavaDoc;
23 import java.io.IOException JavaDoc;
24 import java.io.StringReader JavaDoc;
25
26 /**
27  * Tests for {@link SubstitutingLineReader}.
28  *
29  * @author Fyodor Kupolov
30  * @version 1.0
31  */

32 public class SubstitutingLineReaderTest extends AbstractTestCase {
33     public void test() throws IOException JavaDoc {
34         ParametersCallback pc = MockParametersCallbacks.SIMPLE;
35         String JavaDoc test = "Just a ${test}\n" +
36                 "Line2 $var:\n" +
37                 "\n" +
38                 "Line${a}4";
39         SubstitutingLineReader reader = new SubstitutingLineReader(new StringReader JavaDoc(test), pc);
40         String JavaDoc s = reader.readLine();
41         assertEquals("Just a *test*", s);
42         s = reader.readLine();
43         assertEquals("Line2 *var*:", s);
44         s = reader.readLine();
45         assertEquals("", s);
46         s = reader.readLine();
47         assertEquals("Line*a*4", s);
48         assertEquals(null, reader.readLine()); //EOF
49
}
50
51     /**
52      * Tests substitution in LDIF files.
53      */

54     public void testLdif() throws IOException JavaDoc {
55         String JavaDoc expected = "dn: cn=Gern Jensen, ou=Product Testing, dc=airius, dc=com\n" +
56                 "objectclass: top\n" +
57                 "cn: Gern Jensen\n" +
58                 "sn: Jensen\n" +
59                 "uid: gernj\n" +
60                 "telephonenumber: +1 408 555 1212\n" +
61                 "description:: V2hhdCBhIGNhcmVmdWwgcmVhZGVyIHlvdSBhcmUhICBUaGlzIHZhbHVl"+
62                             "IGlzIGJhc2UtNjQtZW5jb2RlZCBiZWNhdXNlIGl0IGhhcyBhIGNvbnRyb2wgY2hhcmFjdG";
63         ParametersCallback pc = new ParametersCallback() {
64             public Object JavaDoc getParameter(final String JavaDoc name) {
65                 if ("cn".equals(name)) {
66                     return "Gern Jensen";
67                 }
68                 if ("desc".equals(name)) {
69                     return "V2hhdCBhIGNhcmVmdWwgcmVhZGVyIHlvdSBhcmUhICBUaGlzIHZhbHVl"+
70                             "IGlzIGJhc2UtNjQtZW5jb2RlZCBiZWNhdXNlIGl0IGhhcyBhIGNvbnRyb2wgY2hhcmFjdG";
71                 }
72                 return null;
73             }
74         };
75
76         String JavaDoc str = "dn: cn=${cn}, ou=Product Testing, dc=airius, dc=com\n" +
77                 "objectclass: top\n" +
78                 "cn: $cn\n" +
79                 "sn: Jensen\n" +
80                 "uid: gernj\n" +
81                 "telephonenumber: +1 408 555 1212\n" +
82                 "description:: $desc";
83         SubstitutingLineReader r = new SubstitutingLineReader(new StringReader JavaDoc(str), pc);
84         BufferedReader JavaDoc r2 = new BufferedReader JavaDoc(new StringReader JavaDoc(expected));
85         for (int i=0;i<8;i++) {
86             assertEquals(r2.readLine(), r.readLine());
87         }
88
89
90     }
91 }
92
Popular Tags