public void RosterCanHaveTenPlayers() { // 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", "p6", "p7", "p8", "p9", "p10" } }; var matchResult = new MatchResult(validRoster, 9, 11, 123); // Act var matchSerie = new MatchSerie( new List<MatchTable> { new MatchTable(new MatchGame("p1", 0, 0, 0), new MatchGame("p2", 0, 0, 0), 0), new MatchTable(new MatchGame("p3", 0, 0, 0), new MatchGame("p4", 0, 0, 0), 0), new MatchTable(new MatchGame("p5", 0, 0, 0), new MatchGame("p6", 0, 0, 0), 0), new MatchTable(new MatchGame("p7", 0, 0, 0), new MatchGame("p8", 0, 0, 0), 0) }); // Assert Assert.DoesNotThrow(() => matchResult.RegisterSerie(matchSerie)); }
public void RosterCannotHaveSevenPlayers() { // 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", "p4", "p5", "p6", "p7" } }; var matchResult = new MatchResult(invalidRoster, 9, 11, 123); // Act var matchSerie = new MatchSerie( new List<MatchTable> { new MatchTable(new MatchGame("p1", 0, 0, 0), new MatchGame("p2", 0, 0, 0), 0), new MatchTable(new MatchGame("p3", 0, 0, 0), new MatchGame("p4", 0, 0, 0), 0), new MatchTable(new MatchGame("p5", 0, 0, 0), new MatchGame("p6", 0, 0, 0), 0), new MatchTable(new MatchGame("p7", 0, 0, 0), new MatchGame("p8", 0, 0, 0), 0), }); // Assert var ex = Assert.Throws<MatchException>(() => matchResult.RegisterSerie(matchSerie)); Assert.Equal("Roster must have 8, 9, or 10 players when registering results", ex.Message); }
public void RosterCanHaveEightPlayers() { // 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", "p6", "p7", "p8" } }; var matchResult = new MatchResult(validRoster, 9, 11, 123); // Act var matchSerie = new MatchSerie( new List<MatchTable> { new MatchTable(new MatchGame("p1", 0, 0, 0), new MatchGame("p2", 0, 0, 0), 0), new MatchTable(new MatchGame("p3", 0, 0, 0), new MatchGame("p4", 0, 0, 0), 0), new MatchTable(new MatchGame("p5", 0, 0, 0), new MatchGame("p6", 0, 0, 0), 0), new MatchTable(new MatchGame("p7", 0, 0, 0), new MatchGame("p8", 0, 0, 0), 0), }); // Assert Assert.DoesNotThrow(() => matchResult.RegisterSerie(matchSerie)); Assert.Equal(typeof(SerieRegistered), matchResult.GetUncommittedChanges()[1].GetType()); }
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", "p5", "p6", "p7", "p8" } }; var matchResult = new MatchResult(validRoster, 9, 11, 123); // Act for (var i = 0; i < 4; i++) { var matchSerie = new MatchSerie( new List<MatchTable> { new MatchTable(new MatchGame("p1", 0, 0, 0), new MatchGame("p2", 0, 0, 0), 1), new MatchTable(new MatchGame("p3", 0, 0, 0), new MatchGame("p4", 0, 0, 0), 0), new MatchTable(new MatchGame("p5", 0, 0, 0), new MatchGame("p6", 0, 0, 0), 0), new MatchTable(new MatchGame("p7", 0, 0, 0), new MatchGame("p8", 0, 0, 0), 0), }); matchResult.RegisterSerie(matchSerie); } // Assert var changes = matchResult.GetUncommittedChanges(); Assert.Equal(7, changes.Length); var medal1 = changes[5] as AwardedMedal; var medal2 = changes[6] as AwardedMedal; Assert.NotNull(medal1); Assert.NotNull(medal2); Assert.Equal("p1", medal1.Player); Assert.Equal(MedalType.TotalScore, medal1.MedalType); Assert.Equal(4, medal1.Value); Assert.Equal("p2", medal2.Player); Assert.Equal(MedalType.TotalScore, medal2.MedalType); Assert.Equal(4, 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", "p5", "p6", "p7", "p8" } }; var matchResult = new MatchResult(validRoster, 9, 11, 123); // Act var matchSerie = new MatchSerie( new List<MatchTable> { new MatchTable(new MatchGame("p1", 0, 0, 0), new MatchGame("p2", 0, 0, 0), 0), new MatchTable(new MatchGame("invalid-id", 0, 0, 0), new MatchGame("p4", 0, 0, 0), 0), new MatchTable(new MatchGame("p5", 0, 0, 0), new MatchGame("p6", 0, 0, 0), 0), new MatchTable(new MatchGame("p7", 0, 0, 0), new MatchGame("p8", 0, 0, 0), 0) }); // Assert var ex = Assert.Throws<MatchException>(() => matchResult.RegisterSerie(matchSerie)); Assert.Equal("Can only register players from roster", ex.Message); }
public void RegisterSerie(MatchSerie matchSerie) { if (matchSerie == null) throw new ArgumentNullException("matchSerie"); if (rosterPlayers.Count != 8 && rosterPlayers.Count != 9 && rosterPlayers.Count != 10) throw new MatchException("Roster must have 8, 9, or 10 players when registering results"); VerifyPlayers(matchSerie); ApplyChange(new SerieRegistered(matchSerie, BitsMatchId)); DoAwardMedals(registeredSeries); }
private void VerifyPlayers(MatchSerie matchSerie) { do { if (rosterPlayers.Contains(matchSerie.Table1.Game1.Player) == false) break; if (rosterPlayers.Contains(matchSerie.Table1.Game2.Player) == false) break; if (rosterPlayers.Contains(matchSerie.Table2.Game1.Player) == false) break; if (rosterPlayers.Contains(matchSerie.Table2.Game2.Player) == false) break; if (rosterPlayers.Contains(matchSerie.Table3.Game1.Player) == false) break; if (rosterPlayers.Contains(matchSerie.Table3.Game2.Player) == false) break; if (rosterPlayers.Contains(matchSerie.Table4.Game1.Player) == false) break; if (rosterPlayers.Contains(matchSerie.Table4.Game2.Player) == false) break; return; } while (false); throw new MatchException("Can only register players from roster"); }