public void ExecuteTest()
        {
            var player = new Mock<IPlayer>();
            var board = new Mock<IBoard>();
            var vertex = new Mock<IVertex>();

            player.Setup(p => p.HasResources(Establishment.BUILD_RESOURCES)).Returns(true);

            var command = new BuildEstablishmentCommand(player.Object, board.Object, vertex.Object);
            command.Execute();

            board.Verify(b => b.BuildEstablishment(vertex.Object, player.Object));
            player.Verify(p => p.TakeResources(Establishment.BUILD_RESOURCES));
        }
        public void ExecuteFailsIfPlayerNotEnoughtResources()
        {
            var player = new Mock<IPlayer>();
            var board = new Mock<IBoard>();
            var vertex = new Mock<IVertex>();

            player.Setup(p => p.HasResources(Establishment.BUILD_RESOURCES)).Returns(false);

            var command = new BuildEstablishmentCommand(player.Object, board.Object, vertex.Object);
            Assert.Throws<InvalidOperationException>(() => command.Execute());

            board.Verify(b => b.BuildEstablishment(vertex.Object, player.Object), Times.Never);
            player.Verify(p => p.TakeResources(Establishment.BUILD_RESOURCES), Times.Never);
        }