public void RegisterSerie(MatchSerie4 matchSerie) { if (matchSerie == null) throw new ArgumentNullException("matchSerie"); if (rosterPlayers.Count != 4 && rosterPlayers.Count != 5) throw new MatchException("Roster must have 4 or 5 players when registering results"); VerifyPlayers(matchSerie); ApplyChange(new Serie4Registered(matchSerie, BitsMatchId)); DoAwardMedals(registeredSeries); }
public void RosterCannotHaveThreePlayers() { // Arrange var invalidRoster = new Roster(2012, 11, 1, "H", "A", "L", "A", new DateTime(2012, 2, 3), false) { Id = "rosters-1", Players = new List<string> { "p1", "p2", "p3" } }; var matchResult = new MatchResult4(invalidRoster, 9, 11, 123); // Act var matchSerie = new MatchSerie4( new List<MatchGame4> { new MatchGame4("p1", 0, 0), new MatchGame4("p2", 0, 0), new MatchGame4("p3", 0, 0), new MatchGame4("p4", 0, 0) }); // Assert var ex = Assert.Throws<MatchException>(() => matchResult.RegisterSerie(matchSerie)); Assert.Equal("Roster must have 4 or 5 players when registering results", ex.Message); }
private void VerifyPlayers(MatchSerie4 matchSerie) { do { if (rosterPlayers.Contains(matchSerie.Game1.Player) == false) break; if (rosterPlayers.Contains(matchSerie.Game2.Player) == false) break; if (rosterPlayers.Contains(matchSerie.Game3.Player) == false) break; if (rosterPlayers.Contains(matchSerie.Game4.Player) == false) break; return; } while (false); throw new MatchException("Can only register players from roster"); }
public void RosterCanHaveFourPlayers() { // Arrange var validRoster = new Roster(2012, 11, 1, "H", "A", "L", "A", new DateTime(2012, 2, 3), false) { Id = "rosters-1", Players = new List<string> { "p1", "p2", "p3", "p4" } }; var matchResult = new MatchResult4(validRoster, 9, 11, 123); // Act var matchSerie = new MatchSerie4( new List<MatchGame4> { new MatchGame4("p1", 0, 0), new MatchGame4("p2", 0, 0), new MatchGame4("p3", 0, 0), new MatchGame4("p4", 0, 0) }); // Assert Assert.DoesNotThrow(() => matchResult.RegisterSerie(matchSerie)); Assert.Equal(typeof(Serie4Registered), matchResult.GetUncommittedChanges()[1].GetType()); }
public void RosterCanHaveFivePlayers() { // Arrange var validRoster = new Roster(2012, 11, 1, "H", "A", "L", "A", new DateTime(2012, 2, 3), false) { Id = "rosters-1", Players = new List<string> { "p1", "p2", "p3", "p4", "p5" } }; var matchResult = new MatchResult4(validRoster, 9, 11, 123); // Act var matchSerie = new MatchSerie4( new List<MatchGame4> { new MatchGame4("p1", 0, 0), new MatchGame4("p2", 0, 0), new MatchGame4("p3", 0, 0), new MatchGame4("p4", 0, 0) }); // Assert Assert.DoesNotThrow(() => matchResult.RegisterSerie(matchSerie)); }
public void MedalFor4Score() { // Arrange var validRoster = new Roster(2012, 11, 1, "H", "A", "L", "A", new DateTime(2012, 2, 3), false) { Id = "rosters-1", Players = new List<string> { "p1", "p2", "p3", "p4" } }; var matchResult = new MatchResult4(validRoster, 9, 11, 123); // Act for (var i = 0; i < 4; i++) { var matchSerie = new MatchSerie4( new List<MatchGame4> { new MatchGame4("p1", 0, 0), new MatchGame4("p2", 1, 0), new MatchGame4("p3", 0, 0), new MatchGame4("p4", 0, 0) }); matchResult.RegisterSerie(matchSerie); } // Assert var changes = matchResult.GetUncommittedChanges(); Assert.Equal(6, changes.Length); var medal = changes[5] as AwardedMedal; Assert.NotNull(medal); Assert.Equal("p2", medal.Player); Assert.Equal(MedalType.TotalScore, medal.MedalType); Assert.Equal(4, medal.Value); }
public void MedalFor270OrMore() { // Arrange var validRoster = new Roster(2012, 11, 1, "H", "A", "L", "A", new DateTime(2012, 2, 3), false) { Id = "rosters-1", Players = new List<string> { "p1", "p2", "p3", "p4" } }; var matchResult = new MatchResult4(validRoster, 9, 11, 123); // Act var matchSerie = new MatchSerie4( new List<MatchGame4> { new MatchGame4("p1", 0, 269), new MatchGame4("p2", 0, 270), new MatchGame4("p3", 0, 0), new MatchGame4("p4", 0, 300) }); matchResult.RegisterSerie(matchSerie); // Assert var changes = matchResult.GetUncommittedChanges(); Assert.Equal(4, changes.Length); var medal1 = changes[2] as AwardedMedal; var medal2 = changes[3] as AwardedMedal; Assert.NotNull(medal1); Assert.NotNull(medal2); Assert.Equal("p2", medal1.Player); Assert.Equal(MedalType.PinsInSerie, medal1.MedalType); Assert.Equal(270, medal1.Value); Assert.Equal("p4", medal2.Player); Assert.Equal(MedalType.PinsInSerie, medal2.MedalType); Assert.Equal(300, medal2.Value); }
public void CanNotRegisterInvalidPlayer() { // Arrange var validRoster = new Roster(2012, 11, 1, "H", "A", "L", "A", new DateTime(2012, 2, 3), false) { Id = "rosters-1", Players = new List<string> { "p1", "p2", "p3", "p4" } }; var matchResult = new MatchResult4(validRoster, 9, 11, 123); // Act var matchSerie = new MatchSerie4( new List<MatchGame4> { new MatchGame4("p1", 0, 0), new MatchGame4("p2", 0, 0), new MatchGame4("invalid-id", 0, 0), new MatchGame4("p4", 0, 0) }); // Assert var ex = Assert.Throws<MatchException>(() => matchResult.RegisterSerie(matchSerie)); Assert.Equal("Can only register players from roster", ex.Message); }