public void ThrowArgumentNullException_WhenPlayerIdDoesNotTargetExistingPlayer() { // arrange var fixtureRepo = new Mock <IEfRepository <Fixture> >(); var teamsRepo = new Mock <IEfRepository <Team> >(); var playersRepo = new Mock <IEfRepository <Player> >(); var fixturesFactory = new Mock <IFixturesFactory>(); var mailService = new Mock <IFixtureMailService>(); var fixtureId = Guid.NewGuid(); var fixtureEvent = FixtureEventType.Goal; int minute = 22; var playerId = Guid.NewGuid(); var fixtures = new List <Fixture>() { new Fixture() { Id = fixtureId } }.AsQueryable(); fixtureRepo.Setup(x => x.All).Returns(fixtures); var fixtureService = new FixtureService( fixtureRepo.Object, teamsRepo.Object, playersRepo.Object, fixturesFactory.Object, mailService.Object); // act & assert Assert.Throws <ArgumentNullException>(() => fixtureService.AddFixtureEvent(fixtureId, fixtureEvent, minute, playerId)); }
public void CallFixtureFactoriesGetFixtureEventMethodWithCorrectParameters_WhenPlayerIdAndFixtureIdAreValid() { // arrange var fixtureRepo = new Mock <IEfRepository <Fixture> >(); var teamsRepo = new Mock <IEfRepository <Team> >(); var playersRepo = new Mock <IEfRepository <Player> >(); var fixturesFactory = new Mock <IFixturesFactory>(); var mailService = new Mock <IFixtureMailService>(); var fixtureId = Guid.NewGuid(); var fixtureEventType = FixtureEventType.Goal; int minute = 22; var playerId = Guid.NewGuid(); var players = new List <Player>() { new Player() { Id = playerId } }; playersRepo.Setup(pr => pr.All).Returns(players.AsQueryable()); var fixtures = new List <Fixture>() { new Fixture() { Id = fixtureId, FixtureEvents = new List <FixtureEvent>(), HomeTeam = new Team() { Players = players }, } }.AsQueryable(); fixtureRepo.Setup(x => x.All).Returns(fixtures); var fixtureEvent = new FixtureEvent(); fixturesFactory.Setup(f => f.GetFixtureEvent(fixtureEventType, minute, players[0])).Returns(fixtureEvent); var fixtureService = new FixtureService( fixtureRepo.Object, teamsRepo.Object, playersRepo.Object, fixturesFactory.Object, mailService.Object); // act fixtureService.AddFixtureEvent(fixtureId, fixtureEventType, minute, playerId); // assert fixturesFactory.Verify(f => f.GetFixtureEvent(fixtureEventType, minute, players[0]), Times.Once); }
public void IncreaseAwayTeamsScoreByOne_WhenPlayerIsNotFoundInHomeTeamsPlayers() { // arrange var fixtureRepo = new Mock <IEfRepository <Fixture> >(); var teamsRepo = new Mock <IEfRepository <Team> >(); var playersRepo = new Mock <IEfRepository <Player> >(); var fixturesFactory = new Mock <IFixturesFactory>(); var mailService = new Mock <IFixtureMailService>(); var fixtureId = Guid.NewGuid(); var fixtureEventType = FixtureEventType.Goal; int minute = 22; var playerId = Guid.NewGuid(); var players = new List <Player>() { new Player() { Id = playerId } }; playersRepo.Setup(pr => pr.All).Returns(players.AsQueryable()); var fixtures = new List <Fixture>() { new Fixture() { Id = fixtureId, FixtureEvents = new List <FixtureEvent>(), HomeTeam = new Team() { Players = new List <Player>() }, } }.AsQueryable(); fixtureRepo.Setup(x => x.All).Returns(fixtures); var fixtureEvent = new FixtureEvent(); fixturesFactory.Setup(f => f.GetFixtureEvent(fixtureEventType, minute, players[0])).Returns(fixtureEvent); var fixtureService = new FixtureService( fixtureRepo.Object, teamsRepo.Object, playersRepo.Object, fixturesFactory.Object, mailService.Object); // act fixtureService.AddFixtureEvent(fixtureId, fixtureEventType, minute, playerId); // assert fixtureRepo.Verify(r => r.Update(It.Is <Fixture>(f => f.ScoreAwayTeam == 1))); }
public void AddCorrectFixtureEventToTargetFixturesEvents_WhenPlayerIdAndFixtureIdAreValid() { // arrange var fixtureRepo = new Mock <IEfRepository <Fixture> >(); var teamsRepo = new Mock <IEfRepository <Team> >(); var playersRepo = new Mock <IEfRepository <Player> >(); var fixturesFactory = new Mock <IFixturesFactory>(); var mailService = new Mock <IFixtureMailService>(); var fixtureId = Guid.NewGuid(); var fixtureEventType = FixtureEventType.Goal; int minute = 22; var playerId = Guid.NewGuid(); var players = new List <Player>() { new Player() { Id = playerId } }; playersRepo.Setup(pr => pr.All).Returns(players.AsQueryable()); var fixtures = new List <Fixture>() { new Fixture() { Id = fixtureId, FixtureEvents = new List <FixtureEvent>(), HomeTeam = new Team() { Players = players }, } }.AsQueryable(); fixtureRepo.Setup(x => x.All).Returns(fixtures); var fixtureEvent = new FixtureEvent(); fixturesFactory.Setup(f => f.GetFixtureEvent(fixtureEventType, minute, players[0])).Returns(fixtureEvent); var fixtureService = new FixtureService( fixtureRepo.Object, teamsRepo.Object, playersRepo.Object, fixturesFactory.Object, mailService.Object); // act fixtureService.AddFixtureEvent(fixtureId, fixtureEventType, minute, playerId); // assert fixtureRepo.Verify(r => r.Update(It.Is <Fixture>(f => f.FixtureEvents.First() == fixtureEvent))); }