Skip to content

Commit d03d21f

Browse files
add add RealtimeReporterFetchSizeTest.java generated by Xtend 2.20.0
1 parent 54bc152 commit d03d21f

File tree

1 file changed

+214
-128
lines changed

1 file changed

+214
-128
lines changed
Lines changed: 214 additions & 128 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/*
1+
/**
22
* Copyright 2019 Philipp Salvisberg <philipp.salvisberg@trivadis.com>
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -13,132 +13,218 @@
1313
* See the License for the specific language governing permissions and
1414
* limitations under the License.
1515
*/
16-
package org.utplsql.sqldev.test.dal
16+
package org.utplsql.sqldev.test.dal;
1717

18-
import java.util.UUID
19-
import java.util.logging.Logger
20-
import org.junit.AfterClass
21-
import org.junit.Assert
22-
import org.junit.BeforeClass
23-
import org.junit.Test
24-
import org.springframework.jdbc.BadSqlGrammarException
25-
import org.springframework.jdbc.datasource.SingleConnectionDataSource
26-
import org.utplsql.sqldev.dal.RealtimeReporterDao
27-
import org.utplsql.sqldev.test.AbstractJdbcTest
18+
import java.sql.Connection;
19+
import java.util.Collections;
20+
import java.util.UUID;
21+
import java.util.logging.Logger;
22+
import org.eclipse.xtend2.lib.StringConcatenation;
23+
import org.eclipse.xtext.xbase.lib.CollectionLiterals;
24+
import org.eclipse.xtext.xbase.lib.Exceptions;
25+
import org.junit.AfterClass;
26+
import org.junit.Assert;
27+
import org.junit.BeforeClass;
28+
import org.junit.Test;
29+
import org.springframework.jdbc.BadSqlGrammarException;
30+
import org.springframework.jdbc.datasource.SingleConnectionDataSource;
31+
import org.utplsql.sqldev.dal.RealtimeReporterDao;
32+
import org.utplsql.sqldev.test.AbstractJdbcTest;
33+
import org.utplsql.sqldev.test.dal.TestRealtimerReporterEventTimedConsumer;
2834

29-
class RealtimeReporterFetchSizeTest extends AbstractJdbcTest {
30-
31-
static val Logger logger = Logger.getLogger(RealtimeReporterFetchSizeTest.name);
32-
33-
@BeforeClass
34-
def static void setup() {
35-
36-
jdbcTemplate.execute('''
37-
CREATE OR REPLACE PACKAGE junit_utplsql_fetch_size_pkg is
38-
--%suite(JUnit testing)
39-
40-
--%test(test 1 - 0 seconds)
41-
PROCEDURE test_1_0;
42-
43-
--%test(test 2 - 1 seconds)
44-
PROCEDURE test_2_1;
45-
46-
--%test(test 3 - 2 seconds)
47-
PROCEDURE test_3_2;
48-
49-
--%test(test 4 - 0 seconds)
50-
PROCEDURE test_4_0;
51-
52-
--%test(test 5 - 0 seconds)
53-
PROCEDURE test_5_0;
54-
END;
55-
''')
56-
jdbcTemplate.execute('''
57-
CREATE OR REPLACE PACKAGE BODY junit_utplsql_fetch_size_pkg is
58-
PROCEDURE test_1_0 IS
59-
BEGIN
60-
NULL;
61-
END;
62-
63-
PROCEDURE test_2_1 IS
64-
BEGIN
65-
dbms_session.sleep(1);
66-
END;
67-
68-
PROCEDURE test_3_2 IS
69-
BEGIN
70-
dbms_session.sleep(2);
71-
END;
72-
73-
PROCEDURE test_4_0 IS
74-
BEGIN
75-
NULL;
76-
END;
77-
78-
PROCEDURE test_5_0 IS
79-
BEGIN
80-
NULL;
81-
END;
82-
END;
83-
''')
84-
}
85-
86-
@AfterClass
87-
def static void teardown() {
88-
try {
89-
jdbcTemplate.execute("DROP PACKAGE junit_utplsql_fetch_size_pkg")
90-
} catch (BadSqlGrammarException e) {
91-
// ignore
92-
}
93-
}
94-
95-
private def delayFreeStreamingConsumtionProducer(String reporterId) {
96-
var ds = new SingleConnectionDataSource()
97-
ds.driverClassName = "oracle.jdbc.OracleDriver"
98-
ds.url = dataSource.url
99-
ds.username = dataSource.username
100-
ds.password = dataSource.password
101-
val dao = new RealtimeReporterDao(ds.connection)
102-
dao.produceReport(reporterId, #["junit_utplsql_fetch_size_pkg"])
103-
}
104-
105-
@Test
106-
def void delayFreeStreamingConsumtion() {
107-
val long TOLERANCE_MS = 600
108-
var ds = new SingleConnectionDataSource()
109-
ds.driverClassName = "oracle.jdbc.OracleDriver"
110-
ds.url = dataSource.url
111-
ds.username = dataSource.username
112-
ds.password = dataSource.password
113-
val consumer = new TestRealtimerReporterEventTimedConsumer
114-
val reporterId = UUID.randomUUID().toString.replace("-", "");
115-
val dao = new RealtimeReporterDao(ds.connection)
116-
val Runnable runnable = [|delayFreeStreamingConsumtionProducer(reporterId)]
117-
val thread = new Thread(runnable)
118-
thread.name = "utPLSQL run test"
119-
thread.start
120-
dao.consumeReport(reporterId, consumer)
121-
logger.fine(consumer.postTestEvents.toString)
122-
Assert.assertEquals(5, consumer.postTestEvents.entrySet.size)
123-
val test_1_0 = consumer.postTestEvents.get("junit_utplsql_fetch_size_pkg.test_1_0")
124-
val test_2_1 = consumer.postTestEvents.get("junit_utplsql_fetch_size_pkg.test_2_1")
125-
val test_3_2 = consumer.postTestEvents.get("junit_utplsql_fetch_size_pkg.test_3_2")
126-
val test_4_0 = consumer.postTestEvents.get("junit_utplsql_fetch_size_pkg.test_4_0")
127-
val test_5_0 = consumer.postTestEvents.get("junit_utplsql_fetch_size_pkg.test_5_0")
128-
val test_2_1_time = test_2_1 - test_1_0
129-
logger.fine("test_2_1 time [ms]: " + test_2_1_time)
130-
Assert.assertTrue("test_2_1 runtime was too long", test_2_1_time < 1000 + TOLERANCE_MS)
131-
Assert.assertTrue("test_2_1 runtime was too short", test_2_1_time > 1000 - TOLERANCE_MS)
132-
val test_3_2_time = test_3_2 - test_2_1
133-
logger.fine("test_3_2 time [ms]: " + test_3_2_time)
134-
Assert.assertTrue("test_3_2 runtime was too long", test_3_2_time < 2000 + TOLERANCE_MS)
135-
Assert.assertTrue("test_3_2 runtime was too short", test_3_2_time > 2000 - TOLERANCE_MS)
136-
val test_4_0_time = test_4_0 - test_3_2
137-
logger.fine("test_4_0 time [ms]: " + test_4_0_time)
138-
Assert.assertTrue("test_4_0 runtime was too long", test_4_0_time < TOLERANCE_MS)
139-
val test_5_0_time = test_5_0 - test_4_0
140-
logger.fine("test_5_0 time [ms]: " + test_5_0_time)
141-
Assert.assertTrue("test_5_0 runtime was too long", test_5_0_time < TOLERANCE_MS)
142-
}
143-
144-
}
35+
@SuppressWarnings("all")
36+
public class RealtimeReporterFetchSizeTest extends AbstractJdbcTest {
37+
private static final Logger logger = Logger.getLogger(RealtimeReporterFetchSizeTest.class.getName());
38+
39+
@BeforeClass
40+
public static void setup() {
41+
StringConcatenation _builder = new StringConcatenation();
42+
_builder.append("CREATE OR REPLACE PACKAGE junit_utplsql_fetch_size_pkg is");
43+
_builder.newLine();
44+
_builder.append(" ");
45+
_builder.append("--%suite(JUnit testing)");
46+
_builder.newLine();
47+
_builder.newLine();
48+
_builder.append(" ");
49+
_builder.append("--%test(test 1 - 0 seconds) ");
50+
_builder.newLine();
51+
_builder.append(" ");
52+
_builder.append("PROCEDURE test_1_0;");
53+
_builder.newLine();
54+
_builder.newLine();
55+
_builder.append(" ");
56+
_builder.append("--%test(test 2 - 1 seconds) ");
57+
_builder.newLine();
58+
_builder.append(" ");
59+
_builder.append("PROCEDURE test_2_1;");
60+
_builder.newLine();
61+
_builder.newLine();
62+
_builder.append(" ");
63+
_builder.append("--%test(test 3 - 2 seconds) ");
64+
_builder.newLine();
65+
_builder.append(" ");
66+
_builder.append("PROCEDURE test_3_2;");
67+
_builder.newLine();
68+
_builder.newLine();
69+
_builder.append(" ");
70+
_builder.append("--%test(test 4 - 0 seconds) ");
71+
_builder.newLine();
72+
_builder.append(" ");
73+
_builder.append("PROCEDURE test_4_0;");
74+
_builder.newLine();
75+
_builder.newLine();
76+
_builder.append(" ");
77+
_builder.append("--%test(test 5 - 0 seconds) ");
78+
_builder.newLine();
79+
_builder.append(" ");
80+
_builder.append("PROCEDURE test_5_0;");
81+
_builder.newLine();
82+
_builder.append("END;");
83+
_builder.newLine();
84+
AbstractJdbcTest.jdbcTemplate.execute(_builder.toString());
85+
StringConcatenation _builder_1 = new StringConcatenation();
86+
_builder_1.append("CREATE OR REPLACE PACKAGE BODY junit_utplsql_fetch_size_pkg is");
87+
_builder_1.newLine();
88+
_builder_1.append(" ");
89+
_builder_1.append("PROCEDURE test_1_0 IS");
90+
_builder_1.newLine();
91+
_builder_1.append(" ");
92+
_builder_1.append("BEGIN");
93+
_builder_1.newLine();
94+
_builder_1.append(" ");
95+
_builder_1.append("NULL;");
96+
_builder_1.newLine();
97+
_builder_1.append(" ");
98+
_builder_1.append("END;");
99+
_builder_1.newLine();
100+
_builder_1.newLine();
101+
_builder_1.append(" ");
102+
_builder_1.append("PROCEDURE test_2_1 IS");
103+
_builder_1.newLine();
104+
_builder_1.append(" ");
105+
_builder_1.append("BEGIN");
106+
_builder_1.newLine();
107+
_builder_1.append(" ");
108+
_builder_1.append("dbms_session.sleep(1);");
109+
_builder_1.newLine();
110+
_builder_1.append(" ");
111+
_builder_1.append("END;");
112+
_builder_1.newLine();
113+
_builder_1.newLine();
114+
_builder_1.append(" ");
115+
_builder_1.append("PROCEDURE test_3_2 IS");
116+
_builder_1.newLine();
117+
_builder_1.append(" ");
118+
_builder_1.append("BEGIN");
119+
_builder_1.newLine();
120+
_builder_1.append(" ");
121+
_builder_1.append("dbms_session.sleep(2);");
122+
_builder_1.newLine();
123+
_builder_1.append(" ");
124+
_builder_1.append("END;");
125+
_builder_1.newLine();
126+
_builder_1.newLine();
127+
_builder_1.append(" ");
128+
_builder_1.append("PROCEDURE test_4_0 IS");
129+
_builder_1.newLine();
130+
_builder_1.append(" ");
131+
_builder_1.append("BEGIN");
132+
_builder_1.newLine();
133+
_builder_1.append(" ");
134+
_builder_1.append("NULL;");
135+
_builder_1.newLine();
136+
_builder_1.append(" ");
137+
_builder_1.append("END;");
138+
_builder_1.newLine();
139+
_builder_1.newLine();
140+
_builder_1.append(" ");
141+
_builder_1.append("PROCEDURE test_5_0 IS");
142+
_builder_1.newLine();
143+
_builder_1.append(" ");
144+
_builder_1.append("BEGIN");
145+
_builder_1.newLine();
146+
_builder_1.append(" ");
147+
_builder_1.append("NULL;");
148+
_builder_1.newLine();
149+
_builder_1.append(" ");
150+
_builder_1.append("END;");
151+
_builder_1.newLine();
152+
_builder_1.append("END;");
153+
_builder_1.newLine();
154+
AbstractJdbcTest.jdbcTemplate.execute(_builder_1.toString());
155+
}
156+
157+
@AfterClass
158+
public static void teardown() {
159+
try {
160+
AbstractJdbcTest.jdbcTemplate.execute("DROP PACKAGE junit_utplsql_fetch_size_pkg");
161+
} catch (final Throwable _t) {
162+
if (_t instanceof BadSqlGrammarException) {
163+
} else {
164+
throw Exceptions.sneakyThrow(_t);
165+
}
166+
}
167+
}
168+
169+
private void delayFreeStreamingConsumtionProducer(final String reporterId) {
170+
try {
171+
SingleConnectionDataSource ds = new SingleConnectionDataSource();
172+
ds.setDriverClassName("oracle.jdbc.OracleDriver");
173+
ds.setUrl(AbstractJdbcTest.dataSource.getUrl());
174+
ds.setUsername(AbstractJdbcTest.dataSource.getUsername());
175+
ds.setPassword(AbstractJdbcTest.dataSource.getPassword());
176+
Connection _connection = ds.getConnection();
177+
final RealtimeReporterDao dao = new RealtimeReporterDao(_connection);
178+
dao.produceReport(reporterId, Collections.<String>unmodifiableList(CollectionLiterals.<String>newArrayList("junit_utplsql_fetch_size_pkg")));
179+
} catch (Throwable _e) {
180+
throw Exceptions.sneakyThrow(_e);
181+
}
182+
}
183+
184+
@Test
185+
public void delayFreeStreamingConsumtion() {
186+
try {
187+
final long TOLERANCE_MS = 600;
188+
SingleConnectionDataSource ds = new SingleConnectionDataSource();
189+
ds.setDriverClassName("oracle.jdbc.OracleDriver");
190+
ds.setUrl(AbstractJdbcTest.dataSource.getUrl());
191+
ds.setUsername(AbstractJdbcTest.dataSource.getUsername());
192+
ds.setPassword(AbstractJdbcTest.dataSource.getPassword());
193+
final TestRealtimerReporterEventTimedConsumer consumer = new TestRealtimerReporterEventTimedConsumer();
194+
final String reporterId = UUID.randomUUID().toString().replace("-", "");
195+
Connection _connection = ds.getConnection();
196+
final RealtimeReporterDao dao = new RealtimeReporterDao(_connection);
197+
final Runnable _function = () -> {
198+
this.delayFreeStreamingConsumtionProducer(reporterId);
199+
};
200+
final Runnable runnable = _function;
201+
final Thread thread = new Thread(runnable);
202+
thread.setName("utPLSQL run test");
203+
thread.start();
204+
dao.consumeReport(reporterId, consumer);
205+
RealtimeReporterFetchSizeTest.logger.fine(consumer.getPostTestEvents().toString());
206+
Assert.assertEquals(5, consumer.getPostTestEvents().entrySet().size());
207+
final Long test_1_0 = consumer.getPostTestEvents().get("junit_utplsql_fetch_size_pkg.test_1_0");
208+
final Long test_2_1 = consumer.getPostTestEvents().get("junit_utplsql_fetch_size_pkg.test_2_1");
209+
final Long test_3_2 = consumer.getPostTestEvents().get("junit_utplsql_fetch_size_pkg.test_3_2");
210+
final Long test_4_0 = consumer.getPostTestEvents().get("junit_utplsql_fetch_size_pkg.test_4_0");
211+
final Long test_5_0 = consumer.getPostTestEvents().get("junit_utplsql_fetch_size_pkg.test_5_0");
212+
final long test_2_1_time = ((test_2_1).longValue() - (test_1_0).longValue());
213+
RealtimeReporterFetchSizeTest.logger.fine(("test_2_1 time [ms]: " + Long.valueOf(test_2_1_time)));
214+
Assert.assertTrue("test_2_1 runtime was too long", (test_2_1_time < (1000 + TOLERANCE_MS)));
215+
Assert.assertTrue("test_2_1 runtime was too short", (test_2_1_time > (1000 - TOLERANCE_MS)));
216+
final long test_3_2_time = ((test_3_2).longValue() - (test_2_1).longValue());
217+
RealtimeReporterFetchSizeTest.logger.fine(("test_3_2 time [ms]: " + Long.valueOf(test_3_2_time)));
218+
Assert.assertTrue("test_3_2 runtime was too long", (test_3_2_time < (2000 + TOLERANCE_MS)));
219+
Assert.assertTrue("test_3_2 runtime was too short", (test_3_2_time > (2000 - TOLERANCE_MS)));
220+
final long test_4_0_time = ((test_4_0).longValue() - (test_3_2).longValue());
221+
RealtimeReporterFetchSizeTest.logger.fine(("test_4_0 time [ms]: " + Long.valueOf(test_4_0_time)));
222+
Assert.assertTrue("test_4_0 runtime was too long", (test_4_0_time < TOLERANCE_MS));
223+
final long test_5_0_time = ((test_5_0).longValue() - (test_4_0).longValue());
224+
RealtimeReporterFetchSizeTest.logger.fine(("test_5_0 time [ms]: " + Long.valueOf(test_5_0_time)));
225+
Assert.assertTrue("test_5_0 runtime was too long", (test_5_0_time < TOLERANCE_MS));
226+
} catch (Throwable _e) {
227+
throw Exceptions.sneakyThrow(_e);
228+
}
229+
}
230+
}

0 commit comments

Comments
 (0)