public void SetSecondHalfStartCorrectly_WhenIdTargetsExistingFixtureAndStatusIsSecondHalf() { // 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 fixtures = new List <Fixture>() { new Fixture() { Id = fixtureId } }; fixtureRepo.Setup(r => r.All).Returns(fixtures.AsQueryable()); var fixtureService = new FixtureService( fixtureRepo.Object, teamsRepo.Object, playersRepo.Object, fixturesFactory.Object, mailService.Object); var timeProvider = new Mock <ITimeProvider>(); var date = new DateTime(2012, 12, 12); timeProvider.Setup(r => r.CurrentDate).Returns(date); TimeProvider.CurrentProvider = timeProvider.Object; fixtureRepo.Setup(r => r.Update(It.Is <Fixture>(f => f.SecondHalfStart == date))); // act fixtureService.AddFixtureStatus(fixtureId, FixtureStatus.SecondHalf); // assert fixtureRepo.Verify(r => r.Update(It.Is <Fixture>(f => f.SecondHalfStart == date)), Times.Once); }
public void ThrowArgumenNullException_WhenPassedIdDoesNotTargetExistingFixture() { // 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 fixtures = new List <Fixture>(); fixtureRepo.Setup(r => r.All).Returns(fixtures.AsQueryable()); var fixtureService = new FixtureService( fixtureRepo.Object, teamsRepo.Object, playersRepo.Object, fixturesFactory.Object, mailService.Object); // act & assert Assert.Throws <ArgumentNullException>(() => fixtureService.AddFixtureStatus(Guid.NewGuid(), FixtureStatus.FirstHalf)); }
public void CallFixtureMailServiceSendFixtureResultMailWithCorrectFixtureObjectAndSubscribers_WhenFixtureStatusIsFullTime() { // 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 homeTeam = new Team() { Subscribers = new List <User>() { new User() { TestUsername = "******" } } }; var awayTeam = new Team() { Subscribers = new List <User>() { new User() { TestUsername = "******" } } }; var fixtures = new List <Fixture>() { new Fixture() { Id = fixtureId, HomeTeam = homeTeam, AwayTeam = awayTeam } }; fixtureRepo.Setup(r => r.All).Returns(fixtures.AsQueryable()); var timeProvider = new Mock <ITimeProvider>(); var date = new DateTime(2012, 12, 12); timeProvider.Setup(r => r.CurrentDate).Returns(date); TimeProvider.CurrentProvider = timeProvider.Object; mailService.Setup(m => m .SendFixtureResultMail(It.Is <Fixture>( f => f == fixtures[0]), It.Is <IEnumerable <string> >(c => c.Count() == 2))); var fixtureService = new FixtureService( fixtureRepo.Object, teamsRepo.Object, playersRepo.Object, fixturesFactory.Object, mailService.Object); // act fixtureService.AddFixtureStatus(fixtureId, FixtureStatus.FullTime); // assert mailService.Verify(m => m .SendFixtureResultMail(It.Is <Fixture>( f => f == fixtures[0]), It.Is <IEnumerable <string> >(c => c.Count() == 2)), Times.Once); }