Пример #1
0
 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>();
 }
Пример #2
0
        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;
        }
Пример #3
0
        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;
        }