public void Init() { _activityService = Substitute.For <IActivityService>(); BadgeServiceTests.AppendBadgeClassPath(); _api = Substitute.For <IMVCForumAPI>(); _privateMessageService = Substitute.For <IPrivateMessageService>(); _membershipUserPointsService = Substitute.For <IMembershipUserPointsService>(); _topicNotificationService = Substitute.For <ITopicNotificationService>(); _voteService = Substitute.For <IVoteService>(); _badgeService = Substitute.For <IBadgeService>(); _categoryNotificationService = Substitute.For <ICategoryNotificationService>(); _loggingService = Substitute.For <ILoggingService>(); }
public void AfterBadgeAwarded() { EventManager.Instance.AfterBadgeAwarded += _EventManagerInstance_AfterBadgeAwarded; var badgeRepository = Substitute.For <IBadgeRepository>(); var api = Substitute.For <IMVCForumAPI>(); var loggingService = Substitute.For <ILoggingService>(); var localisationService = Substitute.For <ILocalizationService>(); var badgeService = new BadgeService(badgeRepository, api, loggingService, localisationService, _activityService); badgeService.SyncBadges(); // Create a user with one post with one vote var post = new Post { Id = Guid.NewGuid(), Votes = new List <Vote> { new Vote { Id = Guid.NewGuid() } }, }; var user = new MembershipUser { Posts = new List <Post> { post }, Badges = new List <Badge>(), BadgeTypesTimeLastChecked = new List <BadgeTypeTimeLastChecked> { new BadgeTypeTimeLastChecked { BadgeType = BadgeType.VoteUp.ToString(), TimeLastChecked = BadgeServiceTests.GetTimeAllowsBadgeUpdate() } } }; badgeRepository.Get(Arg.Any <Guid>()).Returns(new Badge { Name = "PosterVoteUp" }); badgeService.ProcessBadge(BadgeType.VoteUp, user); Assert.IsTrue(user.Badges.Count == 1); Assert.IsTrue(user.Badges[0].Name == "PosterVoteUp" || user.Badges[0].Name == BadgeServiceTests.NameTestVoteUp); // Event has been called test Assert.IsTrue(user.Email == TestString); EventManager.Instance.AfterBadgeAwarded -= _EventManagerInstance_AfterBadgeAwarded; }
public void BeforeBadgeAwardedAllow() { EventManager.Instance.BeforeBadgeAwarded += _EventManagerInstance_BeforeBadgeAwardedAllow; var badgeRepository = Substitute.For <IBadgeRepository>(); var api = Substitute.For <IMVCForumAPI>(); var loggingService = Substitute.For <ILoggingService>(); var localisationService = Substitute.For <ILocalizationService>(); var badgeService = new BadgeService(badgeRepository, api, loggingService, localisationService, _activityService); badgeService.SyncBadges(); // Create a user with one post with one vote var post = new Post { Id = Guid.NewGuid(), Votes = new List <Vote> { new Vote { Id = Guid.NewGuid() } }, }; var user = new MembershipUser { Posts = new List <Post> { post }, Badges = new List <Badge>(), BadgeTypesTimeLastChecked = new List <BadgeTypeTimeLastChecked> { new BadgeTypeTimeLastChecked { BadgeType = BadgeType.VoteUp.ToString(), TimeLastChecked = BadgeServiceTests.GetTimeAllowsBadgeUpdate() } } }; badgeRepository.Get(Arg.Any <Guid>()).Returns(new Badge { Name = "testbadge" }); badgeService.ProcessBadge(BadgeType.VoteUp, user); // Event should have cancelled the update Assert.IsTrue(user.Badges.Count == 2); EventManager.Instance.BeforeBadgeAwarded -= _EventManagerInstance_BeforeBadgeAwardedAllow; }