Пример #1
0
        public void ReplaceSettingWorksCorrectlyForTags()
        {
            var job = new Job
            {
                Name       = "name",
                Url        = "URL",
                Replace    = true,
                Selections = new List <Selection>
                {
                    new Selection
                    {
                        Output     = OutputType.Tag,
                        SearchPath = "#templateInfo h2",
                        TagName    = "tagname"
                    }
                }
            };

            var httpWrapperMock = new Mock <IHttpWrapper>();

            httpWrapperMock.Setup(x => x.GetPageContent(It.IsAny <string>()))
            .Returns(Task.FromResult(StaticWebPageContent.Html));

            var jobRepositoryMock = new Mock <IJobRepository>();

            var dbContextProvider = MockedDbContextFactory.GetMock();
            var tagRepository     = new TagRepository(dbContextProvider.Object);

            var configurationMock = new Mock <IConfigurationProvider>();

            var jobProcessor = new JobProcessor(tagRepository, jobRepositoryMock.Object, httpWrapperMock.Object, configurationMock.Object);

            jobProcessor.ProcessJob(job).Wait();

            int tagId;

            using (var context = dbContextProvider.Object.GetContext())
            {
                tagId = context.Tags.First().Id;
            }

            tagRepository.Clear("URL");

            jobProcessor.ProcessJob(job).Wait();

            using (var context = dbContextProvider.Object.GetContext())
            {
                Assert.Equal(1, context.Sites.Count());
                Assert.Equal(1, context.Tags.Count());
                Assert.True(context.Tags.First().Id > tagId);
            }
        }
Пример #2
0
        public void SearchinTagsRespectsAccessLevel()
        {
            var dbContextProvider = MockedDbContextFactory.GetMock();

            var tagRepository = new TagRepository(dbContextProvider.Object);

            tagRepository.AddTag("URL", "NAME", "VALUE", 1);
            tagRepository.AddTag("URL", "NAME", "VALUE2", 2);
            tagRepository.AddTag("URL2", "NAME", "VALUE3", 3);
            tagRepository.AddTag("URL2", "NAME", "VALUE4", 4);

            var tags = tagRepository.SearchTags("a", 3);

            Assert.Equal(2, tags.Count);
            Assert.True(tags.Any(t => t.Value == "VALUE") &&
                        tags.Any(t => t.Value == "VALUE2"));
        }
Пример #3
0
        public void TagsAreClearedCorrectly()
        {
            var dbContextProvider = MockedDbContextFactory.GetMock();

            var tagRepository = new TagRepository(dbContextProvider.Object);

            tagRepository.AddTag("URL", "NAME", "VALUE", 1);
            tagRepository.AddTag("URL", "NAME", "VALUE2", 1);
            tagRepository.AddTag("URL", "NAME", "VALUE3", 1);
            tagRepository.AddTag("URL", "NAME", "VALUE4", 1);

            tagRepository.Clear("URL");

            using (var context = dbContextProvider.Object.GetContext())
            {
                Assert.Equal(1, context.Sites.Count());
                Assert.Equal(0, context.Tags.Count());
            }
        }
Пример #4
0
        public void AddingTagCreatesTagAndSiteInDatabase()
        {
            var dbContextProvider = MockedDbContextFactory.GetMock();

            var tagRepository = new TagRepository(dbContextProvider.Object);

            tagRepository.AddTag("URL", "NAME", "VALUE", 1);

            using (var context = dbContextProvider.Object.GetContext())
            {
                Assert.Equal(1, context.Sites.Count());
                Assert.Equal(1, context.Tags.Count());

                Assert.Equal("URL", context.Sites.First().Url);
                Assert.Equal("NAME", context.Tags.First().Name);
                Assert.Equal("VALUE", context.Tags.First().Value);
                Assert.Equal("URL", context.Tags.Include(x => x.Site).First().Site.Url);
            }
        }