Skip to content

Commit 1135ee6

Browse files
committed
Updated tests
1 parent 51b5d30 commit 1135ee6

File tree

3 files changed

+126
-118
lines changed

3 files changed

+126
-118
lines changed

utPLSQL.Api/utPLSQL.Api.Test/RealTimeTestRunnerTest.cs

Lines changed: 53 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -10,101 +10,122 @@ namespace utPLSQL
1010
[TestClass]
1111
public class RealTimeTestRunnerTest
1212
{
13-
private RealTimeTestRunner testRunner;
14-
15-
[TestInitialize]
16-
public void Before()
17-
{
18-
testRunner = new RealTimeTestRunner();
19-
}
20-
21-
[TestCleanup]
22-
public void After()
23-
{
24-
testRunner.Close();
25-
}
2613

2714
[TestMethod]
2815
public async Task TestRunTests()
2916
{
30-
testRunner.Connect(username: "toscamtest", password: "toscamtest", database: "CA40");
17+
var testRunner = new RealTimeTestRunner();
18+
19+
testRunner.Connect(username: "ut3_tester", password: "ut3", database: "orclpdb1");
3120

3221
var events = new List<@event>();
33-
await testRunner.RunTestsAsync("toscamtest", @event =>
22+
await testRunner.RunTestsAsync("ut3_tester.test_ut_test", @event =>
3423
{
3524
events.Add(@event);
3625
});
3726

3827
Assert.AreEqual("pre-run", events[0].type);
3928
Assert.AreEqual("post-run", events.Last().type);
29+
30+
testRunner.Close();
4031
}
4132

4233
[TestMethod]
4334
public async Task TestConnectAs()
4435
{
45-
testRunner.Connect(username: "sys", password: "Oradoc_db1", database: "ORCLPDB1", connectAs: "SYSDBA");
36+
var testRunner = new RealTimeTestRunner();
37+
38+
testRunner.Connect(username: "sys", password: "Oradoc_db1", database: "orclpdb1", connectAs: "sysdba");
4639

4740
try
4841
{
49-
await testRunner.RunTestsAsync("toscamtest", @event => { });
42+
await testRunner.RunTestsAsync("ut3_tester.test_ut_test", @event => { });
5043

5144
Assert.Fail();
5245
}
5346
catch (OracleException e)
5447
{
5548
Assert.IsTrue(e.Message.StartsWith("ORA-06598"));
49+
50+
testRunner.Close();
5651
}
5752
}
5853

5954
[TestMethod]
6055
public async Task TestRunTestsWithCoverage()
6156
{
62-
testRunner.Connect(username: "toscamtest", password: "toscamtest", database: "CA40");
57+
var testRunner = new RealTimeTestRunner();
58+
59+
testRunner.Connect(username: "ut3_tester", password: "ut3", database: "orclpdb1");
6360

6461
var events = new List<@event>();
6562

66-
string report = await testRunner.RunTestsWithCoverageAsync(path: "toscamtest", consumer: @event => { events.Add(@event); },
67-
coverageSchema: "toscam", includeObjects: new List<string>() { "pa_m720", "pa_m770" });
63+
string report = await testRunner.RunTestsWithCoverageAsync(path: "ut3_tester.test_ut_test", consumer: @event => { events.Add(@event); },
64+
coverageSchema: "ut3_develop", includeObjects: new List<string>() { "ut_test" });
65+
Logger.LogMessage(report);
6866

6967
Assert.AreEqual("pre-run", events[0].type);
7068
Assert.AreEqual("post-run", events.Last().type);
7169

72-
Logger.LogMessage(report);
70+
testRunner.Close();
7371
}
7472

75-
7673
[TestMethod]
7774
public void TestRunTestsAndAbort()
7875
{
79-
testRunner.Connect(username: "toscamtest", password: "toscamtest", database: "CA40");
76+
var testRunner = new RealTimeTestRunner();
77+
78+
testRunner.Connect(username: "ut3_tester", password: "ut3", database: "orclpdb1");
8079

81-
testRunner.RunTestsAsync("toscamtest", @event => { });
80+
testRunner.RunTestsAsync("ut3_tester.test_ut_test", @event => { });
81+
82+
testRunner.Close();
8283
}
8384

8485
[TestMethod]
8586
public async Task TestRunTestsTwoTimes()
8687
{
87-
testRunner.Connect(username: "toscamtest", password: "toscamtest", database: "CA40");
88+
var testRunner = new RealTimeTestRunner();
89+
90+
testRunner.Connect(username: "ut3_tester", password: "ut3", database: "orclpdb1");
91+
92+
var events1 = new List<@event>();
93+
Task task1 = testRunner.RunTestsAsync("ut3_tester.test_ut_test", @event =>
94+
{
95+
events1.Add(@event);
96+
});
8897

89-
testRunner.RunTestsAsync("toscamtest", @event => { });
98+
var events2 = new List<@event>();
99+
Task task2 = testRunner.RunTestsAsync("ut3_tester.test_ut_test", @event =>
100+
{
101+
events2.Add(@event);
102+
});
90103

91-
await testRunner.RunTestsAsync("toscamtest", @event => { });
104+
await Task.WhenAll(task1, task2);
105+
106+
testRunner.Close();
92107
}
93108

94109
[TestMethod]
95110
public void TestGetVersion()
96111
{
97-
testRunner.Connect(username: "toscamtest", password: "toscamtest", database: "CA40");
112+
var testRunner = new RealTimeTestRunner();
113+
114+
testRunner.Connect(username: "ut3_tester", password: "ut3", database: "orclpdb1");
98115

99116
string version = testRunner.GetVersion();
100117

101-
Assert.AreEqual("v3.1.7.3096", version);
118+
Assert.AreEqual("v3.1.11.3469-develop", version);
119+
120+
testRunner.Close();
102121
}
103122

104123
// [TestMethod] Disabled
105124
public void TestGetVersionWhenNotInstalled()
106125
{
107-
testRunner.Connect(username: "sakila", password: "sakila", database: "ORCLPDB1");
126+
var testRunner = new RealTimeTestRunner();
127+
128+
testRunner.Connect(username: "ut3_tester", password: "ut3", database: "orclpdb1");
108129

109130
try
110131
{
@@ -114,6 +135,8 @@ public void TestGetVersionWhenNotInstalled()
114135
catch (OracleException e)
115136
{
116137
Assert.AreEqual("ORA-00904: \"UT\".\"VERSION\": ungültige ID", e.Message);
138+
139+
testRunner.Close();
117140
}
118141
}
119142
}

utPLSQL.Api/utPLSQL.Api/RealTimeTestRunner.cs

Lines changed: 54 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,8 @@ public override async Task RunTestsAsync(List<string> paths, Action<@event> cons
1919
{
2020
string realtimeReporterId = Guid.NewGuid().ToString().Replace("-", "");
2121

22-
Task taskRun = UtRunAsync(realtimeReporterId, paths);
23-
24-
Task taskConsume = ConsumeResultAsync(realtimeReporterId, consumer);
22+
Task taskRun = Task.Run(() => { UtRun(realtimeReporterId, paths); });
23+
Task taskConsume = Task.Run(() => { ConsumeResult(realtimeReporterId, consumer); });
2524

2625
await Task.WhenAll(taskRun, taskConsume);
2726
}
@@ -39,11 +38,9 @@ public override async Task<string> RunTestsWithCoverageAsync(List<string> paths,
3938
string realtimeReporterId = Guid.NewGuid().ToString().Replace("-", "");
4039
string coverageReporterId = Guid.NewGuid().ToString().Replace("-", "");
4140

42-
Task taskRun = UtRunWithCoverageAsync(realtimeReporterId, coverageReporterId, paths, coverageSchemas, includeObjects, excludeObjects);
43-
44-
Task taskConsume = ConsumeResultAsync(realtimeReporterId, consumer);
45-
46-
Task<string> taskCoverateReport = GetCoverageReportAsync(coverageReporterId);
41+
Task taskRun = Task.Run(() => { UtRunWithCoverage(realtimeReporterId, coverageReporterId, paths, coverageSchemas, includeObjects, excludeObjects); });
42+
Task taskConsume = Task.Run(() => { ConsumeResult(realtimeReporterId, consumer); });
43+
Task<string> taskCoverateReport = Task.Run(() => { return GetCoverageReport(coverageReporterId); });
4744

4845
await Task.WhenAll(taskRun, taskConsume, taskCoverateReport);
4946

@@ -60,11 +57,9 @@ public override async Task<string> RunTestsWithCoverageAsync(string path, Action
6057
return await RunTestsWithCoverageAsync(new List<string>() { path }, consumer, new List<string>() { coverageSchema }, includeObjects, excludeObjects);
6158
}
6259

63-
private async Task UtRunWithCoverageAsync(string realtimeReporterId, string coverageReporterId, List<string> paths, List<string> coverageSchemas, List<string> includeObjects, List<string> excludeObjects)
60+
private void UtRunWithCoverage(string realtimeReporterId, string coverageReporterId, List<string> paths, List<string> coverageSchemas, List<string> includeObjects, List<string> excludeObjects)
6461
{
65-
await Task.Run(() =>
66-
{
67-
var proc = $@"DECLARE
62+
var proc = $@"DECLARE
6863
l_rt_rep ut_realtime_reporter := ut_realtime_reporter();
6964
l_cov_rep ut_coverage_html_reporter := ut_coverage_html_reporter();
7065
BEGIN
@@ -75,43 +70,40 @@ await Task.Run(() =>
7570
sys.dbms_output.enable(NULL);
7671
ut_runner.run(a_paths => ut_varchar2_list({ConvertToUtVarchar2List(paths)}), ";
7772

78-
if (coverageSchemas != null && coverageSchemas.Count > 0)
79-
{
80-
proc += $"a_coverage_schemes => ut_varchar2_list({ConvertToUtVarchar2List(coverageSchemas)}), ";
81-
}
73+
if (coverageSchemas != null && coverageSchemas.Count > 0)
74+
{
75+
proc += $"a_coverage_schemes => ut_varchar2_list({ConvertToUtVarchar2List(coverageSchemas)}), ";
76+
}
8277

83-
if (includeObjects != null && includeObjects.Count > 0)
84-
{
85-
proc += $"a_include_objects => ut_varchar2_list({ConvertToUtVarchar2List(includeObjects)}), ";
86-
}
78+
if (includeObjects != null && includeObjects.Count > 0)
79+
{
80+
proc += $"a_include_objects => ut_varchar2_list({ConvertToUtVarchar2List(includeObjects)}), ";
81+
}
8782

88-
if (excludeObjects != null && excludeObjects.Count > 0)
89-
{
90-
proc += $"a_exclude_objects => ut_varchar2_list({ConvertToUtVarchar2List(excludeObjects)}), ";
91-
}
83+
if (excludeObjects != null && excludeObjects.Count > 0)
84+
{
85+
proc += $"a_exclude_objects => ut_varchar2_list({ConvertToUtVarchar2List(excludeObjects)}), ";
86+
}
9287

93-
proc += @" a_reporters => ut_reporters(l_rt_rep, l_cov_rep));
88+
proc += @" a_reporters => ut_reporters(l_rt_rep, l_cov_rep));
9489
sys.dbms_output.disable;
9590
END;";
9691

97-
var cmd = new OracleCommand(proc, produceConnection);
98-
runningCommands.Add(cmd);
92+
var cmd = new OracleCommand(proc, produceConnection);
93+
runningCommands.Add(cmd);
9994

100-
cmd.Parameters.Add("id", OracleDbType.Varchar2, ParameterDirection.Input).Value = realtimeReporterId;
101-
cmd.Parameters.Add("coverage_id", OracleDbType.Varchar2, ParameterDirection.Input).Value = coverageReporterId;
95+
cmd.Parameters.Add("id", OracleDbType.Varchar2, ParameterDirection.Input).Value = realtimeReporterId;
96+
cmd.Parameters.Add("coverage_id", OracleDbType.Varchar2, ParameterDirection.Input).Value = coverageReporterId;
10297

103-
cmd.ExecuteNonQuery();
98+
cmd.ExecuteNonQuery();
10499

105-
runningCommands.Remove(cmd);
106-
cmd.Dispose();
107-
});
100+
runningCommands.Remove(cmd);
101+
cmd.Dispose();
108102
}
109103

110-
private async Task UtRunAsync(string id, List<string> paths)
104+
private void UtRun(string id, List<string> paths)
111105
{
112-
await Task.Run(() =>
113-
{
114-
var proc = $@"DECLARE
106+
var proc = $@"DECLARE
115107
l_reporter ut_realtime_reporter := ut_realtime_reporter();
116108
BEGIN
117109
l_reporter.set_reporter_id(:id);
@@ -120,53 +112,49 @@ await Task.Run(() =>
120112
a_reporters => ut_reporters(l_reporter));
121113
END;";
122114

123-
var cmd = new OracleCommand(proc, produceConnection);
124-
runningCommands.Add(cmd);
115+
var cmd = new OracleCommand(proc, produceConnection);
116+
runningCommands.Add(cmd);
125117

126-
cmd.Parameters.Add("id", OracleDbType.Varchar2, ParameterDirection.Input).Value = id;
127-
cmd.ExecuteNonQuery();
118+
cmd.Parameters.Add("id", OracleDbType.Varchar2, ParameterDirection.Input).Value = id;
119+
cmd.ExecuteNonQuery();
128120

129-
runningCommands.Remove(cmd);
130-
cmd.Dispose();
131-
});
121+
runningCommands.Remove(cmd);
122+
cmd.Dispose();
132123
}
133124

134-
private async Task ConsumeResultAsync(string id, Action<@event> action)
125+
private void ConsumeResult(string id, Action<@event> action)
135126
{
136-
await Task.Run(() =>
137-
{
138-
var proc = @"DECLARE
127+
var proc = @"DECLARE
139128
l_reporter ut_realtime_reporter := ut_realtime_reporter();
140129
BEGIN
141130
l_reporter.set_reporter_id(:id);
142131
:lines_cursor := l_reporter.get_lines_cursor();
143132
END;";
144133

145-
var cmd = new OracleCommand(proc, consumeConnection);
146-
runningCommands.Add(cmd);
134+
var cmd = new OracleCommand(proc, consumeConnection);
135+
runningCommands.Add(cmd);
147136

148-
cmd.Parameters.Add("id", OracleDbType.Varchar2, ParameterDirection.Input).Value = id;
149-
cmd.Parameters.Add("lines_cursor", OracleDbType.RefCursor, ParameterDirection.Output);
137+
cmd.Parameters.Add("id", OracleDbType.Varchar2, ParameterDirection.Input).Value = id;
138+
cmd.Parameters.Add("lines_cursor", OracleDbType.RefCursor, ParameterDirection.Output);
150139

151-
// https://stackoverflow.com/questions/2226769/bad-performance-with-oracledatareader
152-
cmd.InitialLOBFetchSize = -1;
140+
// https://stackoverflow.com/questions/2226769/bad-performance-with-oracledatareader
141+
cmd.InitialLOBFetchSize = -1;
153142

154-
var reader = cmd.ExecuteReader();
155-
while (reader.Read())
156-
{
157-
var xml = reader.GetString(0);
143+
var reader = cmd.ExecuteReader();
144+
while (reader.Read())
145+
{
146+
var xml = reader.GetString(0);
158147

159-
var serializer = new XmlSerializer(typeof(@event));
160-
var @event = (@event)serializer.Deserialize(new StringReader(xml));
148+
var serializer = new XmlSerializer(typeof(@event));
149+
var @event = (@event)serializer.Deserialize(new StringReader(xml));
161150

162-
action.Invoke(@event);
163-
}
151+
action.Invoke(@event);
152+
}
164153

165-
reader.Close();
154+
reader.Close();
166155

167-
runningCommands.Remove(cmd);
168-
cmd.Dispose();
169-
});
156+
runningCommands.Remove(cmd);
157+
cmd.Dispose();
170158
}
171159
}
172160
}

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy