|
|
|
@ -1,4 +1,5 @@
|
|
|
|
|
using Moq;
|
|
|
|
|
using System.Collections.ObjectModel;
|
|
|
|
|
using Moq;
|
|
|
|
|
using Models.Game;
|
|
|
|
|
using Models.Interfaces;
|
|
|
|
|
using System.Reflection;
|
|
|
|
@ -76,10 +77,10 @@ public class GameTests
|
|
|
|
|
[Fact]
|
|
|
|
|
public void LoadData_ShouldLoadDataFromPersistence()
|
|
|
|
|
{
|
|
|
|
|
var players = new List<Player> { new Player() };
|
|
|
|
|
var games = new List<Game> { new Game(_mockPersistence.Object) };
|
|
|
|
|
var maps = new List<Map> { new Map("test_background") };
|
|
|
|
|
var bestScores = new List<BestScore> { new BestScore(1, 26) };
|
|
|
|
|
var players = new ObservableCollection<Player> { new Player() };
|
|
|
|
|
var games = new ObservableCollection<Game> { new Game(_mockPersistence.Object) };
|
|
|
|
|
var maps = new ObservableCollection<Map> { new Map("test_background") };
|
|
|
|
|
var bestScores = new ObservableCollection<BestScore> { new BestScore(1, 26) };
|
|
|
|
|
|
|
|
|
|
_mockPersistence.Setup(p => p.LoadData()).Returns((players, games, maps, bestScores));
|
|
|
|
|
|
|
|
|
@ -243,4 +244,87 @@ public class GameTests
|
|
|
|
|
|
|
|
|
|
Assert.True(isChecked);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void IsPlaceOperationCorrect()
|
|
|
|
|
{
|
|
|
|
|
var player = new Player();
|
|
|
|
|
var map = new Map("test_background");
|
|
|
|
|
|
|
|
|
|
_game.InitializeGame(map, player);
|
|
|
|
|
Assert.NotNull(_game.GameRules);
|
|
|
|
|
_game.UsedMap.Boards[0].Value = 1;
|
|
|
|
|
_game.UsedMap.Boards[1].Value = 2;
|
|
|
|
|
|
|
|
|
|
var methodInfo = typeof(Game).GetMethod("PlaceResult", BindingFlags.NonPublic | BindingFlags.Instance);
|
|
|
|
|
Assert.NotNull(methodInfo);
|
|
|
|
|
|
|
|
|
|
var cell = new Cell(0, 2);
|
|
|
|
|
cell.Value = 3;
|
|
|
|
|
methodInfo.Invoke(_game, new object[] { cell, 3 });
|
|
|
|
|
|
|
|
|
|
Assert.Equal(3, _game.UsedMap.Boards[2].Value);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void IsHandlePlayerChoice_Handling()
|
|
|
|
|
{
|
|
|
|
|
var player = new Player();
|
|
|
|
|
var map = new Map("test_background");
|
|
|
|
|
|
|
|
|
|
_game.InitializeGame(map, player);
|
|
|
|
|
|
|
|
|
|
var cell = new Cell(0, 1);
|
|
|
|
|
_game.UsedMap.Boards[0].Value = 1;
|
|
|
|
|
bool result = _game.HandlePlayerChoice(cell, 1);
|
|
|
|
|
Assert.True(result);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void IsHandlePlayerChoice_InvalidCell()
|
|
|
|
|
{
|
|
|
|
|
var player = new Player();
|
|
|
|
|
var map = new Map("test_background");
|
|
|
|
|
|
|
|
|
|
_game.InitializeGame(map, player);
|
|
|
|
|
|
|
|
|
|
var cell = new Cell(0, 7);
|
|
|
|
|
cell.Value = 1;
|
|
|
|
|
bool result = _game.HandlePlayerChoice(cell, 1);
|
|
|
|
|
Assert.False(result);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void IsHandlePlayerChoice_InvalidPlace()
|
|
|
|
|
{
|
|
|
|
|
var player = new Player();
|
|
|
|
|
var map = new Map("test_background");
|
|
|
|
|
|
|
|
|
|
_game.InitializeGame(map, player);
|
|
|
|
|
|
|
|
|
|
var cell = new Cell(0, 0);
|
|
|
|
|
cell.Value = 1;
|
|
|
|
|
var othercell = new Cell(3, 3);
|
|
|
|
|
bool result = _game.HandlePlayerChoice(othercell, 1);
|
|
|
|
|
Assert.False(result);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void ShouldTriggerEventWhenEnded()
|
|
|
|
|
{
|
|
|
|
|
var player = new Player();
|
|
|
|
|
var map = new Map("test_background");
|
|
|
|
|
bool eventTriggered = false;
|
|
|
|
|
|
|
|
|
|
_game.GameEnded += (sender, args) =>
|
|
|
|
|
{
|
|
|
|
|
eventTriggered = true;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
_game.InitializeGame(map, player, true);
|
|
|
|
|
Assert.True(eventTriggered);
|
|
|
|
|
Assert.False(_game.IsRunning);
|
|
|
|
|
Assert.Equal(map, _game.UsedMap);
|
|
|
|
|
Assert.Equal(player, _game.CurrentPlayer);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|