diff --git a/Sources/Tests/DbConsole/DbConsole.csproj b/Sources/Tests/DbConsole/DbConsole.csproj index 3ea14d9..73c3a42 100644 --- a/Sources/Tests/DbConsole/DbConsole.csproj +++ b/Sources/Tests/DbConsole/DbConsole.csproj @@ -21,11 +21,11 @@ - - + + runtime; build; native; contentfiles; analyzers; buildtransitive all - + diff --git a/Sources/Tests/Test_Stub/Test_Stub.csproj b/Sources/Tests/Test_Stub/Test_Stub.csproj new file mode 100644 index 0000000..6d74485 --- /dev/null +++ b/Sources/Tests/Test_Stub/Test_Stub.csproj @@ -0,0 +1,28 @@ + + + + net6.0 + enable + enable + + false + + + + + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + + + + + + diff --git a/Sources/Tests/Test_Stub/Test_Stub_Games.cs b/Sources/Tests/Test_Stub/Test_Stub_Games.cs new file mode 100644 index 0000000..f42ebd6 --- /dev/null +++ b/Sources/Tests/Test_Stub/Test_Stub_Games.cs @@ -0,0 +1,117 @@ +using System.Numerics; +using Model; +using Stub; + +namespace Test_Stub; + +public class Test_Stub_Games +{ + public static IEnumerable GetGameAndPlayerIds() + { + yield return new object[] { 1, 0 }; + yield return new object[] { 2, 1 }; + yield return new object[] { 3, 2 }; + yield return new object[] { 4, 3 }; + } + + public static IEnumerable GetInvalidGameAndPlayerIds() + { + yield return new object[] { -1, 0 }; + yield return new object[] { 1, -1 }; + yield return new object[] { 5, 0 }; + yield return new object[] { 1, 4 }; + } + + //[Theory] + //[MemberData(nameof(GetGameAndPlayerIds))] + //public async Task AddScoreToPlayer_ValidIds_ReturnsTrue(int gameId, int playerId) + //{ + // // Arrange + // var stubData = new StubData(); + // var manager = new StubData.GamesManager(stubData); + + // // Act + // var result = await manager.AddScoreToPlayer(gameId, playerId, 10); + + // // Assert + // Assert.True(result); + //} + + [Theory] + [MemberData(nameof(GetInvalidGameAndPlayerIds))] + public async Task AddScoreToPlayer_InvalidIds_ReturnsFalse(int gameId, int playerId) + { + // Arrange + var stubData = new StubData(); + var manager = new StubData.GamesManager(stubData); + + // Act + var result = await manager.AddScoreToPlayer(gameId, playerId, 10); + + // Assert + Assert.False(result); + } + + //[Fact] + //public async Task AddPlayer_ValidPlayer_ReturnsTrue() + //{ + // // Arrange + // var stubData = new StubData(); + // var manager = new StubData.GamesManager(stubData); + // var player = new Player("John", 4); + + // // Act + // var result = await manager.AddPlayer(player); + + // // Assert + // Assert.True(result); + //} + + //[Fact] + //public async Task AddPlayer_InvalidGame_ReturnsFalse() + //{ + // // Arrange + // var stubData = new StubData(); + // var manager = new StubData.GamesManager(stubData); + // var player = new Player("John", 4); + + // // Act + // var result = await manager.AddPlayer(player); + + // // Assert + // Assert.True(result); + //} + + [Fact] + public async Task GetItems_ReturnsCorrectCount() + { + // Arrange + var stubData = new StubData(); + var manager = new StubData.GamesManager(stubData); + + // Act + var items = await manager.GetItems(0, 3, null); + + // Assert + Assert.Equal(3, items.Count()); + } + + [Theory] + [InlineData(1)] + [InlineData(2)] + [InlineData(3)] + [InlineData(4)] + public async Task GetItemsById_ReturnsCorrectItem(int id) + { + // Arrange + var stubData = new StubData(); + var manager = new StubData.GamesManager(stubData); + + // Act + var items = await manager.GetItemsById(id); + + // Assert + Assert.Single(items); + Assert.Equal(id, items.First()?.Id); + } +} diff --git a/Sources/Tests/Test_Stub/Usings.cs b/Sources/Tests/Test_Stub/Usings.cs new file mode 100644 index 0000000..9df1d42 --- /dev/null +++ b/Sources/Tests/Test_Stub/Usings.cs @@ -0,0 +1 @@ +global using Xunit; diff --git a/Sources/Trek12_API.sln b/Sources/Trek12_API.sln index cbfc507..85afd25 100644 --- a/Sources/Trek12_API.sln +++ b/Sources/Trek12_API.sln @@ -21,6 +21,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Stub", "Stub\Stub\Stub.cspr EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Shared", "Shared\Shared.csproj", "{8B6EC777-57F8-4509-9163-4312A40FE63C}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test_Stub", "Tests\Test_Stub\Test_Stub.csproj", "{5A1D87FF-E82F-43FF-AC5C-59659B91D5B8}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -55,6 +57,10 @@ Global {8B6EC777-57F8-4509-9163-4312A40FE63C}.Debug|Any CPU.Build.0 = Debug|Any CPU {8B6EC777-57F8-4509-9163-4312A40FE63C}.Release|Any CPU.ActiveCfg = Release|Any CPU {8B6EC777-57F8-4509-9163-4312A40FE63C}.Release|Any CPU.Build.0 = Release|Any CPU + {5A1D87FF-E82F-43FF-AC5C-59659B91D5B8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5A1D87FF-E82F-43FF-AC5C-59659B91D5B8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5A1D87FF-E82F-43FF-AC5C-59659B91D5B8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5A1D87FF-E82F-43FF-AC5C-59659B91D5B8}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -63,6 +69,7 @@ Global {75B303CC-F36E-46FA-BE23-05EEA35D9B28} = {C75DF644-C41F-4A08-8B69-C8554204AC72} {6EC6383D-10E8-44E1-8EDD-EF4DF460A9B1} = {C75DF644-C41F-4A08-8B69-C8554204AC72} {5E45E953-4FCC-42B6-9F22-15108D002D78} = {B1585816-FCBB-484F-A1AA-C7AEB501C39B} + {5A1D87FF-E82F-43FF-AC5C-59659B91D5B8} = {C75DF644-C41F-4A08-8B69-C8554204AC72} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {4D47853B-D1A3-49A5-84BA-CD2DC65FD105}