Skip to content

Commit 4f35a2a

Browse files
tests refactor (#86)
1 parent 4a6f0dc commit 4f35a2a

File tree

12 files changed

+233
-161
lines changed

12 files changed

+233
-161
lines changed

EndToEndTests/MySqlConnectorTests.cs

+57-23
Original file line numberDiff line numberDiff line change
@@ -12,53 +12,87 @@ public class MySqlConnectorTests
1212

1313
private QuerySql QuerySql { get; } = new(Environment.GetEnvironmentVariable(ConnectionStringEnv)!);
1414

15+
[TearDown]
16+
public async Task EmptyTestsTable()
17+
{
18+
await QuerySql.TruncateAuthors();
19+
}
20+
1521
[Test]
16-
public async Task TestBasicFlow()
22+
public async Task TestCreateAndListAuthors()
1723
{
18-
var createAuthorReturnIdArgs = new QuerySql.CreateAuthorReturnIdArgs
24+
await QuerySql.CreateAuthor(new QuerySql.CreateAuthorArgs
1925
{
2026
Name = DataGenerator.BojackAuthor,
2127
Bio = DataGenerator.BojackTheme
22-
};
23-
var insertedId = await QuerySql.CreateAuthorReturnId(createAuthorReturnIdArgs);
24-
var getBojackAuthorArgs = new QuerySql.GetAuthorArgs { Id = insertedId };
25-
var bojackAuthor = await QuerySql.GetAuthor(getBojackAuthorArgs);
26-
Assert.That(bojackAuthor is
27-
{
28-
Name: DataGenerator.BojackAuthor,
29-
Bio: DataGenerator.BojackTheme
3028
});
31-
32-
var createAuthorArgs = new QuerySql.CreateAuthorArgs
29+
await QuerySql.CreateAuthor(new QuerySql.CreateAuthorArgs
3330
{
3431
Name = DataGenerator.DrSeussAuthor,
3532
Bio = DataGenerator.DrSeussQuote
36-
};
37-
await QuerySql.CreateAuthor(createAuthorArgs);
33+
});
34+
3835
var actualAuthors = await QuerySql.ListAuthors();
39-
Assert.That(actualAuthors[0] is
36+
ClassicAssert.AreEqual(2, actualAuthors.Count);
37+
Assert.That(actualAuthors is [
4038
{
4139
Name: DataGenerator.BojackAuthor,
4240
Bio: DataGenerator.BojackTheme
43-
});
44-
Assert.That(actualAuthors[1] is
41+
},
4542
{
4643
Name: DataGenerator.DrSeussAuthor,
4744
Bio: DataGenerator.DrSeussQuote
45+
}
46+
]);
47+
}
48+
49+
[Test]
50+
public async Task TestGetAuthor()
51+
{
52+
await QuerySql.CreateAuthor(new QuerySql.CreateAuthorArgs
53+
{
54+
Name = DataGenerator.BojackAuthor,
55+
Bio = DataGenerator.BojackTheme
56+
});
57+
await QuerySql.CreateAuthor(new QuerySql.CreateAuthorArgs
58+
{
59+
Name = DataGenerator.DrSeussAuthor,
60+
Bio = DataGenerator.DrSeussQuote
4861
});
49-
ClassicAssert.AreEqual(2, actualAuthors.Count);
5062

51-
var deleteAuthorArgs = new QuerySql.DeleteAuthorArgs
63+
var actualAuthor = await QuerySql.GetAuthor(new QuerySql.GetAuthorArgs
64+
{
65+
Name = DataGenerator.BojackAuthor
66+
});
67+
ClassicAssert.IsTrue(actualAuthor.HasValue);
68+
Assert.That(actualAuthor!.Value is
69+
{
70+
Name: DataGenerator.BojackAuthor,
71+
Bio: DataGenerator.BojackTheme
72+
});
73+
}
74+
75+
[Test]
76+
public async Task TestDeleteAuthor()
77+
{
78+
await QuerySql.CreateAuthor(new QuerySql.CreateAuthorArgs
5279
{
53-
Id = insertedId
54-
};
55-
await QuerySql.DeleteAuthor(deleteAuthorArgs);
80+
Name = DataGenerator.BojackAuthor,
81+
Bio = DataGenerator.BojackTheme
82+
});
83+
await QuerySql.CreateAuthor(new QuerySql.CreateAuthorArgs
84+
{
85+
Name = DataGenerator.DrSeussAuthor,
86+
Bio = DataGenerator.DrSeussQuote
87+
});
88+
89+
await QuerySql.DeleteAuthor(new QuerySql.DeleteAuthorArgs { Name = DataGenerator.BojackAuthor });
5690
var authorRows = await QuerySql.ListAuthors();
91+
ClassicAssert.AreEqual(1, authorRows.Count);
5792
Assert.That(authorRows[0] is
5893
{
5994
Name: DataGenerator.DrSeussAuthor,
6095
Bio: DataGenerator.DrSeussQuote
6196
});
62-
ClassicAssert.AreEqual(1, authorRows.Count);
6397
}
6498
}

EndToEndTests/NogsqlTests.cs EndToEndTests/NpgsqlTests.cs

+49-44
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
namespace SqlcGenCsharpTests;
99

10-
public class NogsqlTests
10+
public class NpgsqlTests
1111
{
1212
private static readonly Random Randomizer = new();
1313

@@ -22,76 +22,81 @@ public async Task EmptyTestsTable()
2222
}
2323

2424
[Test]
25-
public async Task TestBasicFlow()
25+
public async Task TestCreateAndListAuthors()
2626
{
27-
var bojackCreateAuthorArgs = new QuerySql.CreateAuthorArgs
27+
await QuerySql.CreateAuthor(new QuerySql.CreateAuthorArgs
2828
{
2929
Name = DataGenerator.BojackAuthor,
3030
Bio = DataGenerator.BojackTheme
31-
};
32-
var createdBojackAuthor = await QuerySql.CreateAuthor(bojackCreateAuthorArgs);
33-
Assert.That(createdBojackAuthor is
31+
});
32+
await QuerySql.CreateAuthor(new QuerySql.CreateAuthorArgs
3433
{
35-
Name: DataGenerator.BojackAuthor,
36-
Bio: DataGenerator.BojackTheme
34+
Name = DataGenerator.DrSeussAuthor,
35+
Bio = DataGenerator.DrSeussQuote
3736
});
38-
var bojackInsertedId = GetId(createdBojackAuthor);
3937

40-
var getAuthorArgs = new QuerySql.GetAuthorArgs
41-
{
42-
Id = bojackInsertedId
43-
};
44-
var singleAuthor = await QuerySql.GetAuthor(getAuthorArgs);
45-
Assert.That(singleAuthor is
38+
var actualAuthors = await QuerySql.ListAuthors();
39+
ClassicAssert.AreEqual(2, actualAuthors.Count);
40+
Assert.That(actualAuthors is [
4641
{
4742
Name: DataGenerator.BojackAuthor,
4843
Bio: DataGenerator.BojackTheme
49-
});
44+
},
45+
{
46+
Name: DataGenerator.DrSeussAuthor,
47+
Bio: DataGenerator.DrSeussQuote
48+
}
49+
]);
50+
}
5051

51-
var createAuthorArgs = new QuerySql.CreateAuthorArgs
52+
[Test]
53+
public async Task TestGetAuthor()
54+
{
55+
await QuerySql.CreateAuthor(new QuerySql.CreateAuthorArgs
56+
{
57+
Name = DataGenerator.BojackAuthor,
58+
Bio = DataGenerator.BojackTheme
59+
});
60+
await QuerySql.CreateAuthor(new QuerySql.CreateAuthorArgs
5261
{
5362
Name = DataGenerator.DrSeussAuthor,
5463
Bio = DataGenerator.DrSeussQuote
55-
};
56-
await QuerySql.CreateAuthor(createAuthorArgs);
57-
var authors = await QuerySql.ListAuthors();
58-
ClassicAssert.AreEqual(2, authors.Count);
59-
Assert.That(authors[0] is
64+
});
65+
66+
var actualAuthor = await QuerySql.GetAuthor(new QuerySql.GetAuthorArgs
67+
{
68+
Name = DataGenerator.BojackAuthor
69+
});
70+
ClassicAssert.IsTrue(actualAuthor.HasValue);
71+
Assert.That(actualAuthor!.Value is
6072
{
6173
Name: DataGenerator.BojackAuthor,
6274
Bio: DataGenerator.BojackTheme
6375
});
64-
Assert.That(authors[1] is
76+
}
77+
78+
[Test]
79+
public async Task TestDeleteAuthor()
80+
{
81+
await QuerySql.CreateAuthor(new QuerySql.CreateAuthorArgs
6582
{
66-
Name: DataGenerator.DrSeussAuthor,
67-
Bio: DataGenerator.DrSeussQuote
83+
Name = DataGenerator.BojackAuthor,
84+
Bio = DataGenerator.BojackTheme
6885
});
69-
70-
var deleteAuthorArgs = new QuerySql.DeleteAuthorArgs
86+
await QuerySql.CreateAuthor(new QuerySql.CreateAuthorArgs
7187
{
72-
Id = bojackInsertedId
73-
};
74-
await QuerySql.DeleteAuthor(deleteAuthorArgs);
88+
Name = DataGenerator.DrSeussAuthor,
89+
Bio = DataGenerator.DrSeussQuote
90+
});
91+
92+
await QuerySql.DeleteAuthor(new QuerySql.DeleteAuthorArgs { Name = DataGenerator.BojackAuthor });
7593
var authorRows = await QuerySql.ListAuthors();
94+
ClassicAssert.AreEqual(1, authorRows.Count);
7695
Assert.That(authorRows[0] is
7796
{
7897
Name: DataGenerator.DrSeussAuthor,
7998
Bio: DataGenerator.DrSeussQuote
8099
});
81-
ClassicAssert.AreEqual(1, authorRows.Count);
82-
return;
83-
84-
long GetId(QuerySql.CreateAuthorRow? createdAuthorRow)
85-
{
86-
var type = typeof(QuerySql.CreateAuthorRow);
87-
var valueProperty = type.GetProperty("Value");
88-
var idProperty = type.GetProperty("Id");
89-
90-
if (valueProperty == null)
91-
return (long)(idProperty?.GetValue(createdAuthorRow) ?? throw new InvalidOperationException());
92-
var value = valueProperty.GetValue(createdAuthorRow);
93-
return (long)(idProperty?.GetValue(value) ?? throw new InvalidOperationException());
94-
}
95100
}
96101

97102
[Test]

EndToEndTests/SqliteTests.cs

+53-28
Original file line numberDiff line numberDiff line change
@@ -12,62 +12,87 @@ public class SqliteTests
1212

1313
private QuerySql QuerySql { get; } = new(Environment.GetEnvironmentVariable(ConnectionStringEnv)!);
1414

15+
[TearDown]
16+
public async Task EmptyTestsTable()
17+
{
18+
await QuerySql.DeleteAllAuthors();
19+
}
20+
1521
[Test]
16-
public async Task TestBasicFlow()
22+
public async Task TestCreateAndListAuthors()
1723
{
18-
var createAuthorArgs = new QuerySql.CreateAuthorArgs
24+
await QuerySql.CreateAuthor(new QuerySql.CreateAuthorArgs
1925
{
2026
Name = DataGenerator.BojackAuthor,
2127
Bio = DataGenerator.BojackTheme
22-
};
23-
await QuerySql.CreateAuthor(createAuthorArgs);
28+
});
29+
await QuerySql.CreateAuthor(new QuerySql.CreateAuthorArgs
30+
{
31+
Name = DataGenerator.DrSeussAuthor,
32+
Bio = DataGenerator.DrSeussQuote
33+
});
2434

2535
var actualAuthors = await QuerySql.ListAuthors();
26-
Assert.That(actualAuthors[0] is
36+
Assert.That(actualAuthors is [
2737
{
28-
Id: 1,
2938
Name: DataGenerator.BojackAuthor,
3039
Bio: DataGenerator.BojackTheme
31-
});
32-
var insertedId = actualAuthors[0].Id;
33-
var getBojackAuthorArgs = new QuerySql.GetAuthorArgs { Id = insertedId };
34-
var bojackAuthor = await QuerySql.GetAuthor(getBojackAuthorArgs);
35-
Assert.That(bojackAuthor is
40+
},
3641
{
37-
Name: DataGenerator.BojackAuthor,
38-
Bio: DataGenerator.BojackTheme
39-
});
42+
Name: DataGenerator.DrSeussAuthor,
43+
Bio: DataGenerator.DrSeussQuote
44+
}
45+
]);
46+
}
4047

41-
createAuthorArgs = new QuerySql.CreateAuthorArgs
48+
[Test]
49+
public async Task TestGetAuthor()
50+
{
51+
await QuerySql.CreateAuthor(new QuerySql.CreateAuthorArgs
52+
{
53+
Name = DataGenerator.BojackAuthor,
54+
Bio = DataGenerator.BojackTheme
55+
});
56+
await QuerySql.CreateAuthor(new QuerySql.CreateAuthorArgs
4257
{
4358
Name = DataGenerator.DrSeussAuthor,
4459
Bio = DataGenerator.DrSeussQuote
45-
};
46-
await QuerySql.CreateAuthor(createAuthorArgs);
47-
actualAuthors = await QuerySql.ListAuthors();
48-
Assert.That(actualAuthors[0] is
60+
});
61+
62+
var actualAuthor = await QuerySql.GetAuthor(new QuerySql.GetAuthorArgs
63+
{
64+
Name = DataGenerator.BojackAuthor
65+
});
66+
Assert.That(actualAuthor is
4967
{
5068
Name: DataGenerator.BojackAuthor,
5169
Bio: DataGenerator.BojackTheme
5270
});
53-
Assert.That(actualAuthors[1] is
71+
}
72+
73+
[Test]
74+
public async Task TestDeleteAuthor()
75+
{
76+
await QuerySql.CreateAuthor(new QuerySql.CreateAuthorArgs
5477
{
55-
Name: DataGenerator.DrSeussAuthor,
56-
Bio: DataGenerator.DrSeussQuote
78+
Name = DataGenerator.BojackAuthor,
79+
Bio = DataGenerator.BojackTheme
5780
});
58-
ClassicAssert.AreEqual(2, actualAuthors.Count);
59-
60-
var deleteAuthorArgs = new QuerySql.DeleteAuthorArgs
81+
await QuerySql.CreateAuthor(new QuerySql.CreateAuthorArgs
6182
{
62-
Id = Convert.ToInt32(insertedId)
63-
};
83+
Name = DataGenerator.DrSeussAuthor,
84+
Bio = DataGenerator.DrSeussQuote
85+
});
86+
87+
var deleteAuthorArgs = new QuerySql.DeleteAuthorArgs { Name = DataGenerator.BojackAuthor };
6488
await QuerySql.DeleteAuthor(deleteAuthorArgs);
89+
6590
var authorRows = await QuerySql.ListAuthors();
91+
ClassicAssert.AreEqual(1, authorRows.Count);
6692
Assert.That(authorRows[0] is
6793
{
6894
Name: DataGenerator.DrSeussAuthor,
6995
Bio: DataGenerator.DrSeussQuote
7096
});
71-
ClassicAssert.AreEqual(1, authorRows.Count);
7297
}
7398
}

0 commit comments

Comments
 (0)