예제 #1
0
        public void BeforeMarkedAsSolutionCancel()
        {
            var topicRepository = Substitute.For<ITopicRepository>();
            var postRepository = Substitute.For<IPostRepository>();
            var membershipUserPointsService = Substitute.For<IMembershipUserPointsService>();
            var settingsService = Substitute.For<ISettingsService>();

            var topicService = new TopicService(membershipUserPointsService, settingsService, topicRepository, postRepository, _api, _topicNotificationService);
            var marker = new MembershipUser
            {
                UserName = "******",
                Id = Guid.NewGuid()
            };

            var topic = new Topic
            {
                Name = "something",
                Tags = new List<TopicTag>
                                           {
                                               new TopicTag{Tag = "tagone"},
                                               new TopicTag{Tag = "tagtwo"}
                                           },
                User = marker
            };

            var post = new Post { PostContent = "Test content" };

            var solutionWriter = new MembershipUser { UserName = "******" };

            EventManager.Instance.BeforeMarkedAsSolution += eventsService_BeforeMarkedAsSolutionCancel;
            topicService.SolveTopic(topic, post, marker, solutionWriter);

            postRepository.DidNotReceive().Update(Arg.Is<Post>(x => x.PostContent == "Test content"));
            Assert.IsFalse(topic.Solved);
            EventManager.Instance.BeforeMarkedAsSolution -= eventsService_BeforeMarkedAsSolutionCancel;

        }
예제 #2
0
        public void AfterMarkedAsSolution()
        {
            var topicRepository = Substitute.For<ITopicRepository>();
            var postRepository = Substitute.For<IPostRepository>();
            var membershipUserPointsService = Substitute.For<IMembershipUserPointsService>();
            var settingsService = Substitute.For<ISettingsService>();
            settingsService.GetSettings().Returns(new Settings{PointsAddedForSolution = 20});

            var topicService = new TopicService(membershipUserPointsService, settingsService, topicRepository, postRepository, _api, _topicNotificationService);
            var marker = new MembershipUser
            {
                UserName = "******",
                Id = Guid.NewGuid()
            };

            var topic = new Topic
            {
                Name = "something",
                Tags = new List<TopicTag>
                                           {
                                               new TopicTag{Tag = "tagone"},
                                               new TopicTag{Tag = "tagtwo"}
                                           },
                User = marker
            };

            var post = new Post { PostContent = "Test content" };

            var solutionWriter = new MembershipUser { UserName = "******" };

            EventManager.Instance.AfterMarkedAsSolution += eventsService_AfterMarkedAsSolution;
            topicService.SolveTopic(topic, post, marker, solutionWriter);

            Assert.IsTrue(topic.Solved);
            Assert.AreEqual(solutionWriter.Email, TestString);
            EventManager.Instance.AfterMarkedAsSolution -= eventsService_AfterMarkedAsSolution;
        }
예제 #3
0
        public void SolveTopicMarkerNotOwner()
        {
            var topicRepository = Substitute.For<ITopicRepository>();
            var postRepository = Substitute.For<IPostRepository>();
            var membershipUserPointsService = Substitute.For<IMembershipUserPointsService>();
            var settingsService = Substitute.For<ISettingsService>();

            var topicService = new TopicService(membershipUserPointsService, settingsService, topicRepository, postRepository, _api, _topicNotificationService);
            var marker = new MembershipUser
            {
                UserName = "******",
                Id = Guid.NewGuid()            
            };

            var owner = new MembershipUser
            {
                UserName = "******",
                Id = Guid.NewGuid()
            };

            var topic = new Topic
            {
                Name = "something",
                Tags = new List<TopicTag>
                                           {
                                               new TopicTag{Tag = "tagone"},
                                               new TopicTag{Tag = "tagtwo"}
                                           },
                User = owner
            };

            var post = new Post() { PostContent = "Test content" };

            var solutionWriter = new MembershipUser { UserName = "******" };

            topicService.SolveTopic(topic, post, marker, solutionWriter);

            Assert.IsFalse(topic.Solved);
        }