示例#1
0
        public async Task CreateReport_WhenParamsAreValid()
        {
            //Arrange
            var options     = Utils.GetOptions(nameof(CreateReport_WhenParamsAreValid));
            var title       = "Report Title";
            var summary     = "Report Summary";
            var description = "Report Description";
            var author      = TestModelsSeeder.SeedUser();
            var industry    = TestModelsSeeder.SeedIndustry();
            var imgURL      = "imageurl";
            var tag         = TestModelsSeeder.SeedTag();

            using (var arrangeContext = new InsightHubContext(options))
            {
                await arrangeContext.Users.AddAsync(author);

                await arrangeContext.Industries.AddAsync(industry);

                await arrangeContext.Tags.AddAsync(tag);

                await arrangeContext.SaveChangesAsync();
            }
            //Act & Assert
            using var assertContext = new InsightHubContext(options);
            var sutTags    = new TagServices(assertContext);
            var sutReports = new ReportServices(assertContext, sutTags);
            var act        = await sutReports.CreateReport(title, summary, description, author.Email, imgURL, industry.Name, tag.Name);

            var result = assertContext.Reports.FirstOrDefault(t => t.Title == title);

            Assert.AreEqual(title, result.Title);
            Assert.AreEqual(description, result.Description);
            Assert.AreEqual(tag.Name, result.ReportTags.First().Tag.Name);
        }
示例#2
0
        public async Task ReturnCorrectDeletedTags_When_ParamsValid()
        {
            //Arrange
            var options   = Utils.GetOptions(nameof(ReturnCorrectDeletedTags_When_ParamsValid));
            var firstTag  = TestModelsSeeder.SeedTag();
            var secondTag = TestModelsSeeder.SeedTag2();

            using (var arrangeContext = new InsightHubContext(options))
            {
                arrangeContext.Tags.Add(firstTag);
                arrangeContext.Tags.Add(secondTag);
                await arrangeContext.SaveChangesAsync();
            }
            //Act & Assert
            using var assertContext = new InsightHubContext(options);
            var sut = new TagServices(assertContext);
            await sut.DeleteTag(1);

            await sut.DeleteTag(2);

            var act = await sut.GetDeletedTags();

            var result = act.ToArray();

            Assert.AreEqual(2, result.Length);
            Assert.AreEqual(firstTag.Name, result[0].Name);
            Assert.AreEqual(secondTag.Name, result[1].Name);
        }
示例#3
0
        public async Task ReturnCorrectTags_WithSortAndSearch_When_ParamValid()
        {
            //Arrange
            var options   = Utils.GetOptions(nameof(ReturnCorrectTags_WithSortAndSearch_When_ParamValid));
            var firstTag  = TestModelsSeeder.SeedTag();
            var secondTag = TestModelsSeeder.SeedTag2();
            var thirdTag  = TestModelsSeeder.SeedTag3();

            using (var arrangeContext = new InsightHubContext(options))
            {
                arrangeContext.Tags.Add(firstTag);
                arrangeContext.Tags.Add(secondTag);
                arrangeContext.Tags.Add(thirdTag);
                await arrangeContext.SaveChangesAsync();
            }
            //Act & Assert
            using var assertContext = new InsightHubContext(options);
            var sut = new TagServices(assertContext);
            var act = await sut.GetTags("name_desc", "Test");

            var result = act.ToArray();

            Assert.AreEqual(3, result.Count());
            Assert.AreEqual(thirdTag.Name, result[0].Name);
        }
示例#4
0
        internal static TemplateServices CreateTestTemplateServices()
        {
            BuildHandler buildHandler = new BuildHandler();
            TagServices  tagServices  = new TagServices(buildHandler);

            return(new TemplateServices(buildHandler, tagServices));
        }
示例#5
0
        public async Task ThrowArgumentException_When_TitleAlreadyExists()
        {
            //Arrange
            var options = Utils.GetOptions(nameof(ThrowArgumentException_When_TitleAlreadyExists));

            var summary     = "Report Summary";
            var description = "Report Description";
            var author      = TestModelsSeeder.SeedUser();
            var industry    = TestModelsSeeder.SeedIndustry();
            var imgURL      = "imageurl";
            var tag         = TestModelsSeeder.SeedTag();
            var report      = TestModelsSeeder.SeedReport();

            using (var arrangeContext = new InsightHubContext(options))
            {
                await arrangeContext.Users.AddAsync(author);

                await arrangeContext.Industries.AddAsync(industry);

                await arrangeContext.Tags.AddAsync(tag);

                await arrangeContext.Reports.AddAsync(report);

                await arrangeContext.SaveChangesAsync();
            }
            //Act & Assert
            using var assertContext = new InsightHubContext(options);
            var sutTags    = new TagServices(assertContext);
            var sutReports = new ReportServices(assertContext, sutTags);
            await Assert.ThrowsExceptionAsync <ArgumentException>(() => sutReports.CreateReport(report.Title, summary, description, author.Email, imgURL, industry.Name, tag.Name));
        }
示例#6
0
        public void TwoTagsFirstWithContentAndPropertySecondTwoProperties()
        {
            TagServices tagServices = new TagServices(new BuildHandler());

            //                                                                                                                       11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111112222222222222222222222222222222
            //                             11111111112222222222333333333344444444445555555555666666666677777777778888888888999999999900000000001111111111222222222233333333334444444444555555555566666666667777777777888888888899999999990000000000111111111122222222223
            //                   012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
            string searchText = "some test text <!-- a_tag_name_START tag0property0='some value' -->some content<!-- a_tag_name_END -->  <!-- a_tag_name_START tag1Property0='another value' tag1Property1='yet another value' --> more content <!-- a_tag_name_END --> and some more text";
            string tagName    = "a_tag_name";

            List <Tag> actualTags = tagServices.ExtractTags(searchText, tagName, true);

            // Check result
            Dictionary <string, string> expectedTag0Properties = new Dictionary <string, string>()
            {
                { "tag0property0", "some value" }
            };
            Tag expectedTag0 = TagUtilities.CreateTestTag(tagName, searchText, 15, 37, 67, 79, 99, 102, "some content", expectedTag0Properties);

            Dictionary <string, string> expectedTag1Properties = new Dictionary <string, string>()
            {
                { "tag1Property0", "another value" }, { "tag1Property1", "yet another value" }
            };
            Tag expectedTag1 = TagUtilities.CreateTestTag(tagName, searchText, 104, 126, 193, 207, 227, 230, " more content ", expectedTag1Properties);

            Assert.True(2 == actualTags.Count);
            TagUtilities.AreTagsSame(expectedTag0, actualTags[0]);
            TagUtilities.AreTagsSame(expectedTag1, actualTags[1]);
        }
        public async Task ApproveReport_When_ParamsValid()
        {
            //Arrange
            var options   = Utils.GetOptions(nameof(ApproveReport_When_ParamsValid));
            var report1   = TestModelsSeeder.SeedReport();
            var industry1 = TestModelsSeeder.SeedIndustry();
            var user      = TestModelsSeeder.SeedUser();
            var tag       = TestModelsSeeder.SeedTag();

            report1.IsPending = true;

            using (var arrangeContext = new InsightHubContext(options))
            {
                await arrangeContext.Reports.AddAsync(report1);

                await arrangeContext.Tags.AddAsync(tag);

                await arrangeContext.Industries.AddAsync(industry1);

                await arrangeContext.Users.AddAsync(user);

                await arrangeContext.SaveChangesAsync();
            }
            //Act & Assert
            using var assertContext = new InsightHubContext(options);
            var sutTag = new TagServices(assertContext);
            var sut    = new ReportServices(assertContext, sutTag);
            await sut.ApproveReport(1);

            Assert.IsFalse(assertContext.Reports.First(u => u.Id == 1).IsPending);
        }
        public async Task ToggleReport_ToFeatured_When_NotFeatured()
        {
            //Arrange
            var options   = Utils.GetOptions(nameof(ToggleReport_ToFeatured_When_NotFeatured));
            var report1   = TestModelsSeeder.SeedReport();
            var industry1 = TestModelsSeeder.SeedIndustry();
            var user      = TestModelsSeeder.SeedUser();
            var tag       = TestModelsSeeder.SeedTag();

            using (var arrangeContext = new InsightHubContext(options))
            {
                await arrangeContext.Reports.AddAsync(report1);

                await arrangeContext.Tags.AddAsync(tag);

                await arrangeContext.Industries.AddAsync(industry1);

                await arrangeContext.Users.AddAsync(user);

                await arrangeContext.SaveChangesAsync();
            }
            //Act & Assert
            using var assertContext = new InsightHubContext(options);
            var sutTag = new TagServices(assertContext);
            var sut    = new ReportServices(assertContext, sutTag);

            Assert.IsFalse(assertContext.Reports.First(u => u.Id == 1).IsFeatured);
            await sut.ToggleFeatured(1);

            Assert.IsTrue(assertContext.Reports.First(u => u.Id == 1).IsFeatured);
        }
示例#9
0
        public async Task DoNot_AddToDownloadsCount_When_AlreadyDownloaded()
        {
            //Arrange
            var options = Utils.GetOptions(nameof(DoNot_AddToDownloadsCount_When_AlreadyDownloaded));
            var user    = TestModelsSeeder.SeedUser();
            var report  = TestModelsSeeder.SeedReport();

            using (var arrangeContext = new InsightHubContext(options))
            {
                await arrangeContext.Users.AddAsync(user);

                await arrangeContext.Reports.AddAsync(report);

                arrangeContext.SaveChanges();
            }
            //Act & Assert
            using var assertContext = new InsightHubContext(options);
            var sutTags = new TagServices(assertContext);
            var sut     = new ReportServices(assertContext, sutTags);
            await sut.AddToDownloadsCount(user.Id, report.Id);

            await sut.AddToDownloadsCount(user.Id, report.Id);

            var count = assertContext.DownloadedReports.Count();

            Assert.AreEqual(1, count);
        }
示例#10
0
        public async Task GetsCorrectReport_When_ParamsValid()
        {
            //Arrange
            var options   = Utils.GetOptions(nameof(GetsCorrectReport_When_ParamsValid));
            var report1   = TestModelsSeeder.SeedReport();
            var industry1 = TestModelsSeeder.SeedIndustry();
            var user      = TestModelsSeeder.SeedUser();
            var tag       = TestModelsSeeder.SeedTag();

            using (var arrangeContext = new InsightHubContext(options))
            {
                await arrangeContext.Reports.AddAsync(report1);

                await arrangeContext.Tags.AddAsync(tag);

                await arrangeContext.Industries.AddAsync(industry1);

                await arrangeContext.Users.AddAsync(user);

                await arrangeContext.SaveChangesAsync();
            }
            //Act & Assert
            using var assertContext = new InsightHubContext(options);
            var sutTags = new TagServices(assertContext);
            var sut     = new ReportServices(assertContext, sutTags);
            var result  = await sut.GetReport(1);

            Assert.AreEqual(report1.Title, result.Title);
            Assert.AreEqual(report1.Summary, result.Summary);
            Assert.AreEqual(report1.Description, result.Description);
            Assert.AreEqual(report1.Author.Email, result.Author.Split(" ").Last());
        }
        public async Task ThrowArgumentException_WhenReportNotExists()
        {
            //Arrange
            var options   = Utils.GetOptions(nameof(ThrowArgumentException_WhenReportNotExists));
            var report1   = TestModelsSeeder.SeedReport();
            var industry1 = TestModelsSeeder.SeedIndustry();
            var user      = TestModelsSeeder.SeedUser();
            var tag       = TestModelsSeeder.SeedTag();

            using (var arrangeContext = new InsightHubContext(options))
            {
                await arrangeContext.Reports.AddAsync(report1);

                await arrangeContext.Tags.AddAsync(tag);

                await arrangeContext.Industries.AddAsync(industry1);

                await arrangeContext.Users.AddAsync(user);

                await arrangeContext.SaveChangesAsync();
            }
            //Act & Assert
            using var assertContext = new InsightHubContext(options);
            var sutTag = new TagServices(assertContext);
            var sut    = new ReportServices(assertContext, sutTag);
            await Assert.ThrowsExceptionAsync <ArgumentNullException>(() => sut.ApproveReport(5));
        }
示例#12
0
        public void TwoTagsOnePropertyTwoProperties()
        {
            TagServices tagServices = new TagServices(new BuildHandler());

            //                                                                                                                       111111111111111111111111111111111111111111111111111
            //                             111111111122222222223333333333444444444455555555556666666666777777777788888888889999999999000000000011111111112222222222333333333344444444445
            //                   0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
            string searchText = "some test text <!-- a_tag_name tag0property0='some value' --> <!-- a_tag_name tag1Property0='another value' tag1Property1='yet another value' --> and some more text";
            string tagName    = "a_tag_name";

            List <Tag> actualTags = tagServices.ExtractTags(searchText, tagName, false);

            // Check result
            Dictionary <string, string> expectedTag0Properties = new Dictionary <string, string>()
            {
                { "tag0property0", "some value" }
            };
            Tag expectedTag0 = TagUtilities.CreateTestTag(tagName, searchText, 15, 31, 61, null, null, null, null, expectedTag0Properties);

            Dictionary <string, string> expectedTag1Properties = new Dictionary <string, string>()
            {
                { "tag1Property0", "another value" }, { "tag1Property1", "yet another value" }
            };
            Tag expectedTag1 = TagUtilities.CreateTestTag(tagName, searchText, 62, 78, 145, null, null, null, null, expectedTag1Properties);

            Assert.True(2 == actualTags.Count);
            TagUtilities.AreTagsSame(expectedTag0, actualTags[0]);
            TagUtilities.AreTagsSame(expectedTag1, actualTags[1]);
        }
示例#13
0
 public PostsController(ForumCategoryServices forumCategoryServices, PostServices postServices, CommentServices commentServices, TagServices tagServices, ThemeServices themeServices)
 {
     _forumCategriesManager = forumCategoryServices;
     _postsManager          = postServices;
     _commentsManager       = commentServices;
     _tagsManager           = tagServices;
     _themesManager         = themeServices;
 }
示例#14
0
        public void EmptyString()
        {
            TagServices tagServices = new TagServices(new BuildHandler());
            List <Tag>  actualTags  = tagServices.ExtractTags("", "a_tag_name", false);

            // Check result
            Assert.IsEmpty(actualTags);
        }
        public void NoTags()
        {
            TagServices tagServices = new TagServices(new BuildHandler());
            List <Tag>  actualTags  = tagServices.ExtractTags("some test text", "a_tag_name", true);

            // Check result
            Assert.IsEmpty(actualTags);
        }
        public async Task ReturnPendingReports_WithSearch_When_ParamValid()
        {
            //Arrange
            var options   = Utils.GetOptions(nameof(ReturnPendingReports_WithSearch_When_ParamValid));
            var report1   = TestModelsSeeder.SeedReport();
            var industry1 = TestModelsSeeder.SeedIndustry();
            var user      = TestModelsSeeder.SeedUser();
            var tag       = TestModelsSeeder.SeedTag();
            var tag2      = TestModelsSeeder.SeedTag2();
            var tag3      = TestModelsSeeder.SeedTag3();
            var report2   = TestModelsSeeder.SeedReport2();
            var industry2 = TestModelsSeeder.SeedIndustry2();
            var report3   = TestModelsSeeder.SeedReport3();
            var industry3 = TestModelsSeeder.SeedIndustry3();

            report1.IsPending = true;
            report2.IsPending = true;

            using (var arrangeContext = new InsightHubContext(options))
            {
                await arrangeContext.Reports.AddAsync(report1);

                await arrangeContext.Tags.AddAsync(tag);

                await arrangeContext.Industries.AddAsync(industry1);

                await arrangeContext.Reports.AddAsync(report2);

                await arrangeContext.Tags.AddAsync(tag2);

                await arrangeContext.Industries.AddAsync(industry2);

                await arrangeContext.Reports.AddAsync(report3);

                await arrangeContext.Tags.AddAsync(tag3);

                await arrangeContext.Industries.AddAsync(industry3);

                await arrangeContext.Users.AddAsync(user);

                await arrangeContext.SaveChangesAsync();
            }
            //Act & Assert
            using var assertContext = new InsightHubContext(options);
            var sutTags = new TagServices(assertContext);
            var sut     = new ReportServices(assertContext, sutTags);
            var act     = await sut.GetPendingReports(null, "TestReport");

            var result = act.ToArray();

            Assert.AreEqual(2, result.Length);
            Assert.AreEqual(report1.Title, result[0].Title);
            Assert.AreEqual(report1.Summary, result[0].Summary);
            Assert.IsTrue(result[0].Title.Contains("TestReport"));
            Assert.AreEqual(report2.Title, result[1].Title);
            Assert.AreEqual(report2.Summary, result[1].Summary);
            Assert.IsTrue(result[1].Title.Contains("TestReport"));
        }
        public async Task GetMostDownloadedReports_When_ParamsValid()
        {
            //Arrange
            var options   = Utils.GetOptions(nameof(GetMostDownloadedReports_When_ParamsValid));
            var report1   = TestModelsSeeder.SeedReport();
            var industry1 = TestModelsSeeder.SeedIndustry();
            var user      = TestModelsSeeder.SeedUser();
            var tag       = TestModelsSeeder.SeedTag();
            var tag2      = TestModelsSeeder.SeedTag2();
            var tag3      = TestModelsSeeder.SeedTag3();
            var report2   = TestModelsSeeder.SeedReport2();
            var industry2 = TestModelsSeeder.SeedIndustry2();
            var report3   = TestModelsSeeder.SeedReport3();
            var industry3 = TestModelsSeeder.SeedIndustry3();

            using (var arrangeContext = new InsightHubContext(options))
            {
                await arrangeContext.Reports.AddAsync(report1);

                await arrangeContext.Tags.AddAsync(tag);

                await arrangeContext.Industries.AddAsync(industry1);

                await arrangeContext.Reports.AddAsync(report2);

                await arrangeContext.Tags.AddAsync(tag2);

                await arrangeContext.Industries.AddAsync(industry2);

                await arrangeContext.Reports.AddAsync(report3);

                await arrangeContext.Tags.AddAsync(tag3);

                await arrangeContext.Industries.AddAsync(industry3);

                await arrangeContext.Users.AddAsync(user);

                await arrangeContext.SaveChangesAsync();
            }
            //Act & Assert
            using var assertContext = new InsightHubContext(options);
            var sutTags = new TagServices(assertContext);
            var sut     = new ReportServices(assertContext, sutTags);
            var act     = await sut.GetMostDownloadedReports();

            var result = act.ToArray();

            Assert.AreEqual(3, result.Length);
            Assert.AreEqual(report2.Title, result[0].Title);
            Assert.AreEqual(report2.Summary, result[0].Summary);
            Assert.IsTrue(result[0].DownloadsCount > result[1].DownloadsCount);
            Assert.AreEqual(report1.Title, result[1].Title);
            Assert.AreEqual(report1.Summary, result[1].Summary);
            Assert.IsTrue(result[1].DownloadsCount > result[2].DownloadsCount);
            Assert.AreEqual(report3.Title, result[2].Title);
            Assert.AreEqual(report3.Summary, result[2].Summary);
        }
示例#18
0
 public ForumController(ForumCategoryServices forumCategoryServices, PostServices postServices, CommentServices commentServices, TagServices tagServices, ThemeServices themeServices, ApplicationUserManager userManager)
 {
     _forumCategriesManager = forumCategoryServices;
     _postsManager          = postServices;
     _commentsManager       = commentServices;
     _tagsManager           = tagServices;
     _themesManager         = themeServices;
     _userManager           = userManager;
 }
        public async Task ThrowArgumentNullException_When_NotExists()
        {
            //Arrange
            var options = Utils.GetOptions(nameof(ThrowArgumentNullException_When_NotExists));

            //Act & Assert
            using var assertContext = new InsightHubContext(options);
            var sut = new TagServices(assertContext);
            await Assert.ThrowsExceptionAsync <ArgumentNullException>(() => sut.UpdateTag(5, "n"));
        }
        public async Task Throw_When_ParamsNotValid()
        {
            //Arrange
            var options = Utils.GetOptions(nameof(Throw_When_ParamsNotValid));

            //Act & Assert
            using var assertContext = new InsightHubContext(options);
            var sut = new TagServices(assertContext);
            await Assert.ThrowsExceptionAsync <ArgumentNullException>(async() => await sut.DeleteTag(5));
        }
        public async Task ReturnNotDeletedReport_WithSortAndSearchAndIndustry_When_ParamValid()
        {
            //Arrange
            var options   = Utils.GetOptions(nameof(ReturnNotDeletedReport_WithSortAndSearchAndIndustry_When_ParamValid));
            var report1   = TestModelsSeeder.SeedReport();
            var industry1 = TestModelsSeeder.SeedIndustry();
            var user      = TestModelsSeeder.SeedUser();
            var tag       = TestModelsSeeder.SeedTag();
            var tag2      = TestModelsSeeder.SeedTag2();
            var tag3      = TestModelsSeeder.SeedTag3();
            var report2   = TestModelsSeeder.SeedReport2();
            var industry2 = TestModelsSeeder.SeedIndustry2();
            var report3   = TestModelsSeeder.SeedReport3();
            var industry3 = TestModelsSeeder.SeedIndustry3();

            using (var arrangeContext = new InsightHubContext(options))
            {
                await arrangeContext.Reports.AddAsync(report1);

                await arrangeContext.Tags.AddAsync(tag);

                await arrangeContext.Industries.AddAsync(industry1);

                await arrangeContext.Reports.AddAsync(report2);

                await arrangeContext.Tags.AddAsync(tag2);

                await arrangeContext.Industries.AddAsync(industry2);

                await arrangeContext.Reports.AddAsync(report3);

                await arrangeContext.Tags.AddAsync(tag3);

                await arrangeContext.Industries.AddAsync(industry3);

                await arrangeContext.Users.AddAsync(user);

                await arrangeContext.SaveChangesAsync();
            }
            //Act & Assert
            using var assertContext = new InsightHubContext(options);
            var sutTags = new TagServices(assertContext);
            var sut     = new ReportServices(assertContext, sutTags);
            var act     = await sut.GetReports("title_desc", "TestReport", null, "Industry", null);

            var result = act.ToList();

            Assert.AreEqual(3, result.Count());
            Assert.AreEqual(report3.Title, result[0].Title);
            Assert.IsTrue(result[0].Industry.Contains("Industry"));
            Assert.AreEqual(report2.Title, result[1].Title);
            Assert.IsTrue(result[1].Industry.Contains("Industry"));
            Assert.AreEqual(report1.Title, result[2].Title);
            Assert.IsTrue(result[2].Industry.Contains("Industry"));
        }
示例#22
0
        public async Task Throw_When_IdIsInvalid()
        {
            //Arrange
            var options = Utils.GetOptions(nameof(Throw_When_IdIsInvalid));

            //Act & Assert
            using var assertContext = new InsightHubContext(options);
            var sutTag = new TagServices(assertContext);
            var sut    = new ReportServices(assertContext, sutTag);
            await sut.GetReport(5);
        }
        public void OneTagNotClosed()
        {
            TagServices tagServices = new TagServices(new BuildHandler());

            //                             11111111112222222222333333333344444444445555555555666666666677777777778888888888999
            //                   012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012
            string searchText = "some test text <!-- a_tag_name_START -->some content<!-- a_tag_name_ZEND --> and some more text";
            string tagName    = "a_tag_name";

            BuildException buildException = Assert.Throws <BuildException>(() => { tagServices.ExtractTags(searchText, tagName, true); });

            // Check result
            Assert.AreEqual("Missing end tag", buildException.Message);
        }
示例#24
0
        public void OneTagMissingCommentEnd()
        {
            TagServices tagServices = new TagServices(new BuildHandler());

            //                             1111111111222222222233333333334444444444555
            //                   01234567890123456789012345678901234567890123456789012
            string searchText = "some test text <!-- a_tag_name and some more text";
            string tagName    = "a_tag_name";

            BuildException buildException = Assert.Throws <BuildException>(() => { tagServices.ExtractTags(searchText, tagName, false); });

            // Check result
            Assert.AreEqual(tagName + " tag not closed", buildException.Message);
        }
示例#25
0
        public void OneTagNoSpaceBetweenCommentAndTagName()
        {
            TagServices tagServices = new TagServices(new BuildHandler());

            //                             1111111111222222222233333333334444444444555
            //                   01234567890123456789012345678901234567890123456789012
            string searchText = "some test text <!--a_tag_name--> and some more text";
            string tagName    = "a_tag_name";

            List <Tag> actualTags = tagServices.ExtractTags(searchText, tagName, false);

            // Check result
            Assert.True(0 == actualTags.Count);
        }
示例#26
0
        public void OneTagWithOnePropertyMissingSecondQuote()
        {
            TagServices tagServices = new TagServices(new BuildHandler());

            //                             11111111112222222222333333333344444444445555555555666666666677777777778888888888999
            //                   012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012
            string searchText = "some test text <!-- a_tag_name property0=' --> and some more text";
            string tagName    = "a_tag_name";

            BuildException buildException = Assert.Throws <BuildException>(() => { tagServices.ExtractTags(searchText, tagName, false); });

            // Check result
            Assert.AreEqual("Missing second single quote", buildException.Message);
        }
        public async Task GetsCorrectReports_When_ParamsValid()
        {
            //Arrange
            var options   = Utils.GetOptions(nameof(GetsCorrectReports_When_ParamsValid));
            var report1   = TestModelsSeeder.SeedReport();
            var industry1 = TestModelsSeeder.SeedIndustry();
            var user      = TestModelsSeeder.SeedUser();
            var tag       = TestModelsSeeder.SeedTag();
            var tag2      = TestModelsSeeder.SeedTag2();
            var tag3      = TestModelsSeeder.SeedTag3();
            var report2   = TestModelsSeeder.SeedReport2();
            var industry2 = TestModelsSeeder.SeedIndustry2();
            var report3   = TestModelsSeeder.SeedReport3();
            var industry3 = TestModelsSeeder.SeedIndustry3();

            report1.IsDeleted = true;

            using (var arrangeContext = new InsightHubContext(options))
            {
                await arrangeContext.Reports.AddAsync(report1);

                await arrangeContext.Tags.AddAsync(tag);

                await arrangeContext.Industries.AddAsync(industry1);

                await arrangeContext.Reports.AddAsync(report2);

                await arrangeContext.Tags.AddAsync(tag2);

                await arrangeContext.Industries.AddAsync(industry2);

                await arrangeContext.Reports.AddAsync(report3);

                await arrangeContext.Tags.AddAsync(tag3);

                await arrangeContext.Industries.AddAsync(industry3);

                await arrangeContext.Users.AddAsync(user);

                await arrangeContext.SaveChangesAsync();
            }
            //Act & Assert
            using var assertContext = new InsightHubContext(options);
            var sutTags = new TagServices(assertContext);
            var sut     = new ReportServices(assertContext, sutTags);
            var result  = await sut.GetReports(null, null, null, null, null);

            Assert.AreEqual(2, result.Count);
        }
示例#28
0
        public async Task ReturnCorrectNewTag_When_ParamValid()
        {
            //Arrange
            var options = Utils.GetOptions(nameof(ReturnCorrectNewTag_When_ParamValid));
            var tagName = "space";

            //Act & Assert
            using var assertContext = new InsightHubContext(options);
            var sut = new TagServices(assertContext);
            var act = await sut.CreateTag(tagName);

            var result = assertContext.Tags.FirstOrDefault(t => t.Name == tagName);

            Assert.AreEqual(tagName, result.Name);
        }
示例#29
0
        public async Task UpdateReport_WhenParamsAreValid()
        {
            //Arrange
            var options        = Utils.GetOptions(nameof(UpdateReport_WhenParamsAreValid));
            var newTitle       = "New Report Title";
            var newSummary     = "New Report Summary";
            var newDescription = "New Report Description";
            var newIndustry    = TestModelsSeeder.SeedIndustry2();
            var newImgURL      = "imageurl";
            var newTag         = TestModelsSeeder.SeedTag2();

            var report1   = TestModelsSeeder.SeedReport();
            var industry1 = TestModelsSeeder.SeedIndustry();
            var user      = TestModelsSeeder.SeedUser();
            var tag       = TestModelsSeeder.SeedTag();

            using (var arrangeContext = new InsightHubContext(options))
            {
                await arrangeContext.Users.AddAsync(user);

                await arrangeContext.Industries.AddAsync(industry1);

                await arrangeContext.Industries.AddAsync(newIndustry);

                await arrangeContext.Tags.AddAsync(tag);

                await arrangeContext.Tags.AddAsync(newTag);

                await arrangeContext.Reports.AddAsync(report1);

                await arrangeContext.SaveChangesAsync();
            }
            //Act & Assert
            using var assertContext = new InsightHubContext(options);
            var sutTags    = new TagServices(assertContext);
            var sutReports = new ReportServices(assertContext, sutTags);
            var act        = await sutReports.UpdateReport(1, newTitle, newSummary, newDescription, newImgURL, newIndustry.Name, newTag.Name);

            var result = assertContext.Reports.FirstOrDefault(t => t.Title == newTitle);

            Assert.AreEqual(newTitle, result.Title);
            Assert.AreEqual(newSummary, result.Summary);
            Assert.AreEqual(newDescription, result.Description);
            Assert.AreEqual(newIndustry.Name, result.Industry.Name);
            Assert.AreEqual(newImgURL, result.ImgUrl);
            Assert.AreEqual(newTag.Name, result.ReportTags.First().Tag.Name);
        }
示例#30
0
        public async Task ThrowArgumentException_WhenTitleAlreadyExists()
        {
            //Arrange
            var options        = Utils.GetOptions(nameof(ThrowArgumentException_WhenTitleAlreadyExists));
            var newSummary     = "New Report Summary";
            var newDescription = "New Report Description";
            var newIndustry    = TestModelsSeeder.SeedIndustry2();
            var newImgURL      = "imageurl";
            var newTag         = TestModelsSeeder.SeedTag2();

            var report1   = TestModelsSeeder.SeedReport();
            var industry1 = TestModelsSeeder.SeedIndustry();
            var user      = TestModelsSeeder.SeedUser();
            var tag       = TestModelsSeeder.SeedTag();

            var report2   = TestModelsSeeder.SeedReport2();
            var industry2 = TestModelsSeeder.SeedIndustry3();
            var tag2      = TestModelsSeeder.SeedTag3();

            using (var arrangeContext = new InsightHubContext(options))
            {
                await arrangeContext.Users.AddAsync(user);

                await arrangeContext.Industries.AddAsync(industry1);

                await arrangeContext.Industries.AddAsync(industry2);

                await arrangeContext.Industries.AddAsync(newIndustry);

                await arrangeContext.Tags.AddAsync(tag);

                await arrangeContext.Tags.AddAsync(newTag);

                await arrangeContext.Tags.AddAsync(tag2);

                await arrangeContext.Reports.AddAsync(report1);

                await arrangeContext.Reports.AddAsync(report2);

                await arrangeContext.SaveChangesAsync();
            }
            //Act & Assert
            using var assertContext = new InsightHubContext(options);
            var sutTags    = new TagServices(assertContext);
            var sutReports = new ReportServices(assertContext, sutTags);
            await Assert.ThrowsExceptionAsync <ArgumentException>(() => sutReports.UpdateReport(1, report2.Title, newSummary, newDescription, newImgURL, newIndustry.Name, newTag.Name));
        }