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()); }
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()); }
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()); }
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); }
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); }
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); }
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); }
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); }
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()); }
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); }
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))); }
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)); }
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()); }
public GameController(IBullshitContext context) : base(context) { GameSetupLayer = new GameSetupLayer(context); }