KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > scriptella > NestedQueryTest


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;
17
18 import scriptella.execution.EtlExecutor;
19 import scriptella.execution.EtlExecutorException;
20 import scriptella.jdbc.QueryHelper;
21 import scriptella.spi.ParametersCallback;
22 import scriptella.spi.QueryCallback;
23
24 import java.sql.Connection JavaDoc;
25 import java.util.Arrays JavaDoc;
26 import java.util.HashSet JavaDoc;
27 import java.util.Set JavaDoc;
28
29
30 /**
31  * This class provides several tests for checking transaction attributes processing.
32  */

33 public class NestedQueryTest extends DBTestCase {
34     public void test() throws EtlExecutorException {
35         getConnection("nestedquerytestdb1"); //just for shutdown
36
final Connection JavaDoc con = getConnection("nestedquerytestdb2");
37
38         final EtlExecutor se = newEtlExecutor();
39         se.execute();
40
41         QueryHelper s = new QueryHelper("select * from result");
42         final Set JavaDoc<Integer JavaDoc> ids = new HashSet JavaDoc<Integer JavaDoc>();
43         Set JavaDoc<Integer JavaDoc> expectedIds = new HashSet JavaDoc<Integer JavaDoc>(Arrays.asList(
44                 new Integer JavaDoc[]{1, 3}));
45         final Set JavaDoc<String JavaDoc> texts = new HashSet JavaDoc<String JavaDoc>();
46         Set JavaDoc<String JavaDoc> expectedTexts = new HashSet JavaDoc<String JavaDoc>(Arrays.asList(
47                 new String JavaDoc[]{"One", "Three"}));
48
49         s.execute(con,
50                 new QueryCallback() {
51                     public void processRow(final ParametersCallback evaluator) {
52                         final Integer JavaDoc id = (Integer JavaDoc) evaluator.getParameter("id");
53                         ids.add(id);
54
55                         final String JavaDoc text = (String JavaDoc) evaluator.getParameter("text");
56                         texts.add(text);
57                         assertEquals("!tst", evaluator.getParameter("text2"));
58                     }
59                 });
60         assertEquals(ids, expectedIds);
61         assertEquals(texts, expectedTexts);
62     }
63
64     public void test2() throws EtlExecutorException {
65         getConnection("nestedquerytest2db1");//just for shutdown
66
final Connection JavaDoc con = getConnection("nestedquerytest2db2");
67
68         final EtlExecutor se = newEtlExecutor("NestedQueryTest2.xml");
69         se.execute();
70
71         QueryHelper s = new QueryHelper("select * from test");
72         final Set JavaDoc<Integer JavaDoc> ids = new HashSet JavaDoc<Integer JavaDoc>();
73         Set JavaDoc<Integer JavaDoc> expectedIds = new HashSet JavaDoc<Integer JavaDoc>(Arrays.asList(
74                 new Integer JavaDoc[]{5, 7, 13, 15, 2, 6}));
75
76         s.execute(con,
77                 new QueryCallback() {
78                     public void processRow(final ParametersCallback evaluator) {
79                         final Integer JavaDoc id = (Integer JavaDoc) evaluator.getParameter("id");
80                         ids.add(id);
81                     }
82                 });
83         assertEquals(ids, expectedIds);
84     }
85
86     /**
87      * Tests rownum pseudo-column.
88      */

89     public void testRownum() throws EtlExecutorException {
90         final Connection JavaDoc con = getConnection("nestedquerytestrownum");
91
92         final EtlExecutor se = newEtlExecutor("NestedQueryTestRownum.xml");
93         se.execute();
94
95         QueryHelper s = new QueryHelper("select * from Result");
96         final Set JavaDoc<Integer JavaDoc> ids = new HashSet JavaDoc<Integer JavaDoc>();
97         Set JavaDoc<Integer JavaDoc> expectedIds = new HashSet JavaDoc<Integer JavaDoc>(Arrays.asList(
98                 new Integer JavaDoc[]{1, 2, 3, 11, 12, 13}));
99
100         s.execute(con,
101                 new QueryCallback() {
102                     public void processRow(final ParametersCallback evaluator) {
103                         final Integer JavaDoc id = (Integer JavaDoc) evaluator.getParameter("id");
104                         ids.add(id);
105                     }
106                 });
107         assertEquals(expectedIds, ids);
108     }
109
110 }
111
Popular Tags