public void TestChallengeCleanup()
{
{
Log("Creating test users in DB");
_user1.UserID = UserDAO.CreateNewUser(_user1, "pass1");
_user2.UserID = UserDAO.CreateNewUser(_user2, "pass1");
Log("Creating an expired transient challenge");
int challengeId1 = ChallengeManager.CreateChallenge("Test Step Challenge", "This is an expired transient challenge",
30, false, DateTime.Today.AddDays(-1), 1, Statistic.Steps, 500);
Log("Creating an ongoing transient challenge");
int challengeId2 = ChallengeManager.CreateChallenge("Test Bike Challenge", "This is an active transient challenge",
30, false, DateTime.Today, 1, Statistic.Steps, 500);
Log("Creating an expired persistent challenge");
int challengeId3 = ChallengeManager.CreateChallenge("Test Step Challenge 2", "This is a persistent challenge",
30, true, DateTime.Today.AddDays(-1), 1, Statistic.Steps, 500);
Log("Verifying that all three challenges are in the active collection (before CleanUp)");
Assert.IsNotNull(ChallengeManager.GetChallenge(challengeId1));
Assert.IsNotNull(ChallengeManager.GetChallenge(challengeId2));
Assert.IsNotNull(ChallengeManager.GetChallenge(challengeId3));
Log("Call manager's CleanUp routine");
ChallengeManager.CleanUp();
Log("Verifying that the expired transient challenge is now inactive");
Assert.IsFalse(ChallengeManager.GetChallenge(challengeId1).IsActive);
Log("Verifying that the valid transient challenge is still active");
Assert.IsTrue(ChallengeManager.GetChallenge(challengeId2).IsActive);
Log("Verifying that the persistent challenge is still active");
Assert.IsTrue(ChallengeManager.GetChallenge(challengeId3).IsActive);
}
}