This commit is contained in:
Christian Kauer 2023-12-20 18:00:07 +01:00
parent 4785f62650
commit fb02e3145a
11 changed files with 133 additions and 12 deletions

View File

@ -1,7 +0,0 @@
namespace GameContract
{
public class Class1
{
}
}

View File

@ -6,4 +6,8 @@
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
</PropertyGroup> </PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\GameModel\GameModel.csproj" />
</ItemGroup>
</Project> </Project>

View File

@ -0,0 +1,9 @@
using GameModel;
namespace GameContract
{
public interface IExpenseRepository
{
IEnumerable<Expense> GetAll();
}
}

View File

@ -10,11 +10,18 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.7.1" /> <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
<PackageReference Include="NUnit" Version="3.13.3" /> <PackageReference Include="Moq" Version="4.20.70" />
<PackageReference Include="NUnit3TestAdapter" Version="4.4.2" /> <PackageReference Include="NUnit" Version="4.0.1" />
<PackageReference Include="NUnit.Analyzers" Version="3.6.1" /> <PackageReference Include="NUnit3TestAdapter" Version="4.5.0" />
<PackageReference Include="coverlet.collector" Version="3.2.0" /> <PackageReference Include="NUnit.Analyzers" Version="3.10.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="coverlet.collector" Version="6.0.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@ -0,0 +1,29 @@
using GameContract;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace GameModel.Mocks
{
public class FakeExpenseRepository : IExpenseRepository
{
Expense[] Data = new[] {
Expense.Create(ExpenseType.Monetary,new[] { ExpenseTrigger.Sink }, "Gosse", 0.5m, false),
Expense.Create(ExpenseType.Monetary,new[] { ExpenseTrigger.FullSink }, "Gosse bei Anwurf", 1m, false),
Expense.Create(ExpenseType.Monetary,new[] { ExpenseTrigger.Circle }, "Kranz", 1m, true),
Expense.Create(ExpenseType.Monetary,new[] { ExpenseTrigger.NinePins }, "alle Neune", 1m, true),
Expense.Create(ExpenseType.Monetary,new[] { ExpenseTrigger.Eliminated }, "Ausgeschieden", 0.5m, false),
Expense.Create(ExpenseType.Monetary,new[] { ExpenseTrigger.NoWood }, "kein Holz", 0.5m, false),
Expense.Create(ExpenseType.Monetary,new[] { ExpenseTrigger.Bell }, "Klingen", 0.5m, false),
Expense.Create(ExpenseType.Monetary,new[] { ExpenseTrigger.FirstThrowFail }, "Anwurffehler", 0.5m, false),
Expense.Create(ExpenseType.Monetary,new[] { ExpenseTrigger.ExpensePoint }, "Strafpunkt, z.B. im \"Scheißspiel\"", 0.5m, false),
};
public IEnumerable<Expense> GetAll()
{
return Data;
}
}
}

View File

@ -2,6 +2,7 @@
using GameModel; using GameModel;
using GameModel.Exceptions; using GameModel.Exceptions;
using NuGet.Frameworks; using NuGet.Frameworks;
using NUnit.Framework.Legacy;
using System.Collections; using System.Collections;
using System.Numerics; using System.Numerics;

View File

@ -0,0 +1,23 @@
using GameContract;
using GameModel.DeathGame;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace GameHandler
{
public class ExpenseHandler
{
//public delegate void OnExpense(MemberExpense memberExpense);
IExpenseRepository _expenseRepository;
public ExpenseHandler(IExpenseRepository expenseRepository)
{
_expenseRepository = expenseRepository;
}
}
}

View File

@ -0,0 +1,13 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace GameHandler
{
internal class MainHandler
{
}
}

16
GameModel/Expense.cs Normal file
View File

@ -0,0 +1,16 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace GameModel
{
public record Expense(Guid Guid, ExpenseType ExpenseType, ExpenseTrigger[] ExpenseTriggers, string Name, decimal Price, bool IsInverse)
{
public static Expense Create(ExpenseType ExpenseType, ExpenseTrigger[] ExpenseTriggers, string Name, decimal Price, bool IsInverse)
{
return new Expense(Guid.NewGuid(), ExpenseType, ExpenseTriggers, Name, Price, IsInverse);
}
}
}

14
GameModel/ExpenseType.cs Normal file
View File

@ -0,0 +1,14 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace GameModel
{
public enum ExpenseType
{
Monetary,
Material
}
}

View File

@ -0,0 +1,12 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace GameModel
{
public record MemberExpense(Guid ExpenseGuid, int MemberId, ExpenseType ExpenseType)
{
}
}