public void TestUpdateContestAddTeamMembers()
{
using (_trans)
{
InitializeTestDBEntries();
Log("Creating contest");
Contest contest = new Contest()
{
Name = "Test Contest1",
Description = "This is a test contest",
Mode = ContestEndMode.GoalBased,
Type = ContestType.Group,
StartTime = DateTime.Today,
EndValue = 500,
IsActive = true,
IsSearchable = true,
StatisticBinding = Statistic.Steps,
CreatorId = _user1.UserID
};
Log("Saving to DB");
int id = ContestDAO.CreateNewContest(contest);
ContestManager.AddGroup(id, _group1);
Log("Reading back from DB");
Contest retrieved = ContestDAO.GetContestFromContestId(id, true, true);
Log("Verifying that the two added members are found");
Assert.IsTrue(retrieved.Teams[0].ContainsMember(_user1.UserID));
Assert.IsTrue(retrieved.Teams[0].ContainsMember(_user2.UserID));
Assert.IsFalse(retrieved.Teams[0].ContainsMember(_user3.UserID));
Assert.IsFalse(retrieved.Teams[0].ContainsMember(_user4.UserID));
Log("Adding two more members to the team");
retrieved.Teams[0].Members.Add(new ContestTeamMember() { UserId = _user3.UserID });
retrieved.Teams[0].Members.Add(new ContestTeamMember() { UserId = _user4.UserID });
ContestDAO.UpdateContest(retrieved);
Log("Re-loading contest from DB");
Contest retrieved2 = ContestDAO.GetContestFromContestId(id, true, true);
Log("Verifying the correct number of teams");
Assert.AreEqual(retrieved.Teams.Count, retrieved2.Teams.Count);
Log("Verifying that each member is found");
Assert.IsTrue(retrieved2.Teams[0].ContainsMember(_user1.UserID));
Assert.IsTrue(retrieved2.Teams[0].ContainsMember(_user2.UserID));
Assert.IsTrue(retrieved2.Teams[0].ContainsMember(_user3.UserID));
Assert.IsTrue(retrieved2.Teams[0].ContainsMember(_user4.UserID));
}
}