Exemplo n.º 1
0
        public void AddNewPlayer_9thPlayer_ThrowsError()
        {
            var sessionKey = Guid.NewGuid();
            var eightPlayers = new List<PlayerEntity>();
            var order = new List<PlayerOrder>();
            for (int i = 0; i < 8; i++)
            {
                var player = new PlayerEntity();
                eightPlayers.Add(player);
                order.Add(new PlayerOrder() { SessionId = 1, Player = player, Value = i });
            }

            var fakeSession = new Session()
            {
                Key = sessionKey,
                ExpirationDate = DateTime.MaxValue,
                Players = eightPlayers,
                PlayerOrder = order,
            };

            var fakeContext = LogicalHelpers.GetSimpleSessionContext(fakeSession);
            var logic = new GameSetupLayer(fakeContext.Object);

            logic.AddPlayer(sessionKey, LogicalHelpers.GetValidPlayer());
        }
Exemplo n.º 2
0
 public void AddNewPlayer_BadSession_ThrowsErrors()
 {
     var fakeSession = new Session() { Key = Guid.NewGuid() };
     var sessionKey = Guid.Empty;
     var fakeContext = LogicalHelpers.GetSimpleSessionContext(fakeSession);
     var logic = new GameSetupLayer(fakeContext.Object);
     logic.AddPlayer(sessionKey, LogicalHelpers.GetValidPlayer());
 }
Exemplo n.º 3
0
        public void AddNewPlayer_CompletedSession_ThrowsErrors()
        {
            var sessionKey = Guid.NewGuid();
            var fakeSession = new Session()
            {
                Key = sessionKey,
                StartDate = DateTime.MinValue,
                ExpirationDate = DateTime.MinValue,
                FinishedDate = DateTime.MinValue,
            };

            var fakeContext = LogicalHelpers.GetSimpleSessionContext(fakeSession);
            var logic = new GameSetupLayer(fakeContext.Object);

            logic.AddPlayer(sessionKey, LogicalHelpers.GetValidPlayer());
        }
Exemplo n.º 4
0
        public void AddNewPlayer_ExistingSession_AddsPlayerRecords()
        {
            var sessionKey = Guid.NewGuid();
            var fakeSession = new Session()
            {
                Key = sessionKey,
                ExpirationDate = DateTime.MaxValue,
                PlayerOrder = new List<PlayerOrder>(),
                Players = new List<PlayerEntity>(),
            };

            var fakeContext = LogicalHelpers.GetSimpleSessionContext(fakeSession);
            var logic = new GameSetupLayer(fakeContext.Object);

            logic.AddPlayer(sessionKey, LogicalHelpers.GetValidPlayer());

            Assert.AreNotEqual(0, fakeSession.Players.Count);
            Assert.AreNotEqual(0, fakeSession.PlayerOrder.Count);
        }
Exemplo n.º 5
0
        public void StartGame_NotEnoughPlayers_ThrowsException()
        {
            Guid sessionKey = Guid.NewGuid();
            var basicPlayer = new PlayerEntity() { Name = "Hello" };
            var fakeContext = LogicalHelpers.GetSimpleSessionContext(new Session()
            {
                Key = sessionKey,
                Players = new List<PlayerEntity>(),
            });

            GameSetupLayer layer = new GameSetupLayer(fakeContext.Object);

            layer.StartGame(sessionKey);
        }
Exemplo n.º 6
0
        public void StartGame_ExpiredGame_ThrowsException()
        {
            Guid sessionKey = Guid.NewGuid();
            var session = new Session()
            {
                Key = sessionKey,
                ExpirationDate = DateTime.Now.AddMilliseconds(-1),
            };

            var fakeContext = LogicalHelpers.GetSimpleSessionContext(session);
            LogicalHelpers.AttachPlayer(session, new PlayerEntity());
            LogicalHelpers.AttachPlayer(session, new PlayerEntity());
            GameSetupLayer layer = new GameSetupLayer(fakeContext.Object);
            layer.StartGame(sessionKey);
        }
Exemplo n.º 7
0
        public void StartGame_AlreadyStartedGame_StartsGame()
        {
            Guid sessionKey = Guid.NewGuid();
            var session = new Session()
            {
                StartDate = DateTime.Now,
                Key = sessionKey,
                ExpirationDate = DateTime.Now,
            };

            var fakeContext = LogicalHelpers.GetSimpleSessionContext(session);
            LogicalHelpers.AttachPlayer(session, new PlayerEntity());
            LogicalHelpers.AttachPlayer(session, new PlayerEntity());
            GameSetupLayer layer = new GameSetupLayer(fakeContext.Object);
            layer.StartGame(sessionKey);
        }
Exemplo n.º 8
0
        public void CreateSession_Execute_SavesEntry()
        {
            var fakeContext = new Mock<IBullshitContext>();
            GameSetupLayer layer = new GameSetupLayer(fakeContext.Object);

            layer.CreateSession();

            fakeContext.Verify(x => x.Add(It.IsAny<Session>()), Times.Once);
            fakeContext.Verify(x => x.SaveChanges(), Times.Once);
        }
Exemplo n.º 9
0
        public void StartGame_AllRequirements_StartsGame()
        {
            Guid sessionKey = Guid.NewGuid();
            var session = new Session()
            {
                Key = sessionKey,
                ExpirationDate = DateTime.MaxValue,
            };

            var fakeContext = LogicalHelpers.GetSimpleSessionContext(session);
            LogicalHelpers.AttachPlayer(session, new PlayerEntity());
            LogicalHelpers.AttachPlayer(session, new PlayerEntity());
            LogicalHelpers.AttachPlayer(session, new PlayerEntity());
            GameSetupLayer layer = new GameSetupLayer(fakeContext.Object);
            layer.StartGame(sessionKey);

            Assert.AreEqual(1, session.RoundNumber);
            Assert.AreEqual(1, session.SetNumber);
            Assert.IsNotNull(session.StartDate);
            Assert.IsFalse(session.CanStartGame);
            Assert.IsNotNull(session.CurrentPlayer);
            Assert.IsNotNull(session.CurrentPlayerId);

            fakeContext.Verify(x => x.SaveChanges(), Times.Once());
            Assert.AreEqual(52, session.PlayerSesssionHands.SelectMany(x => x.CurrentCards).Distinct().Count());
        }
Exemplo n.º 10
0
        public void CreateSession_Execute_ReturnsNotNull()
        {
            var fakeContext = new Mock<IBullshitContext>();
            GameSetupLayer layer = new GameSetupLayer(fakeContext.Object);

            var sessionKey = layer.CreateSession();

            Assert.AreNotEqual(Guid.Empty, sessionKey);
        }
Exemplo n.º 11
0
        public void CreateSession_Execute_HasExpirationDate()
        {
            var fakeContext = new Mock<IBullshitContext>();
            GameSetupLayer layer = new GameSetupLayer(fakeContext.Object);

            layer.CreateSession();

            fakeContext.Setup(x => x.Add(It.Is<Session>(y => y.ExpirationDate > DateTime.Now)));
        }
Exemplo n.º 12
0
        public void AddNewPlayer_ExistingSession_SavesOnce()
        {
            var sessionKey = Guid.NewGuid();
            var fakeSession = new Session()
            {
                Key = sessionKey,
                ExpirationDate = DateTime.MaxValue,
                PlayerOrder = new List<PlayerOrder>(),
                Players = new List<PlayerEntity>(),

            };

            var fakeContext = LogicalHelpers.GetSimpleSessionContext(fakeSession);
            var logic = new GameSetupLayer(fakeContext.Object);

            logic.AddPlayer(sessionKey, LogicalHelpers.GetValidPlayer());

            fakeContext.Verify(x => x.SaveChanges(), Times.Exactly(1));
        }
Exemplo n.º 13
0
        public void AddNewPlayer_ExistingSession_DoesntFail()
        {
            var sessionKey = Guid.NewGuid();
            var fakeSession = new Session()
            {
                Key = sessionKey,
                ExpirationDate = DateTime.MaxValue,
                PlayerOrder = new List<PlayerOrder>(),
                Players = new List<PlayerEntity>(),
            };

            var fakeContext = LogicalHelpers.GetSimpleSessionContext(fakeSession);
            var logic = new GameSetupLayer(fakeContext.Object);

            logic.AddPlayer(sessionKey, LogicalHelpers.GetValidPlayer());
        }
Exemplo n.º 14
0
 public GameController(IBullshitContext context)
     : base(context)
 {
     GameSetupLayer = new GameSetupLayer(context);
 }