diff --git a/GameHandler.UnitTests/DeathGame/DeathGameHandlerTests.cs b/GameHandler.UnitTests/GameHandler/DeathGameHandlerTests.cs similarity index 100% rename from GameHandler.UnitTests/DeathGame/DeathGameHandlerTests.cs rename to GameHandler.UnitTests/GameHandler/DeathGameHandlerTests.cs diff --git a/GameHandler.UnitTests/GameHandler/FreeGameHandlerTests.cs b/GameHandler.UnitTests/GameHandler/FreeGameHandlerTests.cs new file mode 100644 index 0000000..0a9e49d --- /dev/null +++ b/GameHandler.UnitTests/GameHandler/FreeGameHandlerTests.cs @@ -0,0 +1,39 @@ +using GameHandler.GameHandler; +using GameModel; +using GameModel.FreeGame; +using NuGet.Frameworks; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace GameHandler.UnitTests.GameHandler +{ + [TestFixture] + internal class FreeGameHandlerTests + { + private FreeGameHandler _gh; + + [SetUp] + public void SetUp() + { + _gh = new FreeGameHandler(); + } + + [Test] + public void Init_ReturnsModelWithThrowModelPerPlayer() + { + var model = _gh.InitGameModel(new[] { 1, 2, 3, 4 }, null) as FreeGameModel; + Assert.That(model, Is.Not.Null); + Assert.That(model.Throws.Count(), Is.EqualTo(4)); + } + + [Test] + public void Update_ThrowsExceptionWhenModelIsNotInitialized() + { + Assert.That(() => _gh.Update(PinThrow.Create(2, false, true), BoardState.Create()), Throws.TypeOf()); + + } + } +} diff --git a/GameHandler/GameHandler/FreeGameHandler.cs b/GameHandler/GameHandler/FreeGameHandler.cs index 4661a57..4c8ed8b 100644 --- a/GameHandler/GameHandler/FreeGameHandler.cs +++ b/GameHandler/GameHandler/FreeGameHandler.cs @@ -38,8 +38,7 @@ namespace GameHandler.GameHandler var model = throws.FirstOrDefault(_ => _.PlayerId == pinThrow.PlayerId); if (model == null) { - model = FreeGameThrow.Create(pinThrow.PlayerId); - throws.Add(model); + throw new FreeGameThrowExcepetion("game model not initialized"); } var model2 = model + pinThrow; var idx = throws.IndexOf(model);