public void TestGetContestsFromGroupOrUserId()
{
using (_trans)
{
InitializeTestDBEntries();
string c1Name = "Test";
string c2Name = "Test Competition";
string c3Name = "testing again";
Log("Creating contests");
int id1 = ContestManager.CreateContest(ContestType.Group, c1Name,
"This is a test contest", DateTime.Today.AddDays(1), 500, true, Statistic.Steps, _user1.UserID);
int id2 = ContestManager.CreateContest(ContestType.Group, c2Name,
"This is a test contest", DateTime.Today.AddDays(1), 500, true, Statistic.GasSavings, _user1.UserID);
int id3 = ContestManager.CreateContest(ContestType.Group, c3Name,
"This is a test contest", DateTime.Today.AddDays(1), 500, true, Statistic.GasSavings, _user1.UserID);
ContestManager.AddGroup(id1, _group1);
ContestManager.AddGroup(id2, _group1);
ContestManager.AddGroup(id2, _group2);
ContestManager.AddGroup(id3, _group2);
Log("Retrieving contest lists for group1, group2, user1, and user3");
List<int> group1Contests = ContestDAO.GetContestIdsFromGroupId(_group1.ID);
List<int> group2Contests = ContestDAO.GetContestIdsFromGroupId(_group2.ID);
List<int> user1Contests = ContestDAO.GetContestIdsFromUserId(_user1.UserID);
List<int> user3Contests = ContestDAO.GetContestIdsFromUserId(_user3.UserID);
Log("Retrieving team lists for group1, group2, user1, and user3");
List<int> group1Teams = TeamDAO.GetTeamIdsFromGroupId(_group1.ID);
List<int> group2Teams = TeamDAO.GetTeamIdsFromGroupId(_group2.ID);
List<int> user1Teams = TeamDAO.GetTeamIdsFromUserId(_user1.UserID);
List<int> user3Teams = TeamDAO.GetTeamIdsFromUserId(_user3.UserID);
Log("Verifying returned contest counts");
Assert.AreEqual(2, group1Contests.Count);
Assert.AreEqual(2, group2Contests.Count);
Assert.AreEqual(2, user1Contests.Count);
Assert.AreEqual(2, user3Contests.Count);
Log("Verifying returned team counts");
Assert.AreEqual(2, group1Teams.Count);
Assert.AreEqual(2, group2Teams.Count);
Assert.AreEqual(2, user1Teams.Count);
Assert.AreEqual(2, user3Teams.Count);
Log("Verifying correct contest memberships");
Assert.IsTrue(group1Contests.Contains(id1));
Assert.IsTrue(group1Contests.Contains(id2));
Assert.IsTrue(group2Contests.Contains(id2));
Assert.IsTrue(group2Contests.Contains(id3));
Assert.IsTrue(user1Contests.Contains(id1));
Assert.IsTrue(user1Contests.Contains(id2));
Assert.IsTrue(user3Contests.Contains(id2));
Assert.IsTrue(user3Contests.Contains(id3));
}
}