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)