Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit ffb8ba5

Browse filesBrowse files
add test to reproduce issue #126
1 parent 4abeec7 commit ffb8ba5
Copy full SHA for ffb8ba5

File tree

1 file changed

+108
-0
lines changed
Filter options

1 file changed

+108
-0
lines changed
+108Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
/*
2+
* Copyright 2021 Philipp Salvisberg <philipp.salvisberg@trivadis.com>
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 org.utplsql.sqldev.test.runner;
17+
18+
import java.sql.Connection;
19+
import java.util.Collections;
20+
import java.util.LinkedHashMap;
21+
22+
import org.junit.After;
23+
import org.junit.Assert;
24+
import org.junit.Before;
25+
import org.junit.Test;
26+
import org.springframework.jdbc.datasource.SingleConnectionDataSource;
27+
import org.utplsql.sqldev.model.DatabaseTools;
28+
import org.utplsql.sqldev.model.SystemTools;
29+
import org.utplsql.sqldev.model.runner.ItemNode;
30+
import org.utplsql.sqldev.runner.UtplsqlRunner;
31+
import org.utplsql.sqldev.test.AbstractJdbcTest;
32+
33+
public class UtplsqlRunnerAggregationTest extends AbstractJdbcTest {
34+
static final int SHOW_GUI_AFTER_RUN_COMPLETION_IN_SECONDS = 0;
35+
36+
@Before
37+
public void setup() {
38+
// based on https://github.com/utPLSQL/utPLSQL-SQLDeveloper/issues/126
39+
jdbcTemplate.execute(
40+
"create or replace package x is\n"
41+
+ "\n"
42+
+ " --%suite(suite x)\n"
43+
+ " --%suitepath(foo.bar)\n"
44+
+ "\n"
45+
+ " --%test(feature a)\n"
46+
+ " --%disabled\n"
47+
+ " procedure test_a;\n"
48+
+ "\n"
49+
+ " --%test(feature b)\n"
50+
+ " --%disabled\n"
51+
+ " procedure test_b;\n"
52+
+ "\n"
53+
+ "end;");
54+
jdbcTemplate.execute(
55+
"create or replace package y is\n"
56+
+ "\n"
57+
+ " --%suite(suite y)\n"
58+
+ " --%suitepath(foo.bar)\n"
59+
+ "\n"
60+
+ " --%test(feature c)\n"
61+
+ " --%disabled\n"
62+
+ " procedure test_c;\n"
63+
+ "\n"
64+
+ " --%test(feature d)\n"
65+
+ " --%disabled\n"
66+
+ " procedure test_d;\n"
67+
+ "\n"
68+
+ "end;");
69+
}
70+
71+
@After
72+
public void teardown() {
73+
executeAndIgnore(jdbcTemplate, "DROP PACKAGE x");
74+
executeAndIgnore(jdbcTemplate, "DROP PACKAGE y");
75+
}
76+
77+
private Connection getNewConnection() {
78+
final SingleConnectionDataSource ds = new SingleConnectionDataSource();
79+
ds.setDriverClassName("oracle.jdbc.OracleDriver");
80+
ds.setUrl(dataSource.getUrl());
81+
ds.setUsername(dataSource.getUsername());
82+
ds.setPassword(dataSource.getPassword());
83+
return DatabaseTools.getConnection(ds);
84+
}
85+
86+
@Test
87+
public void aggregateDescription() {
88+
UtplsqlRunner runner = new UtplsqlRunner(Collections.singletonList(":foo"), getNewConnection(), getNewConnection());
89+
runner.runTestAsync();
90+
SystemTools.waitForThread(runner.getProducerThread(), 10000);
91+
SystemTools.waitForThread(runner.getConsumerThread(), 10000);
92+
Assert.assertNotNull(runner);
93+
LinkedHashMap<String, ItemNode> nodes = runner.getRun().getItemNodes();
94+
Assert.assertEquals(9, nodes.size()); // 8 + 1 for the run node
95+
Assert.assertNotNull(nodes.get(runner.getRun().getReporterId()));
96+
Assert.assertNull(nodes.get("foo").getDescription());
97+
Assert.assertNull(nodes.get("foo.bar").getDescription());
98+
Assert.assertEquals("suite y", nodes.get("foo.bar.y").getDescription());
99+
Assert.assertEquals("suite x", nodes.get("foo.bar.x").getDescription());
100+
Assert.assertEquals("feature c", nodes.get("foo.bar.y.test_c").getDescription());
101+
Assert.assertEquals("feature d", nodes.get("foo.bar.y.test_d").getDescription());
102+
Assert.assertEquals("feature a", nodes.get("foo.bar.x.test_a").getDescription());
103+
Assert.assertEquals("feature b", nodes.get("foo.bar.x.test_b").getDescription());
104+
SystemTools.sleep(SHOW_GUI_AFTER_RUN_COMPLETION_IN_SECONDS * 1000);
105+
runner.dispose();
106+
}
107+
108+
}

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.