Skip to content

Commit 2a7bb55

Browse files
committed
tried to fix unit tests
1 parent 9b91ec0 commit 2a7bb55

File tree

2 files changed

+86
-148
lines changed

2 files changed

+86
-148
lines changed

tests/Test/DataTypesTest.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ namespace Test
1919
[Trait("Category", "DataTypes")]
2020
public class DataTypesTest : IClassFixture<MySQLFixture>
2121
{
22-
protected readonly MySQLFixture _mysqlFixture;
22+
private readonly MySQLFixture _mysqlFixture;
2323

2424
public DataTypesTest(MySQLFixture mysqlFixture)
2525
{

tests/Test/MainTest.cs

Lines changed: 85 additions & 147 deletions
Original file line numberDiff line numberDiff line change
@@ -13,208 +13,146 @@
1313
namespace Test
1414
{
1515
[Trait("Category", "Replication")]
16-
public class MainTest
16+
public class MainTest : IClassFixture<MySQLFixture>
1717
{
18-
private const string _host = "localhost";
19-
private const string _username = "root";
20-
private const string _password = "root";
18+
private readonly MySQLFixture _mysqlFixture;
2119

2220
protected readonly ITestOutputHelper _outputHelper;
2321

2422
private readonly ILogger _logger;
2523

26-
public MainTest(ITestOutputHelper outputHelper)
24+
public MainTest(ITestOutputHelper outputHelper, MySQLFixture mysqlFixture)
2725
{
2826
_outputHelper = outputHelper;
27+
_mysqlFixture = mysqlFixture;
2928
using var loggerFactory = LoggerFactory.Create(builder => builder.AddConsole());
3029
_logger = loggerFactory.CreateLogger<MainTest>();
3130
}
3231

33-
private async Task<LoginResult> ConnectAsync(ReplicationClient client)
34-
{
35-
return await client.ConnectAsync(_host, _username,_password, 1);
36-
}
37-
38-
private MySqlConnection CreateConnection()
39-
{
40-
return new MySqlConnection($"Server={_host};Database=garden;Uid={_username};Pwd={_password};");
41-
}
42-
43-
[Fact]
44-
public async Task TestConnection()
45-
{
46-
var client = new ReplicationClient();
47-
var result = await ConnectAsync(client);
48-
Assert.True(result.Result, result.Message);
49-
await client.CloseAsync();
50-
}
51-
5232
[Fact]
5333
public async Task TestReceiveEvent()
5434
{
55-
var client = new ReplicationClient();
56-
client.Logger = _logger;
57-
58-
var result = await ConnectAsync(client);
59-
60-
Assert.True(result.Result, result.Message);
61-
62-
using (var mysqlConn = CreateConnection())
35+
// insert
36+
var cmd = _mysqlFixture.CreateCommand();
37+
cmd.CommandText = "INSERT INTO pet (name, owner, species, sex, birth, death) values ('Rokie', 'Kerry', 'abc', 'F', '1982-04-20', '3000-01-01'); SELECT LAST_INSERT_ID();";
38+
var id = (UInt64)(await cmd.ExecuteScalarAsync());
39+
40+
// update
41+
cmd = _mysqlFixture.CreateCommand();
42+
cmd.CommandText = "update pet set owner='Linda' where `id`=" + id;
43+
await cmd.ExecuteNonQueryAsync();
44+
45+
// delete
46+
cmd = _mysqlFixture.CreateCommand();
47+
cmd.CommandText = "delete from pet where `id`= " + id;
48+
await cmd.ExecuteNonQueryAsync();
49+
50+
while (true)
6351
{
64-
await mysqlConn.OpenAsync();
65-
66-
// insert
67-
var cmd = mysqlConn.CreateCommand();
68-
cmd.CommandText = "INSERT INTO pet (name, owner, species, sex, birth, death) values ('Rokie', 'Kerry', 'abc', 'F', '1982-04-20', '3000-01-01'); SELECT LAST_INSERT_ID();";
69-
var id = (UInt64)(await cmd.ExecuteScalarAsync());
70-
71-
// update
72-
cmd = mysqlConn.CreateCommand();
73-
cmd.CommandText = "update pet set owner='Linda' where `id`=" + id;
74-
await cmd.ExecuteNonQueryAsync();
75-
76-
// delete
77-
cmd = mysqlConn.CreateCommand();
78-
cmd.CommandText = "delete from pet where `id`= " + id;
79-
await cmd.ExecuteNonQueryAsync();
80-
81-
while (true)
82-
{
83-
var eventLog = await client.ReceiveAsync();
84-
Assert.NotNull(eventLog);
85-
_outputHelper.WriteLine(eventLog.ToString() + "\r\n");
52+
var eventLog = await _mysqlFixture.Client.ReceiveAsync();
53+
Assert.NotNull(eventLog);
54+
_outputHelper.WriteLine(eventLog.ToString() + "\r\n");
8655

87-
if (eventLog is DeleteRowsEvent)
88-
break;
89-
}
90-
}
91-
92-
await client.CloseAsync();
56+
if (eventLog is DeleteRowsEvent)
57+
break;
58+
}
9359
}
9460

9561
[Fact]
9662
public async Task TestInsertEvent()
9763
{
98-
var client = new ReplicationClient();
99-
client.Logger = _logger;
64+
// insert
65+
var cmd = _mysqlFixture.CreateCommand();
66+
cmd.CommandText = "INSERT INTO pet (name, owner, species, sex, birth, death, timeUpdated) values ('Rokie', 'Kerry', 'abc', 'F', '1992-05-20', '3000-01-01', now()); SELECT LAST_INSERT_ID();";
67+
var id = (UInt64)(await cmd.ExecuteScalarAsync());
10068

101-
var result = await ConnectAsync(client);
102-
103-
Assert.True(result.Result, result.Message);
104-
105-
using (var mysqlConn = CreateConnection())
69+
while (true)
10670
{
107-
await mysqlConn.OpenAsync();
108-
109-
// insert
110-
var cmd = mysqlConn.CreateCommand();
111-
cmd.CommandText = "INSERT INTO pet (name, owner, species, sex, birth, death, timeUpdated) values ('Rokie', 'Kerry', 'abc', 'F', '1992-05-20', '3000-01-01', now()); SELECT LAST_INSERT_ID();";
112-
var id = (UInt64)(await cmd.ExecuteScalarAsync());
71+
var eventLog = await _mysqlFixture.Client.ReceiveAsync();
11372

114-
while (true)
73+
if (eventLog.EventType == LogEventType.WRITE_ROWS_EVENT)
11574
{
116-
var eventLog = await client.ReceiveAsync();
75+
var log = eventLog as WriteRowsEvent;
76+
Assert.NotNull(log);
11777

118-
if (eventLog.EventType == LogEventType.WRITE_ROWS_EVENT)
119-
{
120-
var log = eventLog as WriteRowsEvent;
121-
Assert.NotNull(log);
78+
var rows = log.RowSet.ToReadableRows();
79+
Assert.Equal(1, rows.Count);
12280

123-
var rows = log.RowSet.ToReadableRows();
124-
Assert.Equal(1, rows.Count);
81+
var row = rows[0];
12582

126-
var row = rows[0];
83+
Assert.Equal("Rokie", row["name"]);
84+
Assert.Equal("Kerry", row["owner"]);
85+
Assert.Equal("abc", row["species"]);
86+
Assert.Equal("F", row["sex"]);
12787

128-
Assert.Equal("Rokie", row["name"]);
129-
Assert.Equal("Kerry", row["owner"]);
130-
Assert.Equal("abc", row["species"]);
131-
Assert.Equal("F", row["sex"]);
132-
133-
break;
134-
}
88+
break;
13589
}
136-
}
137-
138-
await client.CloseAsync();
90+
}
13991
}
14092

14193
[Fact]
14294
public async Task TestUpdateEvent()
14395
{
144-
var client = new ReplicationClient();
145-
client.Logger = _logger;
96+
// insert
97+
var cmd = _mysqlFixture.CreateCommand();
98+
cmd.CommandText = "INSERT INTO pet (name, owner, species, sex, birth, death, timeUpdated) values ('Rokie', 'Kerry', 'abc', 'F', '1992-05-20', '3000-01-01', now());";
99+
await cmd.ExecuteNonQueryAsync();
146100

147-
var result = await ConnectAsync(client);
148-
149-
Assert.True(result.Result, result.Message);
150-
151-
using (var mysqlConn = CreateConnection())
152-
{
153-
await mysqlConn.OpenAsync();
101+
// query
102+
cmd = _mysqlFixture.CreateCommand();
103+
cmd.CommandText = "select * from pet order by `id` desc limit 1;";
154104

155-
// insert
156-
var cmd = mysqlConn.CreateCommand();
157-
cmd.CommandText = "INSERT INTO pet (name, owner, species, sex, birth, death, timeUpdated) values ('Rokie', 'Kerry', 'abc', 'F', '1992-05-20', '3000-01-01', now());";
158-
await cmd.ExecuteNonQueryAsync();
105+
var oldValues = new Dictionary<string, object>();
159106

160-
// query
161-
cmd = mysqlConn.CreateCommand();
162-
cmd.CommandText = "select * from pet order by `id` desc limit 1;";
163-
164-
var oldValues = new Dictionary<string, object>();
107+
using (var reader = await cmd.ExecuteReaderAsync())
108+
{
109+
Assert.True(await reader.ReadAsync());
165110

166-
using (var reader = await cmd.ExecuteReaderAsync())
111+
for (var i = 0; i < reader.FieldCount ; i++)
167112
{
168-
Assert.True(await reader.ReadAsync());
113+
oldValues.Add(reader.GetName(i), reader.GetValue(i));
114+
}
169115

170-
for (var i = 0; i < reader.FieldCount ; i++)
171-
{
172-
oldValues.Add(reader.GetName(i), reader.GetValue(i));
173-
}
116+
await reader.CloseAsync();
117+
}
174118

175-
await reader.CloseAsync();
176-
}
119+
var id = oldValues["id"];
177120

178-
var id = oldValues["id"];
121+
// update
122+
cmd = _mysqlFixture.CreateCommand();
123+
cmd.CommandText = "update pet set owner='Linda', timeUpdated=now() where `id`=" + id;
124+
await cmd.ExecuteNonQueryAsync();
179125

180-
// update
181-
cmd = mysqlConn.CreateCommand();
182-
cmd.CommandText = "update pet set owner='Linda', timeUpdated=now() where `id`=" + id;
183-
await cmd.ExecuteNonQueryAsync();
126+
while (true)
127+
{
128+
var eventLog = await _mysqlFixture.Client.ReceiveAsync();
184129

185-
while (true)
130+
_outputHelper.WriteLine(eventLog.ToString() + "\r\n");
131+
132+
if (eventLog.EventType == LogEventType.UPDATE_ROWS_EVENT)
186133
{
187-
var eventLog = await client.ReceiveAsync();
188-
189-
_outputHelper.WriteLine(eventLog.ToString() + "\r\n");
190-
191-
if (eventLog.EventType == LogEventType.UPDATE_ROWS_EVENT)
192-
{
193-
var log = eventLog as UpdateRowsEvent;
194-
Assert.NotNull(log);
134+
var log = eventLog as UpdateRowsEvent;
135+
Assert.NotNull(log);
195136

196-
var rows = log.RowSet.ToReadableRows();
197-
Assert.Equal(1, rows.Count);
137+
var rows = log.RowSet.ToReadableRows();
138+
Assert.Equal(1, rows.Count);
198139

199-
var row = rows[0];
140+
var row = rows[0];
200141

201-
var cellValue = row["id"] as CellValue;
142+
var cellValue = row["id"] as CellValue;
202143

203-
Assert.Equal(id, cellValue.OldValue);
204-
Assert.Equal(id, cellValue.NewValue);
144+
Assert.Equal(id, cellValue.OldValue);
145+
Assert.Equal(id, cellValue.NewValue);
205146

206-
cellValue = row["owner"] as CellValue;
147+
cellValue = row["owner"] as CellValue;
207148

208-
Assert.Equal("Kerry", oldValues["owner"]);
209-
Assert.Equal("Kerry", cellValue.OldValue);
210-
Assert.Equal("Linda", cellValue.NewValue);
149+
Assert.Equal("Kerry", oldValues["owner"]);
150+
Assert.Equal("Kerry", cellValue.OldValue);
151+
Assert.Equal("Linda", cellValue.NewValue);
211152

212-
break;
213-
}
153+
break;
214154
}
215-
}
216-
217-
await client.CloseAsync();
155+
}
218156
}
219157
}
220158
}

0 commit comments

Comments
 (0)