public void IT_TournamentShellCreate() { long?id = null; try { // Setup/Act using (var db = new NordicArenaDataContext()) { var tourney = new Tournament("I-Test tournament"); db.Tournaments.Add(tourney); db.SaveChanges(); id = tourney.Id; } // Asssert using (var db = new EfTournamentService()) { var tourney = db.GetTournament(id.Value); Assert.AreEqual("I-Test tournament", tourney.Name); } } finally { DatabaseHelper.DeleteTournament(id); } }
public void IT_TournementWithJudge() { long? id = null; string judgeName = Guid.NewGuid().ToString(); try { // Setup part 1 using (var db = new NordicArenaDataContext()) { var judge = new Judge(judgeName); var tourney = new Tournament("I-Test tournament"); tourney.Judges = new List <Judge>(); tourney.Judges.Add(judge); db.Tournaments.Add(tourney); db.SaveChanges(); id = tourney.Id; } // Asssert using (var db = new EfTournamentService()) { var tourney = db.GetTournament(id.Value); var judge = tourney.Judges.FirstOrDefault(); Assert.AreEqual("I-Test tournament", tourney.Name); Assert.AreEqual(judgeName, judge.Name); } } finally { DatabaseHelper.DeleteTournament(id); } }
public void IT_UpdateRoundContestantDirectly_NoError() { long?id = null; try { long rcId = 0; // Setup/Act using (var db = new NordicArenaDataContext()) { var tourney = Factory.CreateInitializedTourney(); tourney.Contestants.Add(new Contestant("Roger")); tourney.Contestants.Add(new Contestant("Hans")); var judge = new Judge("Dommer"); judge.Tournament = tourney; db.Judges.Add(judge); db.Tournaments.Add(tourney); db.SaveChanges(); tourney = db.Tournaments.FirstOrDefault(p => p.Id == tourney.Id); tourney.Start(); db.SaveChanges(); id = tourney.Id; var rc1 = tourney.Rounds.FirstOrDefault().ContestantEntries.FirstOrDefault(); rcId = rc1.Id; } using (var db = new EfTournamentService()) { // Act var rc = db.GetRoundContestantGuarded(rcId); var dummy = rc.Contestant; var dummy2 = rc.Round;// Trigger lazy loading or else ... TODO: Find a better solution. Also used in production code (CalculateTotalScore() in RoundContestant.cs) rc.TotalScore = 1M; db.SaveChanges(); // Assert Assert.AreEqual(1M, rc.TotalScore.Value); } } catch (DbEntityValidationException exc) { throw DbValidationExceptionWrapper.Wrap(exc); } finally { DatabaseHelper.DeleteTournament(id); } }
public void IT_FullTournamentCreate() { long?id = null; try { // Setup part 1 using (var db = new NordicArenaDataContext()) { var tourney = new Tournament("I-Test tournament"); db.Tournaments.Add(tourney); db.SaveChanges(); id = tourney.Id; } // Setup part 2 using (var db = new EfTournamentService()) { // Add a first round and add the contestant to that round var tourney = db.GetTournament(id.Value); var contestant1 = new Contestant() { Name = "Roger" }; var contestant2 = new Contestant() { Name = "Hans" }; tourney.InitializeDefaults(); tourney.Contestants.Add(contestant1); tourney.Contestants.Add(contestant2); db.SaveChanges(); } // Setup part 3 using (var db = new EfTournamentService()) { var tourney = db.GetTournament(id.Value); var contestant = tourney.Contestants.First(p => p.Name == "Hans"); var round = tourney.Rounds.First(); tourney.AddContesantToRound(contestant, round); db.SaveChanges(); } // Asssert using (var db = new EfTournamentService()) { var tourney = db.GetTournament(id.Value); Assert.AreEqual("I-Test tournament", tourney.Name); Assert.AreEqual(1, tourney.Rounds.Count); Assert.AreEqual(2, tourney.Contestants.Count); Assert.AreEqual(1, tourney.Rounds.First().ContestantEntries.Count); Assert.AreEqual("Hans", tourney.Rounds.First().ContestantEntries.First().Contestant.Name); } } finally { DatabaseHelper.DeleteTournament(id); } }
public void StartingTournamentBeforeFirstSave() { long?id = null; try { // Setup/Act using (var db = new NordicArenaDataContext()) { var tourney = Factory.CreateInitializedTourney(); tourney.Contestants.Add(new Contestant("Roger")); tourney.Contestants.Add(new Contestant("Hans")); tourney.Start(); db.Tournaments.Add(tourney); db.SaveChanges(); id = tourney.Id; } } finally { DatabaseHelper.DeleteTournament(id); } }
public void IT_Tournament_InitializeDefaults_Round1IsSaved() { long?id = null; try { var tournament = new Tournament("I-Test tournament"); using (var db = new NordicArenaDataContext()) { db.Tournaments.Add(tournament); tournament.InitializeDefaults(); db.SaveChanges(); id = tournament.Id; } using (var db = new EfTournamentService()) { var tourney = db.GetTournament(id.Value); Assert.AreEqual(1, tourney.Rounds.Count(), "RoundCount"); Assert.AreEqual(1, tourney.Rounds.FirstOrDefault().RoundNo, "RoundNo"); } } finally { DatabaseHelper.DeleteTournament(id); } }
public void IT_PostRunJudgingsFromWeb_FinalizingJudgementOfOneContestant() { long?id = null; try { var scores = new ContestantRunViewModel(); var wrappedScores = new JudgeViewModel(); // Setup/Act using (var db = new NordicArenaDataContext()) { var tourney = Factory.CreateInitializedTourney(); tourney.Contestants.Add(new Contestant("Roger")); tourney.Contestants.Add(new Contestant("Hans")); var judge = new Judge("Dommer"); judge.Tournament = tourney; db.Judges.Add(judge); db.Tournaments.Add(tourney); db.SaveChanges(); tourney = db.Tournaments.FirstOrDefault(p => p.Id == tourney.Id); tourney.Start(); db.SaveChanges(); id = tourney.Id; var round1 = tourney.Rounds.FirstOrDefault(); round1.RunsPerContestant = 1; var rc1 = round1.ContestantEntries.FirstOrDefault(); var critList = tourney.JudgingCriteria.ToList(); // Set up scores scores.RoundContestantId = rc1.Id; scores.TournamentId = tourney.Id; for (int i = 0; i < critList.Count; i++) { var score = new RunJudging(); score.CriterionId = critList[i].Id; score.JudgeId = judge.Id; score.RoundContestantId = rc1.Id; score.RunNo = 1; score.Score = (i + 1); scores.Scores.Add(score); } wrappedScores.Contestants = new List <ContestantRunViewModel>(); wrappedScores.Contestants.Add(scores); wrappedScores.Tournament = tourney; } // Act var ctrl = new TournamentJudgeController(null, new EfTournamentService(), ServiceFaker.GetFakeSignalRHub()); ctrl.JudgeIndex(wrappedScores); // Assert using (var db = new EfTournamentService()) { var rc = db.GetRoundContestantGuarded(scores.RoundContestantId); Assert.IsTrue(rc.TotalScore.HasValue); } } catch (DbEntityValidationException exc) { throw DbValidationExceptionWrapper.Wrap(exc); } finally { DatabaseHelper.DeleteTournament(id); ServiceFaker.ResetIocContainer(); } }