public void CheckIfFullfiledRequirementTest_ShouldCheckListWhichAlredyContainThisMedalAndReturnEmptyMedalList() { //Arrange SpontaneousUserModel userModelWithMedal = new SpontaneousUserModel() { UserMedalsList = new List<UserMedal>() }; userModelWithMedal.UserMedalsList.Add(new WelcomeUserMedal()); UserActivity userActivity = new PageViewActivity("TestPage"); //Act MedalRequirementsChecker medalChecker = new MedalRequirementsChecker(); List<UserMedal> userModelWithMedalResult = medalChecker.ObtainMedalBecauseOfActivity(userModelWithMedal, userActivity); //Assert Assert.AreEqual(userModelWithMedalResult.Count, 0); }
public void CheckIfFullfiledRequirementTest_ShouldCheckListWithoutThisMedalAndRequirementForThisMedalNotAchieved_MustReturnNotEmptyMedalList() { //Arrange SpontaneousUserModel userModelWithOutMedal = new SpontaneousUserModel() { UserActivityList = new List<UserActivity>(), UserMedalsList = new List<UserMedal>() }; //Requirement = 3 for (int i = 0; i < 2; i++) { userModelWithOutMedal.UserActivityList.Add(new PageViewActivity("TestPage")); } UserActivity userActivity = new PageViewActivity("TestPage"); //Act MedalRequirementsChecker medalChecker = new MedalRequirementsChecker(); List<UserMedal> userModelWithMedalResult = medalChecker.ObtainMedalBecauseOfActivity(userModelWithOutMedal, userActivity); //Assert Assert.AreEqual(userModelWithMedalResult.Count, 0); }
public void CheckIfFullfiledRequirementTest_ShouldCheckListWithOtherMedalAndReturnNotEmptyMedalList() { //Arrange SpontaneousUserModel userModelWithOtherMedal = new SpontaneousUserModel() { UserActivityList = new List<UserActivity>(), UserMedalsList = new List<UserMedal>() }; for (int i = 0; i < 3; i++) { userModelWithOtherMedal.UserActivityList.Add(new PageViewActivity("TestPage")); } userModelWithOtherMedal.UserMedalsList.Add(new AddRestaurantMedal()); UserActivity userActivity = new PageViewActivity("TestPage"); //Act MedalRequirementsChecker medalChecker = new MedalRequirementsChecker(); List<UserMedal> userModelWithOtherMedalResult = medalChecker.ObtainMedalBecauseOfActivity(userModelWithOtherMedal, userActivity); //Assert Assert.AreNotEqual(userModelWithOtherMedalResult.Count, 0); }
internal void SaveUserActivity(UserActivity userActivity) { var userProfile = GetUserProfile(); var userData = userProfile.GetUserData(); string userActivityType = userActivity.GetType().Name; if (userActivity == null) { log.WarnFormat("[SaveUserActivity] User={0} tried to save user activity, but received NULL parameter.", userProfile.UserName); return; }; if (userData.UserActivityList == null) { userData.UserActivityList = new List<UserActivity>(); } userActivity.Date = DateTime.UtcNow; userData.TotalPoints += userActivity.Points; userData.UserActivityList.Add(userActivity); //Check if reached Medal MedalRequirementsChecker medalChecker = new MedalRequirementsChecker(); List<UserMedal> medalList = medalChecker.ObtainMedalBecauseOfActivity(userData, userActivity); if(medalList.Count > 0) { if (userData.UserMedalsList == null) userData.UserMedalsList = new List<UserMedal>(); foreach (var medal in medalList) { userData.UserMedalsList.Add(medal); } userData.MedalNotificationFlag = true; } userProfile.SetUserData(userData); userProfile.Save(); log.InfoFormat("[SaveUserActivity] user={0}, userActivity={1}.", userProfile.UserName, userActivity.ToString()); }