public void ApplyTournamentStateBellLogicRules() { // Arrange var tournamentRepositoryFake = new Mock <ITournamentRepository>(); var mapper = Helper.SetupMapper(); tournamentRepositoryFake.Setup(p => p.Get(It.IsAny <Guid>())).Returns(new Tournament { Id = new Guid(), PreplayGameId = Guid.NewGuid(), InplayGameId = null, PostplayGameId = Guid.NewGuid(), CluesPerGame = 1, BellCounter = 0 }); var gameLogicFake = new Mock <IGameLogic>(); var tournamentLogicMock = new Mock <ITournamentLogic>(); tournamentLogicMock.Setup(t => t.AddBell(It.IsAny <Tournament>())).Returns(new TournamentStateUpdateModel { State = TournamentState.NoPlay }); var tournamentBroadcastFake = new Mock <ITournamentBroadcast>(); var tournamentController = new TournamentController(tournamentRepositoryFake.Object, mapper, gameLogicFake.Object, tournamentLogicMock.Object, tournamentBroadcastFake.Object); // Act var actionResult = tournamentController.AddTournamentStateBell(new Guid()); // Assert tournamentLogicMock.Verify(mocks => mocks.AddBell(It.IsAny <Tournament>()), Times.Once); }
public async void BroadcastTournamentStateChange_WhenStateChangesDueToBellCounter() { // Arrange var tournamentRepositoryFake = new Mock <ITournamentRepository>(); var mapper = Helper.SetupMapper(); var tournament = new Tournament { Id = new Guid(), PreplayGameId = null, InplayGameId = null, PostplayGameId = null, CluesPerGame = 1, BellCounter = 1, BellStateLookupMatrix = new List <BellStateLookup> { new BellStateLookup { BellCounter = 1, State = TournamentState.PrePlay }, new BellStateLookup { BellCounter = 2, State = TournamentState.InPlay }, new BellStateLookup { BellCounter = 3, State = TournamentState.InPlay } } }; tournamentRepositoryFake.Setup(p => p.Get(It.IsAny <Guid>())).Returns(tournament); var gameLogicFake = new Mock <IGameLogic>(); var tournamentLogicFake = new Mock <ITournamentLogic>(); tournamentLogicFake.Setup(t => t.AddBell(It.IsAny <Tournament>())).Returns(new TournamentStateUpdateModel { State = TournamentState.PrePlay }); Game g = new Game(); tournamentLogicFake.Setup(t => t.SetPreplay(It.IsAny <Tournament>(), out g)).Returns(new Tournament { PreplayGameId = new Guid(), InplayGameId = null, PostplayGameId = null }); var tournamentBroadcastMock = new Mock <ITournamentBroadcast>(); var tournamentController = new TournamentController(tournamentRepositoryFake.Object, mapper, gameLogicFake.Object, tournamentLogicFake.Object, tournamentBroadcastMock.Object); // Act var actionResult = await tournamentController.AddTournamentStateBell(new Guid()); // Assert tournamentBroadcastMock.Verify(mocks => mocks.TournamentStateChangeAsync(It.IsAny <Guid>(), It.IsAny <TournamentState>(), It.IsAny <Guid?>(), It.IsAny <Guid?>(), It.IsAny <Guid?>()), Times.Once); }
public async void ReturnStatusNotFound_WhenTournamentDoesNotExist() { // Arrange var tournamentRepositoryFake = new Mock <ITournamentRepository>(); var mapper = Helper.SetupMapper(); tournamentRepositoryFake.Setup(p => p.Get(It.IsAny <Guid>())).Returns <Tournament>(null); var gameLogicFake = new Mock <IGameLogic>(); var tournamnetLogicFake = new Mock <ITournamentLogic>(); var tournamentBroadcastFake = new Mock <ITournamentBroadcast>(); var tournamentController = new TournamentController(tournamentRepositoryFake.Object, mapper, gameLogicFake.Object, tournamnetLogicFake.Object, tournamentBroadcastFake.Object); // Act var actionResult = await tournamentController.AddTournamentStateBell(new Guid()); // Assert Assert.IsType <NotFoundResult>(actionResult); }