aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSyndamia <kamen.d.mladenov@protonmail.com>2020-05-16 14:10:55 +0300
committerSyndamia <kamen.d.mladenov@protonmail.com>2020-05-16 14:10:55 +0300
commit65b1ad12f3874395f5abb80783c0b52ac0d4e721 (patch)
tree053c23318f7d1b698660479f556f362674148b97
parentfe663e73be099a06bb5c164d543e86fcb953d0d0 (diff)
downloadMundus-65b1ad12f3874395f5abb80783c0b52ac0d4e721.tar
Mundus-65b1ad12f3874395f5abb80783c0b52ac0d4e721.tar.gz
Mundus-65b1ad12f3874395f5abb80783c0b52ac0d4e721.zip
Started working on view layer tests and did a bit of restructuring.
-rw-r--r--Mundus.sln6
-rw-r--r--Mundus/Data/Crafting/CraftingTableContext.cs4
-rw-r--r--Mundus/Data/Tiles/Mobs/LandMobsPresets.cs (renamed from Mundus/Service/Tiles/Mobs/LandMobs/LandMobsPresets.cs)6
-rw-r--r--Mundus/Data/Tiles/Mobs/MI.cs (renamed from Mundus/Data/SuperLayers/Mobs/MI.cs)4
-rw-r--r--Mundus/Data/Tiles/Presets/GroundPresets.cs (renamed from Mundus/Service/Tiles/Items/Presets/GroundPresets.cs)3
-rw-r--r--Mundus/Data/Tiles/Presets/MaterialPresets.cs (renamed from Mundus/Service/Tiles/Items/Presets/MaterialPresets.cs)2
-rw-r--r--Mundus/Data/Tiles/Presets/StructurePresets.cs (renamed from Mundus/Service/Tiles/Items/Presets/StructurePresets.cs)2
-rw-r--r--Mundus/Data/Tiles/Presets/ToolPresets.cs (renamed from Mundus/Service/Tiles/Items/Presets/ToolPresets.cs)2
-rw-r--r--Mundus/Mundus.csproj19
-rw-r--r--Mundus/Service/GameGenerator.cs2
-rw-r--r--Mundus/Service/SuperLayers/Generators/LandSuperLayerGenerator.cs5
-rw-r--r--Mundus/Service/SuperLayers/Generators/SkySuperLayerGenerator.cs2
-rw-r--r--Mundus/Service/SuperLayers/Generators/UndergroundSuperLayerGenerator.cs2
-rw-r--r--Mundus/Service/SuperLayers/ImageController.cs2
-rw-r--r--Mundus/Service/Tiles/Crafting/CraftingController.cs4
-rw-r--r--Mundus/Service/Tiles/Items/ItemController.cs2
-rw-r--r--Mundus/Service/Tiles/Mobs/Controllers/MobFighting.cs3
-rw-r--r--Mundus/Service/Tiles/Mobs/Controllers/MobMovement.cs4
-rw-r--r--Mundus/Service/Tiles/Mobs/Controllers/MobStatsController.cs4
-rw-r--r--Mundus/Service/Tiles/Mobs/Controllers/MobTerraforming.cs4
-rw-r--r--Mundus/Service/Tiles/Mobs/Inventory.cs8
-rw-r--r--Mundus/Service/Windows/Calculate.cs4
-rw-r--r--MundusTests/DataTests/Crafting/CraftingTableContextTests.cs20
-rw-r--r--MundusTests/DataTests/GameEventLogs/GameEventLogContextTests.cs50
-rw-r--r--MundusTests/DataTests/GameEventLogs/GameEventLogTests.cs16
-rw-r--r--MundusTests/DataTests/SuperLayers/LandContextTests.cs153
-rw-r--r--MundusTests/DataTests/SuperLayers/SkyContextTests.cs153
-rw-r--r--MundusTests/DataTests/SuperLayers/UndergroundContextTests.cs153
-rw-r--r--MundusTests/MundusTests.csproj198
-rw-r--r--MundusTests/packages.config44
30 files changed, 837 insertions, 44 deletions
diff --git a/Mundus.sln b/Mundus.sln
index f48c6c9..9293391 100644
--- a/Mundus.sln
+++ b/Mundus.sln
@@ -3,6 +3,8 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mundus", "Mundus\Mundus.csproj", "{BED2FBB2-55AC-430D-8126-E75C726DF53D}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MundusTests", "MundusTests\MundusTests.csproj", "{F2107038-D6F0-4E37-85E2-287A8C1B3006}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x86 = Debug|x86
@@ -13,5 +15,9 @@ Global
{BED2FBB2-55AC-430D-8126-E75C726DF53D}.Debug|x86.Build.0 = Debug|x86
{BED2FBB2-55AC-430D-8126-E75C726DF53D}.Release|x86.ActiveCfg = Release|x86
{BED2FBB2-55AC-430D-8126-E75C726DF53D}.Release|x86.Build.0 = Release|x86
+ {F2107038-D6F0-4E37-85E2-287A8C1B3006}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {F2107038-D6F0-4E37-85E2-287A8C1B3006}.Debug|x86.Build.0 = Debug|Any CPU
+ {F2107038-D6F0-4E37-85E2-287A8C1B3006}.Release|x86.ActiveCfg = Release|Any CPU
+ {F2107038-D6F0-4E37-85E2-287A8C1B3006}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
EndGlobal
diff --git a/Mundus/Data/Crafting/CraftingTableContext.cs b/Mundus/Data/Crafting/CraftingTableContext.cs
index d7ea2d6..820c018 100644
--- a/Mundus/Data/Crafting/CraftingTableContext.cs
+++ b/Mundus/Data/Crafting/CraftingTableContext.cs
@@ -2,9 +2,9 @@
{
using System.Linq;
using Microsoft.EntityFrameworkCore;
- using Mundus.Data.Superlayers.Mobs;
+ using Mundus.Data.Tiles.Mobs;
+ using Mundus.Data.Tiles.Presets;
using Mundus.Service.Tiles.Crafting;
- using Mundus.Service.Tiles.Items.Presets;
/// <summary>
/// Context for getting the crafting recipes
diff --git a/Mundus/Service/Tiles/Mobs/LandMobs/LandMobsPresets.cs b/Mundus/Data/Tiles/Mobs/LandMobsPresets.cs
index e19cf7c..7f9edfd 100644
--- a/Mundus/Service/Tiles/Mobs/LandMobs/LandMobsPresets.cs
+++ b/Mundus/Data/Tiles/Mobs/LandMobsPresets.cs
@@ -1,8 +1,8 @@
-namespace Mundus.Service.Tiles.Mobs.LandMobs
+namespace Mundus.Data.Tiles.Mobs
{
using Mundus.Data;
- using Mundus.Data.Superlayers.Mobs;
- using Mundus.Service.Tiles.Items.Presets;
+ using Mundus.Data.Tiles.Presets;
+ using Mundus.Service.Tiles.Mobs;
public static class LandMobsPresets
{
diff --git a/Mundus/Data/SuperLayers/Mobs/MI.cs b/Mundus/Data/Tiles/Mobs/MI.cs
index 0a805f8..8bfa50a 100644
--- a/Mundus/Data/SuperLayers/Mobs/MI.cs
+++ b/Mundus/Data/Tiles/Mobs/MI.cs
@@ -1,6 +1,6 @@
-namespace Mundus.Data.Superlayers.Mobs
+namespace Mundus.Data.Tiles.Mobs
{
- using Mundus.Service.Tiles.Items.Presets;
+ using Mundus.Data.Tiles.Presets;
using Mundus.Service.Tiles.Mobs.LandMobs;
/// <summary>
diff --git a/Mundus/Service/Tiles/Items/Presets/GroundPresets.cs b/Mundus/Data/Tiles/Presets/GroundPresets.cs
index f763309..ac9f422 100644
--- a/Mundus/Service/Tiles/Items/Presets/GroundPresets.cs
+++ b/Mundus/Data/Tiles/Presets/GroundPresets.cs
@@ -1,5 +1,4 @@
-
-namespace Mundus.Service.Tiles.Items.Presets
+namespace Mundus.Data.Tiles.Presets
{
using Mundus.Service.Tiles.Items.Types;
diff --git a/Mundus/Service/Tiles/Items/Presets/MaterialPresets.cs b/Mundus/Data/Tiles/Presets/MaterialPresets.cs
index 9b5ac1e..7298e8f 100644
--- a/Mundus/Service/Tiles/Items/Presets/MaterialPresets.cs
+++ b/Mundus/Data/Tiles/Presets/MaterialPresets.cs
@@ -1,4 +1,4 @@
-namespace Mundus.Service.Tiles.Items.Presets
+namespace Mundus.Data.Tiles.Presets
{
using Mundus.Service.Tiles.Items.Types;
diff --git a/Mundus/Service/Tiles/Items/Presets/StructurePresets.cs b/Mundus/Data/Tiles/Presets/StructurePresets.cs
index b16a952..28bad22 100644
--- a/Mundus/Service/Tiles/Items/Presets/StructurePresets.cs
+++ b/Mundus/Data/Tiles/Presets/StructurePresets.cs
@@ -1,4 +1,4 @@
-namespace Mundus.Service.Tiles.Items.Presets
+namespace Mundus.Data.Tiles.Presets
{
using Mundus.Service.Tiles.Items.Types;
using static Mundus.Data.Values;
diff --git a/Mundus/Service/Tiles/Items/Presets/ToolPresets.cs b/Mundus/Data/Tiles/Presets/ToolPresets.cs
index 04d6798..9c62201 100644
--- a/Mundus/Service/Tiles/Items/Presets/ToolPresets.cs
+++ b/Mundus/Data/Tiles/Presets/ToolPresets.cs
@@ -1,4 +1,4 @@
-namespace Mundus.Service.Tiles.Items.Presets
+namespace Mundus.Data.Tiles.Presets
{
using Mundus.Service.Tiles.Items.Types;
using static Mundus.Data.Values;
diff --git a/Mundus/Mundus.csproj b/Mundus/Mundus.csproj
index ec15c2d..fd4f66d 100644
--- a/Mundus/Mundus.csproj
+++ b/Mundus/Mundus.csproj
@@ -267,7 +267,6 @@
<Compile Include="Service\SuperLayers\ImageController.cs" />
<Compile Include="Data\Windows\WI.cs" />
<Compile Include="Data\Dialogues\DI.cs" />
- <Compile Include="Data\SuperLayers\Mobs\MI.cs" />
<Compile Include="Service\GameGenerator.cs" />
<Compile Include="Service\SuperLayers\Generators\LandSuperLayerGenerator.cs" />
<Compile Include="Service\SuperLayers\Generators\UndergroundSuperLayerGenerator.cs" />
@@ -280,16 +279,11 @@
<Compile Include="Service\Tiles\Mobs\Controllers\MobMovement.cs" />
<Compile Include="Service\Tiles\Mobs\Controllers\MobStatsController.cs" />
<Compile Include="Service\Tiles\Mobs\Controllers\MobTerraforming.cs" />
- <Compile Include="Service\Tiles\Mobs\LandMobs\LandMobsPresets.cs" />
<Compile Include="Service\Tiles\Mobs\LandMobs\Player.cs" />
<Compile Include="Service\Tiles\Mobs\MobTile.cs" />
<Compile Include="Service\Tiles\Mobs\Inventory.cs" />
<Compile Include="Service\Tiles\Crafting\CraftingController.cs" />
<Compile Include="Service\Tiles\Crafting\CraftingRecipe.cs" />
- <Compile Include="Service\Tiles\Items\Presets\GroundPresets.cs" />
- <Compile Include="Service\Tiles\Items\Presets\MaterialPresets.cs" />
- <Compile Include="Service\Tiles\Items\Presets\StructurePresets.cs" />
- <Compile Include="Service\Tiles\Items\Presets\ToolPresets.cs" />
<Compile Include="Views\Windows\GameWindows\IGameWindow.cs" />
<Compile Include="Data\Crafting\CraftingTableContext.cs" />
<Compile Include="Data\DataBaseContexts.cs" />
@@ -326,12 +320,18 @@
<Compile Include="Service\Windows\WindowController.cs" />
<Compile Include="Service\Windows\Calculate.cs" />
<Compile Include="Service\Tiles\Items\ItemController.cs" />
+ <Compile Include="Service\Tiles\Items\ItemTile.cs" />
<Compile Include="Service\Tiles\Items\Types\Gear.cs" />
<Compile Include="Service\Tiles\Items\Types\GroundTile.cs" />
<Compile Include="Service\Tiles\Items\Types\Material.cs" />
<Compile Include="Service\Tiles\Items\Types\Structure.cs" />
<Compile Include="Service\Tiles\Items\Types\Tool.cs" />
- <Compile Include="Service\Tiles\Items\ItemTile.cs" />
+ <Compile Include="Data\Tiles\Presets\GroundPresets.cs" />
+ <Compile Include="Data\Tiles\Presets\MaterialPresets.cs" />
+ <Compile Include="Data\Tiles\Presets\StructurePresets.cs" />
+ <Compile Include="Data\Tiles\Presets\ToolPresets.cs" />
+ <Compile Include="Data\Tiles\Mobs\LandMobsPresets.cs" />
+ <Compile Include="Data\Tiles\Mobs\MI.cs" />
</ItemGroup>
<ItemGroup>
<Folder Include="Service\" />
@@ -345,7 +345,6 @@
<Folder Include="Data\Windows\" />
<Folder Include="Data\Dialogues\" />
<Folder Include="Data\SuperLayers\" />
- <Folder Include="Data\SuperLayers\Mobs\" />
<Folder Include="Service\Tiles\Items\" />
<Folder Include="Data\Crafting\" />
<Folder Include="Icons\Land\Materials\" />
@@ -353,7 +352,6 @@
<Folder Include="Icons\Sky\Ground\" />
<Folder Include="Service\Tiles\Mobs\" />
<Folder Include="Service\Tiles\Crafting\" />
- <Folder Include="Service\Tiles\Items\Presets\" />
<Folder Include="Views\Windows\GameWindows\" />
<Folder Include="Icons\UI\Hearth\" />
<Folder Include="Data\SuperLayers\DBTables\" />
@@ -362,7 +360,10 @@
<Folder Include="Views\Windows\GameWindows\Medium\" />
<Folder Include="Views\Windows\GameWindows\Large\" />
<Folder Include="Service\Windows\" />
+ <Folder Include="Data\Tiles\" />
<Folder Include="Service\Tiles\Items\Types\" />
+ <Folder Include="Data\Tiles\Presets\" />
+ <Folder Include="Data\Tiles\Mobs\" />
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
diff --git a/Mundus/Service/GameGenerator.cs b/Mundus/Service/GameGenerator.cs
index 13d43ca..a2038cd 100644
--- a/Mundus/Service/GameGenerator.cs
+++ b/Mundus/Service/GameGenerator.cs
@@ -2,7 +2,7 @@
{
using System;
using Mundus.Data;
- using Mundus.Data.Superlayers.Mobs;
+ using Mundus.Data.Tiles.Mobs;
using Mundus.Data.Windows;
using Mundus.Service.SuperLayers.Generators;
diff --git a/Mundus/Service/SuperLayers/Generators/LandSuperLayerGenerator.cs b/Mundus/Service/SuperLayers/Generators/LandSuperLayerGenerator.cs
index f259ab6..b99cc20 100644
--- a/Mundus/Service/SuperLayers/Generators/LandSuperLayerGenerator.cs
+++ b/Mundus/Service/SuperLayers/Generators/LandSuperLayerGenerator.cs
@@ -2,10 +2,9 @@
{
using System;
using Mundus.Data;
- using Mundus.Data.Superlayers.Mobs;
using Mundus.Data.SuperLayers;
- using Mundus.Service.Tiles.Items.Presets;
- using Mundus.Service.Tiles.Mobs.LandMobs;
+ using Mundus.Data.Tiles.Mobs;
+ using Mundus.Data.Tiles.Presets;
using static Mundus.Data.Values;
/// <summary>
diff --git a/Mundus/Service/SuperLayers/Generators/SkySuperLayerGenerator.cs b/Mundus/Service/SuperLayers/Generators/SkySuperLayerGenerator.cs
index c16db26..790dbfa 100644
--- a/Mundus/Service/SuperLayers/Generators/SkySuperLayerGenerator.cs
+++ b/Mundus/Service/SuperLayers/Generators/SkySuperLayerGenerator.cs
@@ -3,7 +3,7 @@
using System;
using Mundus.Data;
using Mundus.Data.SuperLayers;
- using Mundus.Service.Tiles.Items.Presets;
+ using Mundus.Data.Tiles.Presets;
using static Mundus.Data.Values;
/// <summary>
diff --git a/Mundus/Service/SuperLayers/Generators/UndergroundSuperLayerGenerator.cs b/Mundus/Service/SuperLayers/Generators/UndergroundSuperLayerGenerator.cs
index 807533f..f4eca86 100644
--- a/Mundus/Service/SuperLayers/Generators/UndergroundSuperLayerGenerator.cs
+++ b/Mundus/Service/SuperLayers/Generators/UndergroundSuperLayerGenerator.cs
@@ -3,7 +3,7 @@
using System;
using Mundus.Data;
using Mundus.Data.SuperLayers;
- using Mundus.Service.Tiles.Items.Presets;
+ using Mundus.Data.Tiles.Presets;
using static Mundus.Data.Values;
/// <summary>
diff --git a/Mundus/Service/SuperLayers/ImageController.cs b/Mundus/Service/SuperLayers/ImageController.cs
index b501091..d5a2bae 100644
--- a/Mundus/Service/SuperLayers/ImageController.cs
+++ b/Mundus/Service/SuperLayers/ImageController.cs
@@ -2,8 +2,8 @@
{
using Gtk;
using Mundus.Data;
- using Mundus.Data.Superlayers.Mobs;
using Mundus.Data.SuperLayers;
+ using Mundus.Data.Tiles.Mobs;
using Mundus.Service.Tiles.Items.Types;
using static Mundus.Service.Tiles.Mobs.Inventory;
diff --git a/Mundus/Service/Tiles/Crafting/CraftingController.cs b/Mundus/Service/Tiles/Crafting/CraftingController.cs
index 4fe0279..ffd31db 100644
--- a/Mundus/Service/Tiles/Crafting/CraftingController.cs
+++ b/Mundus/Service/Tiles/Crafting/CraftingController.cs
@@ -2,9 +2,9 @@
{
using System.Linq;
using Mundus.Data;
- using Mundus.Data.Superlayers.Mobs;
+ using Mundus.Data.Tiles.Mobs;
+ using Mundus.Data.Tiles.Presets;
using Mundus.Service.Tiles.Items;
- using Mundus.Service.Tiles.Items.Presets;
using Mundus.Service.Tiles.Mobs;
public static class CraftingController
diff --git a/Mundus/Service/Tiles/Items/ItemController.cs b/Mundus/Service/Tiles/Items/ItemController.cs
index 172b622..17debc9 100644
--- a/Mundus/Service/Tiles/Items/ItemController.cs
+++ b/Mundus/Service/Tiles/Items/ItemController.cs
@@ -1,6 +1,6 @@
namespace Mundus.Service.Tiles.Items
{
- using Mundus.Data.Superlayers.Mobs;
+ using Mundus.Data.Tiles.Mobs;
using Mundus.Data.Windows;
using Mundus.Service.Tiles.Items.Types;
using static Mundus.Service.Tiles.Mobs.Inventory;
diff --git a/Mundus/Service/Tiles/Mobs/Controllers/MobFighting.cs b/Mundus/Service/Tiles/Mobs/Controllers/MobFighting.cs
index d1e8744..a903218 100644
--- a/Mundus/Service/Tiles/Mobs/Controllers/MobFighting.cs
+++ b/Mundus/Service/Tiles/Mobs/Controllers/MobFighting.cs
@@ -3,9 +3,8 @@
using System;
using System.Linq;
using Mundus.Data;
- using Mundus.Data.Superlayers.Mobs;
+ using Mundus.Data.Tiles.Mobs;
using Mundus.Service.Tiles.Items.Types;
- using Mundus.Service.Tiles.Mobs.LandMobs;
using static Mundus.Data.Values;
public static class MobFighting
diff --git a/Mundus/Service/Tiles/Mobs/Controllers/MobMovement.cs b/Mundus/Service/Tiles/Mobs/Controllers/MobMovement.cs
index 0e63928..c5ed2ac 100644
--- a/Mundus/Service/Tiles/Mobs/Controllers/MobMovement.cs
+++ b/Mundus/Service/Tiles/Mobs/Controllers/MobMovement.cs
@@ -2,9 +2,9 @@
{
using System;
using Mundus.Data;
- using Mundus.Data.Superlayers.Mobs;
+ using Mundus.Data.Tiles.Mobs;
+ using Mundus.Data.Tiles.Presets;
using Mundus.Service.SuperLayers;
- using Mundus.Service.Tiles.Items.Presets;
using Mundus.Service.Tiles.Mobs.LandMobs;
using static Mundus.Data.Values;
diff --git a/Mundus/Service/Tiles/Mobs/Controllers/MobStatsController.cs b/Mundus/Service/Tiles/Mobs/Controllers/MobStatsController.cs
index 13140b2..d431ba8 100644
--- a/Mundus/Service/Tiles/Mobs/Controllers/MobStatsController.cs
+++ b/Mundus/Service/Tiles/Mobs/Controllers/MobStatsController.cs
@@ -1,8 +1,8 @@
namespace Mundus.Service.Tiles.Mobs.Controllers
{
- using Mundus.Data.Superlayers.Mobs;
+ using Mundus.Data.Tiles.Mobs;
+ using Mundus.Data.Tiles.Presets;
using Mundus.Service.SuperLayers;
- using Mundus.Service.Tiles.Items.Presets;
public static class MobStatsController
{
diff --git a/Mundus/Service/Tiles/Mobs/Controllers/MobTerraforming.cs b/Mundus/Service/Tiles/Mobs/Controllers/MobTerraforming.cs
index f85a142..fa70f34 100644
--- a/Mundus/Service/Tiles/Mobs/Controllers/MobTerraforming.cs
+++ b/Mundus/Service/Tiles/Mobs/Controllers/MobTerraforming.cs
@@ -2,10 +2,10 @@
{
using System.Linq;
using Mundus.Data;
- using Mundus.Data.Superlayers.Mobs;
using Mundus.Data.SuperLayers;
+ using Mundus.Data.Tiles.Mobs;
+ using Mundus.Data.Tiles.Presets;
using Mundus.Service.SuperLayers;
- using Mundus.Service.Tiles.Items.Presets;
using Mundus.Service.Tiles.Items.Types;
using static Mundus.Data.Values;
diff --git a/Mundus/Service/Tiles/Mobs/Inventory.cs b/Mundus/Service/Tiles/Mobs/Inventory.cs
index 358666e..b97a0cc 100644
--- a/Mundus/Service/Tiles/Mobs/Inventory.cs
+++ b/Mundus/Service/Tiles/Mobs/Inventory.cs
@@ -2,6 +2,7 @@
{
using System;
using System.Linq;
+ using Mundus.Data.Tiles.Mobs;
using Mundus.Service.Tiles.Items;
using Mundus.Service.Tiles.Items.Types;
@@ -32,7 +33,8 @@
this.SetSizes(screenInvSize);
}
- public enum InventoryPlace {
+ public enum InventoryPlace
+ {
Hotbar,
Items,
Accessories,
@@ -143,7 +145,7 @@
/// </summary>
public static void DeletePlayerItemTileFromItemSelection()
{
- Data.Superlayers.Mobs.MI.Player.Inventory.DeleteItem(ItemController.SelItemPlace, ItemController.SelItemIndex);
+ MI.Player.Inventory.DeleteItem(ItemController.SelItemPlace, ItemController.SelItemIndex);
}
/// <summary>
@@ -152,7 +154,7 @@
/// </summary>
public static ItemTile GetPlayerItemFromItemSelection()
{
- return Data.Superlayers.Mobs.MI.Player.Inventory.GetItemTile(ItemController.SelItemPlace, ItemController.SelItemIndex);
+ return MI.Player.Inventory.GetItemTile(ItemController.SelItemPlace, ItemController.SelItemIndex);
}
}
} \ No newline at end of file
diff --git a/Mundus/Service/Windows/Calculate.cs b/Mundus/Service/Windows/Calculate.cs
index 55220ec..8bc1823 100644
--- a/Mundus/Service/Windows/Calculate.cs
+++ b/Mundus/Service/Windows/Calculate.cs
@@ -2,8 +2,8 @@
{
using System;
using Mundus.Data;
- using Mundus.Data.Superlayers.Mobs;
-
+ using Mundus.Data.Tiles.Mobs;
+
/// <summary>
/// Used to calculate values, related to the buttons on the game windows
/// </summary>
diff --git a/MundusTests/DataTests/Crafting/CraftingTableContextTests.cs b/MundusTests/DataTests/Crafting/CraftingTableContextTests.cs
new file mode 100644
index 0000000..224e250
--- /dev/null
+++ b/MundusTests/DataTests/Crafting/CraftingTableContextTests.cs
@@ -0,0 +1,20 @@
+using System;
+using System.Linq;
+using Mundus.Data.Crafting;
+using Mundus.Data.Superlayers.Mobs;
+using Mundus.Data.Windows;
+using Mundus.Service;
+using Mundus.Service.Tiles.Mobs.LandMobs;
+using NUnit.Framework;
+
+namespace MundusTests.DataTests.Crafting {
+ [TestFixture]
+ public static class CraftingTableContextTests {
+ [Test]
+ public static void AddsRecipesUponInitialization() {
+ CraftingTableContext craftingTC = new CraftingTableContext();
+
+ Assert.Less(0, craftingTC.CraftingRecipes.Count(), "CraftingTableContext doesn't add any recipes upon initialization");
+ }
+ }
+}
diff --git a/MundusTests/DataTests/GameEventLogs/GameEventLogContextTests.cs b/MundusTests/DataTests/GameEventLogs/GameEventLogContextTests.cs
new file mode 100644
index 0000000..c801c7d
--- /dev/null
+++ b/MundusTests/DataTests/GameEventLogs/GameEventLogContextTests.cs
@@ -0,0 +1,50 @@
+using System.Linq;
+using Mundus.Data.GameEventLogs;
+using NUnit.Framework;
+
+namespace MundusTests.DataTests.GameEventLogs {
+ [TestFixture]
+ public static class GameEventLogContextTests {
+ [Test]
+ public static void TableGetsResetOnInitialization() {
+ GameEventLogContext gelc = new GameEventLogContext();
+
+ Assert.AreEqual(0, gelc.GameEventLogs.Count(), "GameEventLogContext doesn't remove all values from table after being initialized.");
+ }
+
+ [Test]
+ [TestCase("Test message one.", "Test message two.")]
+ public static void AddsMessageToTable(string message1, string message2) {
+ GameEventLogContext gelc = new GameEventLogContext();
+
+ gelc.AddMessage(message1);
+ gelc.AddMessage(message2);
+
+ Assert.AreEqual(message1, gelc.GetMessage(1), "First message isn't properly added or can't get it from table.");
+ Assert.AreEqual(message2, gelc.GetMessage(2), "Second message isn't properly added or can't get it from table.");
+ }
+
+ [Test]
+ [TestCase("Test message 1.", "Test message 2.")]
+ public static void AddsMessagesToTable(string message1, string message2) {
+ GameEventLogContext gelc = new GameEventLogContext();
+
+ gelc.AddMessage(message1);
+ gelc.AddMessage(message2);
+
+ Assert.AreEqual(message1, gelc.GameEventLogs.Find(1).Message, "Didn't get the first message");
+ Assert.AreEqual(message2, gelc.GameEventLogs.Find(2).Message, "Didn't get the second message");
+ }
+
+ [Test]
+ [TestCase("Test message 1.", "Test message 2.")]
+ public static void CountsProperAmmountOfMessages(string message1, string message2) {
+ GameEventLogContext gelc = new GameEventLogContext();
+
+ gelc.AddMessage(message1);
+ gelc.AddMessage(message2);
+
+ Assert.AreEqual(2, gelc.GetCount(), "Count of messages is wrong");
+ }
+ }
+}
diff --git a/MundusTests/DataTests/GameEventLogs/GameEventLogTests.cs b/MundusTests/DataTests/GameEventLogs/GameEventLogTests.cs
new file mode 100644
index 0000000..b6d75cd
--- /dev/null
+++ b/MundusTests/DataTests/GameEventLogs/GameEventLogTests.cs
@@ -0,0 +1,16 @@
+using System;
+using Mundus.Data.GameEventLogs;
+using NUnit.Framework;
+
+namespace MundusTests.DataTests.GameEventLogs {
+ [TestFixture]
+ public static class GameEventLogTests {
+ [Test]
+ [TestCase("Testing message")]
+ public static void InitializesWithProperMessageValue(string message) {
+ GameEventLog log = new GameEventLog(message);
+
+ Assert.AreEqual(message, log.Message, "GameEventLog doesn't properly set message on initialization");
+ }
+ }
+}
diff --git a/MundusTests/DataTests/SuperLayers/LandContextTests.cs b/MundusTests/DataTests/SuperLayers/LandContextTests.cs
new file mode 100644
index 0000000..f083841
--- /dev/null
+++ b/MundusTests/DataTests/SuperLayers/LandContextTests.cs
@@ -0,0 +1,153 @@
+using System;
+using System.Linq;
+using Mundus.Data.SuperLayers;
+using Mundus.Data.SuperLayers.DBTables;
+using NUnit.Framework;
+
+namespace MundusTests.DataTests.SuperLayers {
+ [TestFixture]
+ public static class LandContextTests {
+ [Test]
+ public static void AddsCorrectValues() {
+ var mob = new LMPlacedTile("mob_stock", 0, 1, 1);
+ var structure = new LSPlacedTile("structure_stock", 0, 2, 1);
+ var ground = new LGPlacedTile("ground_stock", 3, 4);
+
+ LandContext lc = new LandContext();
+
+ lc.AddMobAtPosition(mob.stock_id, mob.Health, mob.YPos, mob.XPos);
+ lc.AddStructureAtPosition(structure.stock_id, structure.Health, structure.YPos, structure.XPos);
+ lc.AddGroundAtPosition(ground.stock_id, ground.YPos, ground.XPos);
+ lc.SaveChanges();
+
+ Assert.AreEqual(mob.stock_id, lc.GetMobLayerStock(mob.YPos, mob.XPos), "Didn't add the mob correctly");
+ Assert.AreEqual(structure.stock_id, lc.GetStructureLayerStock(structure.YPos, structure.XPos), "Didn't add the structure correctly");
+ Assert.AreEqual(ground.stock_id, lc.GetGroundLayerStock(ground.YPos, ground.XPos), "Didn't add the ground correctly");
+ }
+
+ [Test]
+ public static void ConsideredAliveAfterSmallDamage() {
+ var mob = new LMPlacedTile("mob_stock", 10, 1, 1);
+ var structure = new LSPlacedTile("structure_stock", 4, 2, 1);
+
+ LandContext lc = new LandContext();
+
+ lc.AddMobAtPosition(mob.stock_id, mob.Health, mob.YPos, mob.XPos);
+ lc.AddStructureAtPosition(structure.stock_id, structure.Health, structure.YPos, structure.XPos);
+ lc.SaveChanges();
+
+ Assert.IsTrue(lc.TakeDamageMobAtPosition(mob.YPos, mob.XPos, 3), "Mob is considered dead (health <= 0), but it shouldnt be");
+ Assert.IsTrue(lc.TakeDamageStructureAtPosition(structure.YPos, structure.XPos, 2), "Structure is considered dead (health <= 0), but it shouldn't be");
+ }
+
+ [Test]
+ public static void ConsideredDeadAfterBigDamage() {
+ var mob = new LMPlacedTile("mob_stock", 10, 1, 1);
+ var structure = new LSPlacedTile("structure_stock", 4, 2, 1);
+
+ LandContext lc = new LandContext();
+
+ lc.AddMobAtPosition(mob.stock_id, mob.Health, mob.YPos, mob.XPos);
+ lc.AddStructureAtPosition(structure.stock_id, structure.Health, structure.YPos, structure.XPos);
+ lc.SaveChanges();
+
+ Assert.IsFalse(lc.TakeDamageMobAtPosition(mob.YPos, mob.XPos, 20), "Mob is considered alive (health > 0), but it shouldnt be");
+ Assert.IsFalse(lc.TakeDamageStructureAtPosition(structure.YPos, structure.XPos, 20), "Structure is considered alive (health > 0), but it shouldn't be");
+ }
+
+ [Test]
+ public static void DamagesCorrectly() {
+ var mob = new LMPlacedTile("mob_stock", 10, 1, 1);
+ var structure = new LSPlacedTile("structure_stock", 4, 2, 1);
+
+ LandContext lc = new LandContext();
+
+ lc.AddMobAtPosition(mob.stock_id, mob.Health, mob.YPos, mob.XPos);
+ lc.AddStructureAtPosition(structure.stock_id, structure.Health, structure.YPos, structure.XPos);
+ lc.SaveChanges();
+
+ lc.TakeDamageMobAtPosition(mob.YPos, mob.XPos, 3);
+ lc.TakeDamageStructureAtPosition(structure.YPos, structure.XPos, 1);
+
+ Assert.AreEqual(7, lc.LMobLayer.First(x => x.YPos == mob.YPos && x.XPos == mob.XPos).Health, "Mobs recieve incorrect amount of damage");
+ Assert.AreEqual(3, lc.LStructureLayer.First(x => x.YPos == structure.YPos && x.XPos == structure.XPos).Health, "Structures recieve incorrect amount of damage");
+ }
+
+ [Test]
+ public static void GetsCorrectStocks() {
+ var mob = new LMPlacedTile("mob_stock", 0, 1, 1);
+ var structure = new LSPlacedTile("structure_stock", 0, 2, 1);
+ var ground = new LGPlacedTile("ground_stock", 3, 4);
+
+ LandContext lc = new LandContext();
+
+ lc.LMobLayer.Add(mob);
+ lc.LStructureLayer.Add(structure);
+ lc.LGroundLayer.Add(ground);
+ lc.SaveChanges();
+
+ Assert.AreEqual(mob.stock_id, lc.GetMobLayerStock(mob.YPos, mob.XPos), "Doesn't get the correct mob layer stock");
+ Assert.AreEqual(structure.stock_id, lc.GetStructureLayerStock(structure.YPos,structure.XPos), "Doesn't get the correct structure layer stock");
+ Assert.AreEqual(ground.stock_id, lc.GetGroundLayerStock(ground.YPos, ground.XPos), "Doesn't get the correct ground layer stock");
+ }
+
+ [Test]
+ public static void RemovesCorrectValues() {
+ var mob = new LMPlacedTile("mob_stock", 0, 1, 1);
+ var structure = new LSPlacedTile("structure_stock", 0, 2, 1);
+ var ground = new LGPlacedTile("ground_stock", 3, 4);
+
+ LandContext lc = new LandContext();
+
+ lc.AddMobAtPosition(mob.stock_id, mob.Health, mob.YPos, mob.XPos);
+ lc.AddStructureAtPosition(structure.stock_id, structure.Health, structure.YPos, structure.XPos);
+ lc.AddGroundAtPosition(ground.stock_id, ground.YPos, ground.XPos);
+ lc.SaveChanges();
+
+ lc.RemoveMobFromPosition(mob.YPos, mob.XPos);
+ lc.RemoveStructureFromPosition(structure.YPos, structure.XPos);
+ lc.RemoveGroundFromPosition(ground.YPos, ground.XPos);
+ lc.SaveChanges();
+
+ Assert.AreEqual(null, lc.GetMobLayerStock(mob.YPos, mob.XPos), "Didn't remove the mob correctly");
+ Assert.AreEqual(null, lc.GetStructureLayerStock(structure.YPos, structure.XPos), "Didn't remove the structure correctly");
+ Assert.AreEqual(null, lc.GetGroundLayerStock(ground.YPos, ground.XPos), "Didn't remove the ground correctly");
+ }
+
+
+ [Test]
+ public static void SetsCorrectValues() {
+ var mob = new LMPlacedTile("mob_stock", 0, 1, 1);
+ var newMob = new LMPlacedTile("new_mob_stock", 1, 1, 1);
+ var structure = new LSPlacedTile("structure_stock", 0, 2, 1);
+ var newStructure = new LSPlacedTile("new_structure_stock", 1, 2, 1);
+ var ground = new LGPlacedTile("ground_stock", 3, 4);
+ var newGround = new LGPlacedTile("new_ground_stock", 3, 4);
+
+ LandContext lc = new LandContext();
+
+ lc.AddMobAtPosition(mob.stock_id, mob.Health, mob.YPos, mob.XPos);
+ lc.AddStructureAtPosition(structure.stock_id, structure.Health, structure.YPos, structure.XPos);
+ lc.AddGroundAtPosition(ground.stock_id, ground.YPos, ground.XPos);
+ lc.SaveChanges();
+
+ lc.SetMobAtPosition(newMob.stock_id, newMob.Health, newMob.YPos, newMob.XPos);
+ lc.SetStructureAtPosition(newStructure.stock_id, newStructure.Health, newStructure.YPos, newStructure.XPos);
+ lc.SetGroundAtPosition(newGround.stock_id, newGround.YPos, newGround.XPos);
+ lc.SaveChanges();
+
+ Assert.AreEqual(newMob.stock_id, lc.GetMobLayerStock(mob.YPos, mob.XPos), "Didn't set the mob correctly");
+ Assert.AreEqual(newStructure.stock_id, lc.GetStructureLayerStock(structure.YPos, structure.XPos), "Didn't set the structure correctly");
+ Assert.AreEqual(newGround.stock_id, lc.GetGroundLayerStock(ground.YPos, ground.XPos), "Didn't set the ground correctly");
+ }
+
+ [Test]
+ public static void TruncatesTablesOnInitialization() {
+ LandContext lc = new LandContext();
+
+ Assert.AreEqual(0, lc.LMobLayer.Count(), "LMobLayer table isn't properly truncated upon LandContext initialization");
+ Assert.AreEqual(0, lc.LStructureLayer.Count(), "LStructureLayer table isn't properly truncated upon LandContext initialization");
+ Assert.AreEqual(0, lc.LGroundLayer.Count(), "LGroungLayer table isn't properly truncated upon LandContext initialization");
+ }
+ }
+}
diff --git a/MundusTests/DataTests/SuperLayers/SkyContextTests.cs b/MundusTests/DataTests/SuperLayers/SkyContextTests.cs
new file mode 100644
index 0000000..91a05b2
--- /dev/null
+++ b/MundusTests/DataTests/SuperLayers/SkyContextTests.cs
@@ -0,0 +1,153 @@
+using System;
+using System.Linq;
+using Mundus.Data.SuperLayers;
+using Mundus.Data.SuperLayers.DBTables;
+using NUnit.Framework;
+
+namespace MundusTests.DataTests.SuperLayers {
+ [TestFixture]
+ public static class SkyContextTests {
+ [Test]
+ public static void AddsCorrectValues() {
+ var mob = new SMPlacedTile("mob_stock", 0, 1, 1);
+ var structure = new SSPlacedTile("structure_stock", 0, 2, 1);
+ var ground = new SGPlacedTile("ground_stock", 3, 4);
+
+ SkyContext sc = new SkyContext();
+
+ sc.AddMobAtPosition(mob.stock_id, mob.Health, mob.YPos, mob.XPos);
+ sc.AddStructureAtPosition(structure.stock_id, structure.Health, structure.YPos, structure.XPos);
+ sc.AddGroundAtPosition(ground.stock_id, ground.YPos, ground.XPos);
+ sc.SaveChanges();
+
+ Assert.AreEqual(mob.stock_id, sc.GetMobLayerStock(mob.YPos, mob.XPos), "Didn't add the mob correctly");
+ Assert.AreEqual(structure.stock_id, sc.GetStructureLayerStock(structure.YPos, structure.XPos), "Didn't add the structure correctly");
+ Assert.AreEqual(ground.stock_id, sc.GetGroundLayerStock(ground.YPos, ground.XPos), "Didn't add the ground correctly");
+ }
+
+ [Test]
+ public static void ConsideredAliveAfterSmallDamage() {
+ var mob = new SMPlacedTile("mob_stock", 10, 1, 1);
+ var structure = new SSPlacedTile("structure_stock", 4, 2, 1);
+
+ SkyContext sc = new SkyContext();
+
+ sc.AddMobAtPosition(mob.stock_id, mob.Health, mob.YPos, mob.XPos);
+ sc.AddStructureAtPosition(structure.stock_id, structure.Health, structure.YPos, structure.XPos);
+ sc.SaveChanges();
+
+ Assert.IsTrue(sc.TakeDamageMobAtPosition(mob.YPos, mob.XPos, 3), "Mob is considered dead (health <= 0), but it shouldnt be");
+ Assert.IsTrue(sc.TakeDamageStructureAtPosition(structure.YPos, structure.XPos, 2), "Structure is considered dead (health <= 0), but it shouldn't be");
+ }
+
+ [Test]
+ public static void ConsideredDeadAfterBigDamage() {
+ var mob = new SMPlacedTile("mob_stock", 10, 1, 1);
+ var structure = new SSPlacedTile("structure_stock", 4, 2, 1);
+
+ SkyContext sc = new SkyContext();
+
+ sc.AddMobAtPosition(mob.stock_id, mob.Health, mob.YPos, mob.XPos);
+ sc.AddStructureAtPosition(structure.stock_id, structure.Health, structure.YPos, structure.XPos);
+ sc.SaveChanges();
+
+ Assert.IsFalse(sc.TakeDamageMobAtPosition(mob.YPos, mob.XPos, 20), "Mob is considered alive (health > 0), but it shouldnt be");
+ Assert.IsFalse(sc.TakeDamageStructureAtPosition(structure.YPos, structure.XPos, 20), "Structure is considered alive (health > 0), but it shouldn't be");
+ }
+
+ [Test]
+ public static void DamagesCorrectly() {
+ var mob = new SMPlacedTile("mob_stock", 10, 1, 1);
+ var structure = new SSPlacedTile("structure_stock", 4, 2, 1);
+
+ SkyContext sc = new SkyContext();
+
+ sc.AddMobAtPosition(mob.stock_id, mob.Health, mob.YPos, mob.XPos);
+ sc.AddStructureAtPosition(structure.stock_id, structure.Health, structure.YPos, structure.XPos);
+ sc.SaveChanges();
+
+ sc.TakeDamageMobAtPosition(mob.YPos, mob.XPos, 3);
+ sc.TakeDamageStructureAtPosition(structure.YPos, structure.XPos, 1);
+
+ Assert.AreEqual(7, sc.SMobLayer.First(x => x.YPos == mob.YPos && x.XPos == mob.XPos).Health, "Mobs recieve incorrect amount of damage");
+ Assert.AreEqual(3, sc.SStructureLayer.First(x => x.YPos == structure.YPos && x.XPos == structure.XPos).Health, "Structures recieve incorrect amount of damage");
+ }
+
+ [Test]
+ public static void GetsCorrectStocks() {
+ var mob = new SMPlacedTile("mob_stock", 0, 1, 1);
+ var structure = new SSPlacedTile("structure_stock", 0, 2, 1);
+ var ground = new SGPlacedTile("ground_stock", 3, 4);
+
+ SkyContext sc = new SkyContext();
+
+ sc.SMobLayer.Add(mob);
+ sc.SStructureLayer.Add(structure);
+ sc.SGroundLayer.Add(ground);
+ sc.SaveChanges();
+
+ Assert.AreEqual(mob.stock_id, sc.GetMobLayerStock(mob.YPos, mob.XPos), "Doesn't get the correct mob layer stock");
+ Assert.AreEqual(structure.stock_id, sc.GetStructureLayerStock(structure.YPos, structure.XPos), "Doesn't get the correct structure layer stock");
+ Assert.AreEqual(ground.stock_id, sc.GetGroundLayerStock(ground.YPos, ground.XPos), "Doesn't get the correct ground layer stock");
+ }
+
+ [Test]
+ public static void RemovesCorrectValues() {
+ var mob = new SMPlacedTile("mob_stock", 0, 1, 1);
+ var structure = new SSPlacedTile("structure_stock", 0, 2, 1);
+ var ground = new SGPlacedTile("ground_stock", 3, 4);
+
+ SkyContext sc = new SkyContext();
+
+ sc.AddMobAtPosition(mob.stock_id, mob.Health, mob.YPos, mob.XPos);
+ sc.AddStructureAtPosition(structure.stock_id, structure.Health, structure.YPos, structure.XPos);
+ sc.AddGroundAtPosition(ground.stock_id, ground.YPos, ground.XPos);
+ sc.SaveChanges();
+
+ sc.RemoveMobFromPosition(mob.YPos, mob.XPos);
+ sc.RemoveStructureFromPosition(structure.YPos, structure.XPos);
+ sc.RemoveGroundFromPosition(ground.YPos, ground.XPos);
+ sc.SaveChanges();
+
+ Assert.AreEqual(null, sc.GetMobLayerStock(mob.YPos, mob.XPos), "Didn't remove the mob correctly");
+ Assert.AreEqual(null, sc.GetStructureLayerStock(structure.YPos, structure.XPos), "Didn't remove the structure correctly");
+ Assert.AreEqual(null, sc.GetGroundLayerStock(ground.YPos, ground.XPos), "Didn't remove the ground correctly");
+ }
+
+
+ [Test]
+ public static void SetsCorrectValues() {
+ var mob = new SMPlacedTile("mob_stock", 0, 1, 1);
+ var newMob = new SMPlacedTile("new_mob_stock", 1, 1, 1);
+ var structure = new SSPlacedTile("structure_stock", 0, 2, 1);
+ var newStructure = new SSPlacedTile("new_structure_stock", 1, 2, 1);
+ var ground = new SGPlacedTile("ground_stock", 3, 4);
+ var newGround = new SGPlacedTile("new_ground_stock", 3, 4);
+
+ SkyContext sc = new SkyContext();
+
+ sc.AddMobAtPosition(mob.stock_id, mob.Health, mob.YPos, mob.XPos);
+ sc.AddStructureAtPosition(structure.stock_id, structure.Health, structure.YPos, structure.XPos);
+ sc.AddGroundAtPosition(ground.stock_id, ground.YPos, ground.XPos);
+ sc.SaveChanges();
+
+ sc.SetMobAtPosition(newMob.stock_id, newMob.Health, newMob.YPos, newMob.XPos);
+ sc.SetStructureAtPosition(newStructure.stock_id, newStructure.Health, newStructure.YPos, newStructure.XPos);
+ sc.SetGroundAtPosition(newGround.stock_id, newGround.YPos, newGround.XPos);
+ sc.SaveChanges();
+
+ Assert.AreEqual(newMob.stock_id, sc.GetMobLayerStock(mob.YPos, mob.XPos), "Didn't set the mob correctly");
+ Assert.AreEqual(newStructure.stock_id, sc.GetStructureLayerStock(structure.YPos, structure.XPos), "Didn't set the structure correctly");
+ Assert.AreEqual(newGround.stock_id, sc.GetGroundLayerStock(ground.YPos, ground.XPos), "Didn't set the ground correctly");
+ }
+
+ [Test]
+ public static void TruncatesTablesOnInitialization() {
+ SkyContext sc = new SkyContext();
+
+ Assert.AreEqual(0, sc.SMobLayer.Count(), "SMobLayer table isn't properly truncated upon SkyContext initialization");
+ Assert.AreEqual(0, sc.SStructureLayer.Count(), "SStructureLayer table isn't properly truncated upon SkyContext initialization");
+ Assert.AreEqual(0, sc.SGroundLayer.Count(), "LGroungLayer table isn't properly truncated upon SkyContext initialization");
+ }
+ }
+}
diff --git a/MundusTests/DataTests/SuperLayers/UndergroundContextTests.cs b/MundusTests/DataTests/SuperLayers/UndergroundContextTests.cs
new file mode 100644
index 0000000..98d7679
--- /dev/null
+++ b/MundusTests/DataTests/SuperLayers/UndergroundContextTests.cs
@@ -0,0 +1,153 @@
+using System;
+using System.Linq;
+using Mundus.Data.SuperLayers;
+using Mundus.Data.SuperLayers.DBTables;
+using NUnit.Framework;
+
+namespace MundusTests.DataTests.SuperLayers {
+ [TestFixture]
+ public static class UndergroundContextTests {
+ [Test]
+ public static void AddsCorrectValues() {
+ var mob = new UMPlacedTile("mob_stock", 0, 1, 1);
+ var structure = new USPlacedTile("structure_stock", 0, 2, 1);
+ var ground = new UGPlacedTile("ground_stock", 3, 4);
+
+ UndergroundContext uc = new UndergroundContext();
+
+ uc.AddMobAtPosition(mob.stock_id, mob.Health, mob.YPos, mob.XPos);
+ uc.AddStructureAtPosition(structure.stock_id, structure.Health, structure.YPos, structure.XPos);
+ uc.AddGroundAtPosition(ground.stock_id, ground.YPos, ground.XPos);
+ uc.SaveChanges();
+
+ Assert.AreEqual(mob.stock_id, uc.GetMobLayerStock(mob.YPos, mob.XPos), "Didn't add the mob correctly");
+ Assert.AreEqual(structure.stock_id, uc.GetStructureLayerStock(structure.YPos, structure.XPos), "Didn't add the structure correctly");
+ Assert.AreEqual(ground.stock_id, uc.GetGroundLayerStock(ground.YPos, ground.XPos), "Didn't add the ground correctly");
+ }
+
+ [Test]
+ public static void ConsideredAliveAfterSmallDamage() {
+ var mob = new UMPlacedTile("mob_stock", 10, 1, 1);
+ var structure = new USPlacedTile("structure_stock", 4, 2, 1);
+
+ UndergroundContext uc = new UndergroundContext();
+
+ uc.AddMobAtPosition(mob.stock_id, mob.Health, mob.YPos, mob.XPos);
+ uc.AddStructureAtPosition(structure.stock_id, structure.Health, structure.YPos, structure.XPos);
+ uc.SaveChanges();
+
+ Assert.IsTrue(uc.TakeDamageMobAtPosition(mob.YPos, mob.XPos, 3), "Mob is considered dead (health <= 0), but it shouldnt be");
+ Assert.IsTrue(uc.TakeDamageStructureAtPosition(structure.YPos, structure.XPos, 2), "Structure is considered dead (health <= 0), but it shouldn't be");
+ }
+
+ [Test]
+ public static void ConsideredDeadAfterBigDamage() {
+ var mob = new UMPlacedTile("mob_stock", 10, 1, 1);
+ var structure = new USPlacedTile("structure_stock", 4, 2, 1);
+
+ UndergroundContext uc = new UndergroundContext();
+
+ uc.AddMobAtPosition(mob.stock_id, mob.Health, mob.YPos, mob.XPos);
+ uc.AddStructureAtPosition(structure.stock_id, structure.Health, structure.YPos, structure.XPos);
+ uc.SaveChanges();
+
+ Assert.IsFalse(uc.TakeDamageMobAtPosition(mob.YPos, mob.XPos, 20), "Mob is considered alive (health > 0), but it shouldnt be");
+ Assert.IsFalse(uc.TakeDamageStructureAtPosition(structure.YPos, structure.XPos, 20), "Structure is considered alive (health > 0), but it shouldn't be");
+ }
+
+ [Test]
+ public static void DamagesCorrectly() {
+ var mob = new UMPlacedTile("mob_stock", 10, 1, 1);
+ var structure = new USPlacedTile("structure_stock", 4, 2, 1);
+
+ UndergroundContext uc = new UndergroundContext();
+
+ uc.AddMobAtPosition(mob.stock_id, mob.Health, mob.YPos, mob.XPos);
+ uc.AddStructureAtPosition(structure.stock_id, structure.Health, structure.YPos, structure.XPos);
+ uc.SaveChanges();
+
+ uc.TakeDamageMobAtPosition(mob.YPos, mob.XPos, 3);
+ uc.TakeDamageStructureAtPosition(structure.YPos, structure.XPos, 1);
+
+ Assert.AreEqual(7, uc.UMobLayer.First(x => x.YPos == mob.YPos && x.XPos == mob.XPos).Health, "Mobs recieve incorrect amount of damage");
+ Assert.AreEqual(3, uc.UStructureLayer.First(x => x.YPos == structure.YPos && x.XPos == structure.XPos).Health, "Structures recieve incorrect amount of damage");
+ }
+
+ [Test]
+ public static void GetsCorrectStocks() {
+ var mob = new UMPlacedTile("mob_stock", 0, 1, 1);
+ var structure = new USPlacedTile("structure_stock", 0, 2, 1);
+ var ground = new UGPlacedTile("ground_stock", 3, 4);
+
+ UndergroundContext uc = new UndergroundContext();
+
+ uc.UMobLayer.Add(mob);
+ uc.UStructureLayer.Add(structure);
+ uc.UGroundLayer.Add(ground);
+ uc.SaveChanges();
+
+ Assert.AreEqual(mob.stock_id, uc.GetMobLayerStock(mob.YPos, mob.XPos), "Doesn't get the correct mob layer stock");
+ Assert.AreEqual(structure.stock_id, uc.GetStructureLayerStock(structure.YPos, structure.XPos), "Doesn't get the correct structure layer stock");
+ Assert.AreEqual(ground.stock_id, uc.GetGroundLayerStock(ground.YPos, ground.XPos), "Doesn't get the correct ground layer stock");
+ }
+
+ [Test]
+ public static void RemovesCorrectValues() {
+ var mob = new UMPlacedTile("mob_stock", 0, 1, 1);
+ var structure = new USPlacedTile("structure_stock", 0, 2, 1);
+ var ground = new UGPlacedTile("ground_stock", 3, 4);
+
+ UndergroundContext uc = new UndergroundContext();
+
+ uc.AddMobAtPosition(mob.stock_id, mob.Health, mob.YPos, mob.XPos);
+ uc.AddStructureAtPosition(structure.stock_id, structure.Health, structure.YPos, structure.XPos);
+ uc.AddGroundAtPosition(ground.stock_id, ground.YPos, ground.XPos);
+ uc.SaveChanges();
+
+ uc.RemoveMobFromPosition(mob.YPos, mob.XPos);
+ uc.RemoveStructureFromPosition(structure.YPos, structure.XPos);
+ uc.RemoveGroundFromPosition(ground.YPos, ground.XPos);
+ uc.SaveChanges();
+
+ Assert.AreEqual(null, uc.GetMobLayerStock(mob.YPos, mob.XPos), "Didn't remove the mob correctly");
+ Assert.AreEqual(null, uc.GetStructureLayerStock(structure.YPos, structure.XPos), "Didn't remove the structure correctly");
+ Assert.AreEqual(null, uc.GetGroundLayerStock(ground.YPos, ground.XPos), "Didn't remove the ground correctly");
+ }
+
+
+ [Test]
+ public static void SetsCorrectValues() {
+ var mob = new UMPlacedTile("mob_stock", 0, 1, 1);
+ var newMob = new UMPlacedTile("new_mob_stock", 1, 1, 1);
+ var structure = new USPlacedTile("structure_stock", 0, 2, 1);
+ var newStructure = new USPlacedTile("new_structure_stock", 1, 2, 1);
+ var ground = new UGPlacedTile("ground_stock", 3, 4);
+ var newGround = new UGPlacedTile("new_ground_stock", 3, 4);
+
+ UndergroundContext uc = new UndergroundContext();
+
+ uc.AddMobAtPosition(mob.stock_id, mob.Health, mob.YPos, mob.XPos);
+ uc.AddStructureAtPosition(structure.stock_id, structure.Health, structure.YPos, structure.XPos);
+ uc.AddGroundAtPosition(ground.stock_id, ground.YPos, ground.XPos);
+ uc.SaveChanges();
+
+ uc.SetMobAtPosition(newMob.stock_id, newMob.Health, newMob.YPos, newMob.XPos);
+ uc.SetStructureAtPosition(newStructure.stock_id, newStructure.Health, newStructure.YPos, newStructure.XPos);
+ uc.SetGroundAtPosition(newGround.stock_id, newGround.YPos, newGround.XPos);
+ uc.SaveChanges();
+
+ Assert.AreEqual(newMob.stock_id, uc.GetMobLayerStock(mob.YPos, mob.XPos), "Didn't set the mob correctly");
+ Assert.AreEqual(newStructure.stock_id, uc.GetStructureLayerStock(structure.YPos, structure.XPos), "Didn't set the structure correctly");
+ Assert.AreEqual(newGround.stock_id, uc.GetGroundLayerStock(ground.YPos, ground.XPos), "Didn't set the ground correctly");
+ }
+
+ [Test]
+ public static void TruncatesTablesOnInitialization() {
+ UndergroundContext uc = new UndergroundContext();
+
+ Assert.AreEqual(0, uc.UMobLayer.Count(), "UMobLayer table isn't properly truncated upon UndergroundContext initialization");
+ Assert.AreEqual(0, uc.UStructureLayer.Count(), "UStructureLayer table isn't properly truncated upon UndergroundContext initialization");
+ Assert.AreEqual(0, uc.UGroundLayer.Count(), "LGroungLayer table isn't properly truncated upon UndergroundContext initialization");
+ }
+ }
+}
diff --git a/MundusTests/MundusTests.csproj b/MundusTests/MundusTests.csproj
new file mode 100644
index 0000000..75aab6b
--- /dev/null
+++ b/MundusTests/MundusTests.csproj
@@ -0,0 +1,198 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProjectGuid>{F2107038-D6F0-4E37-85E2-287A8C1B3006}</ProjectGuid>
+ <OutputType>Library</OutputType>
+ <RootNamespace>MundusTests</RootNamespace>
+ <AssemblyName>MundusTests</AssemblyName>
+ <TargetFrameworkVersion>v4.7</TargetFrameworkVersion>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\Debug</OutputPath>
+ <DefineConstants>DEBUG;</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Release</OutputPath>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="System" />
+ <Reference Include="nunit.framework">
+ <HintPath>..\packages\NUnit.2.6.4\lib\nunit.framework.dll</HintPath>
+ </Reference>
+ <Reference Include="Microsoft.Bcl.HashCode">
+ <HintPath>..\packages\Microsoft.Bcl.HashCode.1.1.0\lib\net461\Microsoft.Bcl.HashCode.dll</HintPath>
+ </Reference>
+ <Reference Include="mscorlib" />
+ <Reference Include="Microsoft.EntityFrameworkCore.Abstractions">
+ <HintPath>..\packages\Microsoft.EntityFrameworkCore.Abstractions.3.1.4\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Abstractions.dll</HintPath>
+ </Reference>
+ <Reference Include="Microsoft.Extensions.DependencyInjection.Abstractions">
+ <HintPath>..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.4\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll</HintPath>
+ </Reference>
+ <Reference Include="Microsoft.Extensions.Logging.Abstractions">
+ <HintPath>..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.4\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll</HintPath>
+ </Reference>
+ <Reference Include="System.Buffers">
+ <HintPath>..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll</HintPath>
+ </Reference>
+ <Reference Include="System.ComponentModel.Annotations">
+ <HintPath>..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll</HintPath>
+ </Reference>
+ <Reference Include="System.ComponentModel.DataAnnotations" />
+ <Reference Include="System.Numerics.Vectors">
+ <HintPath>..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll</HintPath>
+ </Reference>
+ <Reference Include="System.Numerics" />
+ <Reference Include="System.Runtime.CompilerServices.Unsafe">
+ <HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
+ </Reference>
+ <Reference Include="System.Memory">
+ <HintPath>..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll</HintPath>
+ </Reference>
+ <Reference Include="Microsoft.Extensions.Primitives">
+ <HintPath>..\packages\Microsoft.Extensions.Primitives.3.1.4\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll</HintPath>
+ </Reference>
+ <Reference Include="Microsoft.Extensions.Caching.Abstractions">
+ <HintPath>..\packages\Microsoft.Extensions.Caching.Abstractions.3.1.4\lib\netstandard2.0\Microsoft.Extensions.Caching.Abstractions.dll</HintPath>
+ </Reference>
+ <Reference Include="Microsoft.Extensions.Configuration.Abstractions">
+ <HintPath>..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.4\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll</HintPath>
+ </Reference>
+ <Reference Include="Microsoft.Extensions.Configuration">
+ <HintPath>..\packages\Microsoft.Extensions.Configuration.3.1.4\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll</HintPath>
+ </Reference>
+ <Reference Include="Microsoft.Extensions.Configuration.Binder">
+ <HintPath>..\packages\Microsoft.Extensions.Configuration.Binder.3.1.4\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll</HintPath>
+ </Reference>
+ <Reference Include="Microsoft.Extensions.Options">
+ <HintPath>..\packages\Microsoft.Extensions.Options.3.1.4\lib\netstandard2.0\Microsoft.Extensions.Options.dll</HintPath>
+ </Reference>
+ <Reference Include="Microsoft.Extensions.Caching.Memory">
+ <HintPath>..\packages\Microsoft.Extensions.Caching.Memory.3.1.4\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll</HintPath>
+ </Reference>
+ <Reference Include="System.Collections.Immutable">
+ <HintPath>..\packages\System.Collections.Immutable.1.7.1\lib\net461\System.Collections.Immutable.dll</HintPath>
+ </Reference>
+ <Reference Include="System.Core" />
+ <Reference Include="System.Diagnostics.DiagnosticSource">
+ <HintPath>..\packages\System.Diagnostics.DiagnosticSource.4.7.1\lib\net46\System.Diagnostics.DiagnosticSource.dll</HintPath>
+ </Reference>
+ <Reference Include="System.Threading.Tasks.Extensions">
+ <HintPath>..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll</HintPath>
+ </Reference>
+ <Reference Include="Microsoft.Bcl.AsyncInterfaces">
+ <HintPath>..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll</HintPath>
+ </Reference>
+ <Reference Include="Microsoft.Extensions.DependencyInjection">
+ <HintPath>..\packages\Microsoft.Extensions.DependencyInjection.3.1.4\lib\net461\Microsoft.Extensions.DependencyInjection.dll</HintPath>
+ </Reference>
+ <Reference Include="Microsoft.Extensions.Logging">
+ <HintPath>..\packages\Microsoft.Extensions.Logging.3.1.4\lib\netstandard2.0\Microsoft.Extensions.Logging.dll</HintPath>
+ </Reference>
+ <Reference Include="Microsoft.EntityFrameworkCore">
+ <HintPath>..\packages\Microsoft.EntityFrameworkCore.3.1.4\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll</HintPath>
+ </Reference>
+ <Reference Include="CairoSharp">
+ <HintPath>..\packages\CairoSharp.3.22.25.74\lib\netstandard2.0\CairoSharp.dll</HintPath>
+ </Reference>
+ <Reference Include="GLibSharp">
+ <HintPath>..\packages\GLibSharp.3.22.25.74\lib\netstandard2.0\GLibSharp.dll</HintPath>
+ </Reference>
+ <Reference Include="AtkSharp">
+ <HintPath>..\packages\AtkSharp.3.22.25.74\lib\netstandard2.0\AtkSharp.dll</HintPath>
+ </Reference>
+ <Reference Include="GioSharp">
+ <HintPath>..\packages\GioSharp.3.22.25.74\lib\netstandard2.0\GioSharp.dll</HintPath>
+ </Reference>
+ <Reference Include="PangoSharp">
+ <HintPath>..\packages\PangoSharp.3.22.25.74\lib\netstandard2.0\PangoSharp.dll</HintPath>
+ </Reference>
+ <Reference Include="GdkSharp">
+ <HintPath>..\packages\GdkSharp.3.22.25.74\lib\netstandard2.0\GdkSharp.dll</HintPath>
+ </Reference>
+ <Reference Include="GtkSharp">
+ <HintPath>..\packages\GtkSharp.3.22.25.74\lib\netstandard2.0\GtkSharp.dll</HintPath>
+ </Reference>
+ <Reference Include="gtk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
+ <Reference Include="glib-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
+ <Reference Include="atk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
+ <Reference Include="Microsoft.EntityFrameworkCore.Relational">
+ <HintPath>..\packages\Microsoft.EntityFrameworkCore.Relational.3.1.4\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Relational.dll</HintPath>
+ </Reference>
+ <Reference Include="BouncyCastle.Crypto">
+ <HintPath>..\packages\BouncyCastle.1.8.3.1\lib\BouncyCastle.Crypto.dll</HintPath>
+ </Reference>
+ <Reference Include="Google.Protobuf">
+ <HintPath>..\packages\Google.Protobuf.3.6.1\lib\net45\Google.Protobuf.dll</HintPath>
+ </Reference>
+ <Reference Include="Renci.SshNet">
+ <HintPath>..\packages\SSH.NET.2016.1.0\lib\net40\Renci.SshNet.dll</HintPath>
+ </Reference>
+ <Reference Include="K4os.Compression.LZ4">
+ <HintPath>..\packages\K4os.Compression.LZ4.1.1.11\lib\net46\K4os.Compression.LZ4.dll</HintPath>
+ </Reference>
+ <Reference Include="K4os.Hash.xxHash">
+ <HintPath>..\packages\K4os.Hash.xxHash.1.0.6\lib\net46\K4os.Hash.xxHash.dll</HintPath>
+ </Reference>
+ <Reference Include="K4os.Compression.LZ4.Streams">
+ <HintPath>..\packages\K4os.Compression.LZ4.Streams.1.1.11\lib\net46\K4os.Compression.LZ4.Streams.dll</HintPath>
+ </Reference>
+ <Reference Include="MySql.Data">
+ <HintPath>..\packages\MySql.Data.8.0.20\lib\net452\MySql.Data.dll</HintPath>
+ </Reference>
+ <Reference Include="Ubiety.Dns.Core">
+ <HintPath>..\packages\MySql.Data.8.0.20\lib\net452\Ubiety.Dns.Core.dll</HintPath>
+ </Reference>
+ <Reference Include="Zstandard.Net">
+ <HintPath>..\packages\MySql.Data.8.0.20\lib\net452\Zstandard.Net.dll</HintPath>
+ </Reference>
+ <Reference Include="Microsoft.CSharp" />
+ <Reference Include="System.ComponentModel" />
+ <Reference Include="System.Configuration" />
+ <Reference Include="System.Configuration.Install" />
+ <Reference Include="System.Data" />
+ <Reference Include="System.Drawing" />
+ <Reference Include="System.Drawing.Design" />
+ <Reference Include="System.Management" />
+ <Reference Include="System.Transactions" />
+ <Reference Include="System.Xml" />
+ <Reference Include="MySql.Data.EntityFrameworkCore">
+ <HintPath>..\packages\MySql.Data.EntityFrameworkCore.8.0.20\lib\netstandard2.0\MySql.Data.EntityFrameworkCore.dll</HintPath>
+ </Reference>
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="DataTests\GameEventLogs\GameEventLogContextTests.cs" />
+ <Compile Include="DataTests\GameEventLogs\GameEventLogTests.cs" />
+ <Compile Include="DataTests\Crafting\CraftingTableContextTests.cs" />
+ <Compile Include="DataTests\SuperLayers\LandContextTests.cs" />
+ <Compile Include="DataTests\SuperLayers\SkyContextTests.cs" />
+ <Compile Include="DataTests\SuperLayers\UndergroundContextTests.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="packages.config" />
+ </ItemGroup>
+ <ItemGroup>
+ <Folder Include="DataTests\" />
+ <Folder Include="DataTests\GameEventLogs\" />
+ <Folder Include="DataTests\Crafting\" />
+ <Folder Include="DataTests\SuperLayers\" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\Mundus\Mundus.csproj">
+ <Project>{BED2FBB2-55AC-430D-8126-E75C726DF53D}</Project>
+ <Name>Mundus</Name>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
+ <Import Project="..\packages\GtkSharp.3.22.25.74\build\GtkSharp.targets" Condition="Exists('..\packages\GtkSharp.3.22.25.74\build\GtkSharp.targets')" />
+</Project> \ No newline at end of file
diff --git a/MundusTests/packages.config b/MundusTests/packages.config
new file mode 100644
index 0000000..f3e0a41
--- /dev/null
+++ b/MundusTests/packages.config
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<packages>
+ <package id="AtkSharp" version="3.22.25.74" targetFramework="net47" />
+ <package id="BouncyCastle" version="1.8.3.1" targetFramework="net47" />
+ <package id="CairoSharp" version="3.22.25.74" targetFramework="net47" />
+ <package id="GdkSharp" version="3.22.25.74" targetFramework="net47" />
+ <package id="GioSharp" version="3.22.25.74" targetFramework="net47" />
+ <package id="GLibSharp" version="3.22.25.74" targetFramework="net47" />
+ <package id="Google.Protobuf" version="3.6.1" targetFramework="net47" />
+ <package id="GtkSharp" version="3.22.25.74" targetFramework="net47" />
+ <package id="K4os.Compression.LZ4" version="1.1.11" targetFramework="net47" />
+ <package id="K4os.Compression.LZ4.Streams" version="1.1.11" targetFramework="net47" />
+ <package id="K4os.Hash.xxHash" version="1.0.6" targetFramework="net47" />
+ <package id="Microsoft.Bcl.AsyncInterfaces" version="1.1.1" targetFramework="net47" />
+ <package id="Microsoft.Bcl.HashCode" version="1.1.0" targetFramework="net47" />
+ <package id="Microsoft.EntityFrameworkCore" version="3.1.4" targetFramework="net47" />
+ <package id="Microsoft.EntityFrameworkCore.Abstractions" version="3.1.4" targetFramework="net47" />
+ <package id="Microsoft.EntityFrameworkCore.Analyzers" version="3.1.4" targetFramework="net47" />
+ <package id="Microsoft.EntityFrameworkCore.Relational" version="3.1.4" targetFramework="net47" />
+ <package id="Microsoft.Extensions.Caching.Abstractions" version="3.1.4" targetFramework="net47" />
+ <package id="Microsoft.Extensions.Caching.Memory" version="3.1.4" targetFramework="net47" />
+ <package id="Microsoft.Extensions.Configuration" version="3.1.4" targetFramework="net47" />
+ <package id="Microsoft.Extensions.Configuration.Abstractions" version="3.1.4" targetFramework="net47" />
+ <package id="Microsoft.Extensions.Configuration.Binder" version="3.1.4" targetFramework="net47" />
+ <package id="Microsoft.Extensions.DependencyInjection" version="3.1.4" targetFramework="net47" />
+ <package id="Microsoft.Extensions.DependencyInjection.Abstractions" version="3.1.4" targetFramework="net47" />
+ <package id="Microsoft.Extensions.Logging" version="3.1.4" targetFramework="net47" />
+ <package id="Microsoft.Extensions.Logging.Abstractions" version="3.1.4" targetFramework="net47" />
+ <package id="Microsoft.Extensions.Options" version="3.1.4" targetFramework="net47" />
+ <package id="Microsoft.Extensions.Primitives" version="3.1.4" targetFramework="net47" />
+ <package id="MySql.Data" version="8.0.20" targetFramework="net47" />
+ <package id="MySql.Data.EntityFrameworkCore" version="8.0.20" targetFramework="net47" />
+ <package id="NUnit" version="2.6.4" targetFramework="net47" />
+ <package id="PangoSharp" version="3.22.25.74" targetFramework="net47" />
+ <package id="SSH.NET" version="2016.1.0" targetFramework="net47" />
+ <package id="System.Buffers" version="4.5.1" targetFramework="net47" />
+ <package id="System.Collections.Immutable" version="1.7.1" targetFramework="net47" />
+ <package id="System.ComponentModel.Annotations" version="4.7.0" targetFramework="net47" />
+ <package id="System.Diagnostics.DiagnosticSource" version="4.7.1" targetFramework="net47" />
+ <package id="System.Memory" version="4.5.4" targetFramework="net47" />
+ <package id="System.Numerics.Vectors" version="4.5.0" targetFramework="net47" />
+ <package id="System.Runtime.CompilerServices.Unsafe" version="4.7.1" targetFramework="net47" />
+ <package id="System.Threading.Tasks.Extensions" version="4.5.4" targetFramework="net47" />
+</packages> \ No newline at end of file