Пример #1
0
        public void TestCreateAnonymousFeedback()
        {
            const long resourceVersionId = 2149;

            var repository = new MockPortalRepository();

            var data = new CreateAnonymousFeedbackContract
            {
                FeedbackCategory = FeedbackCategoryEnumContract.OldGrammar,
                Text             = "Feedback text",
                AuthorEmail      = "*****@*****.**",
                AuthorName       = "Author Name"
            };

            var work1 = new CreateFeedbackWork(m_mapper, repository, data, FeedbackType.Generic, null, resourceVersionId);

            work1.Execute();

            Assert.AreEqual(1, repository.CreatedObjects.Count);
            Assert.AreEqual(0, repository.UpdatedObjects.Count);
            Assert.AreEqual(typeof(Feedback), repository.CreatedObjects.First().GetType());


            repository = new MockPortalRepository();
            var work2 = new CreateFeedbackWork(m_mapper, repository, new CreateFeedbackContract(), FeedbackType.Headword);

            Assert.ThrowsException <MainServiceException>(() => work2.Execute());


            repository = new MockPortalRepository();
            var work3 = new CreateFeedbackWork(m_mapper, repository, data, FeedbackType.Headword, null, resourceVersionId);

            work3.Execute();

            Assert.AreEqual(1, repository.CreatedObjects.Count);
            Assert.AreEqual(0, repository.UpdatedObjects.Count);
            Assert.AreEqual(typeof(HeadwordFeedback), repository.CreatedObjects.First().GetType());


            var feedbackEntity = (Feedback)repository.CreatedObjects.First();

            Assert.IsNull(feedbackEntity.AuthorUser);
            Assert.AreEqual(data.AuthorEmail, feedbackEntity.AuthorEmail);
            Assert.AreEqual(data.AuthorName, feedbackEntity.AuthorName);
            Assert.AreEqual(data.Text, feedbackEntity.Text);
        }
Пример #2
0
        public void TestCreateFeedbackFromUser()
        {
            const int  userId            = 67;
            const long resourceVersionId = 48915;

            var repository = new MockPortalRepository();

            var data = new CreateFeedbackContract
            {
                FeedbackCategory = FeedbackCategoryEnumContract.OldGrammar,
                Text             = "Feedback text"
            };

            var work1 = new CreateFeedbackWork(m_mapper, repository, data, FeedbackType.Generic, userId);

            work1.Execute();

            Assert.AreEqual(1, repository.CreatedObjects.Count);
            Assert.AreEqual(0, repository.UpdatedObjects.Count);
            Assert.AreEqual(typeof(Feedback), repository.CreatedObjects.First().GetType());


            repository = new MockPortalRepository();
            var work2 = new CreateFeedbackWork(m_mapper, repository, data, FeedbackType.Headword, userId);

            Assert.ThrowsException <MainServiceException>(() => work2.Execute());


            repository = new MockPortalRepository();
            var work3 = new CreateFeedbackWork(m_mapper, repository, data, FeedbackType.Headword, userId, resourceVersionId);

            work3.Execute();

            Assert.AreEqual(1, repository.CreatedObjects.Count);
            Assert.AreEqual(0, repository.UpdatedObjects.Count);
            Assert.AreEqual(typeof(HeadwordFeedback), repository.CreatedObjects.First().GetType());


            var feedbackEntity = (Feedback)repository.CreatedObjects.First();

            Assert.IsNull(feedbackEntity.AuthorEmail);
            Assert.IsNull(feedbackEntity.AuthorName);
            Assert.IsNotNull(feedbackEntity.AuthorUser);
            Assert.AreEqual(data.Text, feedbackEntity.Text);
        }