public void SameFixture_NoEvents() { var fixture = new Fixture(); var events = FixtureDiffer.DiffFixtureStats(fixture, fixture); Assert.Empty(events); }
public void NewFixtureWithAdditionalStats_NewEvent() { var fixture = TestBuilder.NoGoals(fixtureCode: 10); var fixtureWithGoal = TestBuilder.AwayTeamGoal(fixtureCode: 10, goals: 1); var events = FixtureDiffer.DiffFixtureStats(newFixture: fixtureWithGoal, fixture); Assert.NotEmpty(events); Assert.Single(events); Assert.Equal(StatType.GoalsScored, events.First().Key); Assert.Equal(TestBuilder.PlayerId, events.First().Value.First().PlayerId); }
public void Saves_DoesNotProduceEvents() { var initial = TestBuilder.NoGoals(fixtureCode: 10); var withSaves = TestBuilder.NoGoals(fixtureCode: 10).WithSaves(); var events = FixtureDiffer.DiffFixtureStats(newFixture: withSaves, initial, new List <Player> { TestBuilder.Player() }); Assert.Empty(events); }
public void NewFixtureWithRemovedEvent_NewEvent_WithRemovedFlagTrue() { var fixtureWithGoal = TestBuilder.AwayTeamGoal(fixtureCode: 10, goals: 1); var fixtureGoalRemoved = TestBuilder.NoGoals(fixtureCode: 10); var events = FixtureDiffer.DiffFixtureStats(newFixture: fixtureGoalRemoved, fixtureWithGoal); Assert.NotEmpty(events); Assert.Single(events); Assert.Equal(StatType.GoalsScored, events.First().Key); var playerEvent = events.First().Value.First(); Assert.Equal(TestBuilder.PlayerId, playerEvent.PlayerId); Assert.True(playerEvent.IsRemoved); }
public static IEnumerable <FixtureEvents> GetUpdatedFixtureEvents(ICollection <Fixture> latestFixtures, ICollection <Fixture> current, ICollection <Player> players, ICollection <Team> teams) { if (latestFixtures == null) { return(new List <FixtureEvents>()); } if (current == null) { return(new List <FixtureEvents>()); } return(latestFixtures.Where(f => f.Stats.Any()).Select(fixture => { var homeTeam = teams.FirstOrDefault(t => t.Id == fixture.HomeTeamId); var awayTeam = teams.FirstOrDefault(t => t.Id == fixture.AwayTeamId); var oldFixture = current.FirstOrDefault(f => f.Code == fixture.Code); if (oldFixture != null) { var newFixtureStats = FixtureDiffer.DiffFixtureStats(fixture, oldFixture, players); if (newFixtureStats.Values.Any()) { return new FixtureEvents ( new FixtureScore( new FixtureTeam(homeTeam.Id, homeTeam.Name, homeTeam.ShortName), new FixtureTeam(awayTeam.Id, awayTeam.Name, awayTeam.ShortName), fixture.Minutes, fixture.HomeTeamScore, fixture.AwayTeamScore ), newFixtureStats ); } else { return null; } } return null; }).WhereNotNull()); }
public void NullOldFixture_NoEvents() { var events = FixtureDiffer.DiffFixtureStats(null, new Fixture()); Assert.Empty(events); }
public void NullNewFixture_NoEvents() { var events = FixtureDiffer.DiffFixtureStats(new Fixture(), null); Assert.Empty(events); }
public void NullFixtures_NoEvents() { var events = FixtureDiffer.DiffFixtureStats(null, null); Assert.Empty(events); }