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 UpdateTournamentAndRound_AddRound() { var setupService = new EfTournamentService(); var actService = new EfTournamentService(); var assertService = new EfTournamentService(); var tourney = Factory.CreateInitializedTourney(); setupService.AddTournament(tourney); long id = tourney.Id; try { var newRoundList = new List <Round>(); var initialRound = new Round("Q"); newRoundList.Add(initialRound); newRoundList.Add(tourney.Rounds.First()); tourney.Rounds = newRoundList; // Act actService.UpdateTournamentAndRounds(tourney); var result = assertService.GetTournamentGuarded(id); var roundList = result.GetRoundsOrdered(); Assert.AreEqual("Q", roundList.First().Title); Assert.AreEqual(newRoundList[1].Title, roundList.Last().Title); } finally { DatabaseHelper.DeleteTournament(id); } }
public void UpdateTournamentAndRound_DeleteRound() { var setupService = new EfTournamentService(); var actService = new EfTournamentService(); var assertService = new EfTournamentService(); var tourney = Factory.CreateInitializedTourney(); var round = new Round("Superfinale"); round.RoundNo = 2; round.QualifiesFromRound = tourney.GetRoundNo(1); tourney.Rounds.Add(round); setupService.AddTournament(tourney); long id = tourney.Id; try { var newRoundList = new List <Round>(); newRoundList.Add(tourney.GetRoundNo(2)); tourney.Rounds = newRoundList; // Act actService.UpdateTournamentAndRounds(tourney); var result = assertService.GetTournamentGuarded(id); var roundList = result.GetRoundsOrdered().ToList(); Assert.AreEqual(1, roundList.Count); Assert.AreEqual("Superfinale", roundList[0].Title); Assert.AreEqual(null, roundList[0].QualifiesFromRound); } finally { DatabaseHelper.DeleteTournament(id); } }
public void UpdateTournamentAndRound_UpdateRoundAndTournamentTitle() { var setupService = new EfTournamentService(); var actService = new EfTournamentService(); var assertService = new EfTournamentService(); var tourney = Factory.CreateInitializedTourney(); setupService.AddTournament(tourney); long id = tourney.Id; try { // Act tourney.GetRoundNo(1).Title = "Roger"; tourney.Name = "Franz"; actService.UpdateTournamentAndRounds(tourney); var result = assertService.GetTournamentGuarded(id); Assert.AreEqual("Franz", result.Name); Assert.AreEqual("Roger", result.GetRoundNo(1).Title); } 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 static void DeleteTournament(long?id) { if (id != null) { using (var db = new EfTournamentService()) { db.DeleteTournament(id.Value); } } }
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 CreateTournament_IsCommitedBeforeOutOfScope() { long?tourneyId = null; try { var service1 = new EfTournamentService(); string tourneyName = "Integration test tournament" + Guid.NewGuid().ToString(); var tournament = new Tournament(tourneyName); service1.AddTournament(tournament); Assert.IsTrue(tournament.Id != 0, "Tournament ID not set"); tourneyId = tournament.Id; // Create a new context to verfiy with certainty that the data is committed to the database var service2 = new EfTournamentService(); var result = service2.GetTournamentGuarded(tournament.Id); Assert.AreEqual(tourneyName, result.Name); } finally { DatabaseHelper.DeleteTournament(tourneyId); } }
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(); } }