diff --git a/L4/L4.sln b/L4/L4.sln index 46eaa1a..4e27aad 100644 --- a/L4/L4.sln +++ b/L4/L4.sln @@ -5,6 +5,8 @@ VisualStudioVersion = 17.1.32328.378 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LD_24", "LD_24\LD_24.csproj", "{4B4C2BFE-C41E-4EA1-BC86-979E2CA1D27B}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LD_24Tests", "LD_24Tests\LD_24Tests.csproj", "{D1567F9E-F2A5-48D9-B581-1B76DEC9F21E}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -15,6 +17,10 @@ Global {4B4C2BFE-C41E-4EA1-BC86-979E2CA1D27B}.Debug|Any CPU.Build.0 = Debug|Any CPU {4B4C2BFE-C41E-4EA1-BC86-979E2CA1D27B}.Release|Any CPU.ActiveCfg = Release|Any CPU {4B4C2BFE-C41E-4EA1-BC86-979E2CA1D27B}.Release|Any CPU.Build.0 = Release|Any CPU + {D1567F9E-F2A5-48D9-B581-1B76DEC9F21E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D1567F9E-F2A5-48D9-B581-1B76DEC9F21E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D1567F9E-F2A5-48D9-B581-1B76DEC9F21E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D1567F9E-F2A5-48D9-B581-1B76DEC9F21E}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/L4/LD_24Tests/LD_24Tests.csproj b/L4/LD_24Tests/LD_24Tests.csproj new file mode 100644 index 0000000..40a7ddd --- /dev/null +++ b/L4/LD_24Tests/LD_24Tests.csproj @@ -0,0 +1,27 @@ + + + + netcoreapp3.1 + + false + + + + + + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + + + + + + diff --git a/L4/LD_24Tests/TaskUtilsTests.cs b/L4/LD_24Tests/TaskUtilsTests.cs new file mode 100644 index 0000000..25c7728 --- /dev/null +++ b/L4/LD_24Tests/TaskUtilsTests.cs @@ -0,0 +1,42 @@ +using System; +using Xunit; +using LD_24.Code; +using System.Collections.Generic; +using FluentAssertions; + +namespace LD_24Tests +{ + public class TaskUtilsTests + { + [Fact] + public void TestFindAllClasses() + { + List actors = new List(); + actors.Add(new NPC("foo", "bar", "baz", "ClassAAA", 10, 10, 10, 10, "biz")); + actors.Add(new Hero("foo", "bar", "baz", "ClassBBB", 10, 10, 10, 10, 10, 10, 10, 10)); + actors.Add(new NPC("foo", "bar", "baz", "ClassBBB", 10, 10, 10, 10, "baz")); + actors.Add(new Hero("foo", "bar", "baz", "ClassCCC", 10, 10, 10, 10, 10, 10, 10, 10)); + List classes = TaskUtils.FindAllClasses(actors); + classes.Should().BeEquivalentTo("ClassAAA", "ClassBBB", "ClassCCC"); + } + + [Fact] + public void TestFilterNPCsByAttack() + { + List actors = new List(); + var actor1 = new NPC("foo", "bar", "baz", "ClassAAA", 10, 10, 9, 10, "biz"); + var actor2 = new Hero("foo", "bar", "baz", "ClassBBB", 10, 10, 10, 10, 10, 10, 10, 10); + var actor3 = new NPC("foo", "bar", "baz", "ClassBBB", 10, 10, 10, 10, "baz"); + var actor4 = new Hero("foo", "bar", "baz", "ClassCCC", 10, 10, 10, 10, 10, 10, 10, 10); + var actor5 = new NPC("foo", "bar", "baz", "ClassBBB", 10, 10, 5, 10, "baz"); + + actors.Add(actor1); + actors.Add(actor2); + actors.Add(actor3); + actors.Add(actor4); + actors.Add(actor5); + var NPCs = TaskUtils.FilterNPCsByAttack(actors, 10); + NPCs.Should().BeEquivalentTo(new List { actor1, actor5 }); + } + } +}