Beispiel #1
0
        public void allpagescreatedby_should_load_from_cache()
        {
            string adminCacheKey  = CacheKeys.AllPagesCreatedByKey("admin");
            string editorCacheKey = CacheKeys.AllPagesCreatedByKey("editor");

            // Arrange
            SettingsRepositoryMock settingsRepository = new SettingsRepositoryMock();
            PageRepositoryMock     pageRepository     = new PageRepositoryMock();
            CacheMock listCache = new CacheMock();

            PageService   pageService = CreatePageService(null, listCache, settingsRepository, pageRepository);
            PageViewModel adminModel  = CreatePageViewModel();
            PageViewModel editorModel = CreatePageViewModel("editor");

            listCache.Add(CacheKeys.AllPagesCreatedByKey("admin"), new List <PageViewModel>()
            {
                adminModel
            }, new CacheItemPolicy());
            listCache.Add(CacheKeys.AllPagesCreatedByKey("editor"), new List <PageViewModel>()
            {
                editorModel
            }, new CacheItemPolicy());

            // Act
            IEnumerable <PageViewModel> actualList = pageService.AllPagesCreatedBy("admin");

            // Assert
            Assert.That(actualList, Contains.Item(adminModel));
            Assert.That(actualList, Is.Not.Contains(editorModel));
        }
        public void Setup()
        {
            _container = new MocksAndStubsContainer();

            _applicationSettings = _container.ApplicationSettings;
            _context             = _container.UserContext;

            _settingsRepository = _container.SettingsRepository;
            _userRepository     = _container.UserRepository;
            _pageRepository     = _container.PageRepository;

            _settingsService = _container.SettingsService;
            _userService     = _container.UserService;
            _pageCache       = _container.PageViewModelCache;
            _listCache       = _container.ListCache;
            _siteCache       = _container.SiteCache;
            _cache           = _container.MemoryCache;
            _container.ClearCache();

            _pageService   = _container.PageService;
            _wikiImporter  = new WikiImporterMock();
            _pluginFactory = _container.PluginFactory;
            _searchService = _container.SearchService;

            // There's no point mocking WikiExporter (and turning it into an interface) as
            // a lot of usefulness of these tests would be lost when creating fake Streams and zip files.
            _wikiExporter = new WikiExporter(_applicationSettings, _pageService, _settingsRepository, _pageRepository, _userRepository, _pluginFactory);
            _wikiExporter.ExportFolder = AppDomain.CurrentDomain.BaseDirectory;

            _toolsController = new ToolsController(_applicationSettings, _userService, _settingsService, _pageService,
                                                   _searchService, _context, _listCache, _pageCache, _wikiImporter,
                                                   _pluginFactory, _wikiExporter);
        }
Beispiel #3
0
        public void allpagescreatedby_should_add_to_cache_when_cache_is_empty()
        {
            // Arrange
            string adminCacheKey = CacheKeys.AllPagesCreatedByKey("admin");

            SettingsRepositoryMock settingsRepository = new SettingsRepositoryMock();
            PageRepositoryMock     pageRepository     = new PageRepositoryMock();

            pageRepository.AddNewPage(new Page()
            {
                Title = "1"
            }, "text", "admin", DateTime.UtcNow);
            pageRepository.AddNewPage(new Page()
            {
                Title = "2"
            }, "text", "admin", DateTime.UtcNow);
            pageRepository.AddNewPage(new Page()
            {
                Title = "3"
            }, "text", "editor", DateTime.UtcNow);

            CacheMock   listCache   = new CacheMock();
            PageService pageService = CreatePageService(null, listCache, settingsRepository, pageRepository);

            // Act
            pageService.AllPagesCreatedBy("admin");

            // Assert
            Assert.That(listCache.CacheItems.Count, Is.EqualTo(1));
            Assert.That(listCache.CacheItems.FirstOrDefault().Key, Is.EqualTo(adminCacheKey));
        }
Beispiel #4
0
        public void alltags_should_add_to_cache_when_cache_is_empty()
        {
            // Arrange
            SettingsRepositoryMock settingsRepository = new SettingsRepositoryMock();
            PageRepositoryMock     pageRepository     = new PageRepositoryMock();

            pageRepository.AddNewPage(new Page()
            {
                Tags = "tag1;tag2"
            }, "text", "admin", DateTime.UtcNow);
            pageRepository.AddNewPage(new Page()
            {
                Tags = "tag3;tag4"
            }, "text", "admin", DateTime.UtcNow);

            CacheMock   listCache   = new CacheMock();
            PageService pageService = CreatePageService(null, listCache, settingsRepository, pageRepository);

            // Act
            pageService.AllTags();

            // Assert
            Assert.That(listCache.CacheItems.Count, Is.EqualTo(1));
            Assert.That(listCache.CacheItems.FirstOrDefault().Key, Is.EqualTo(CacheKeys.AllTags()));
        }
Beispiel #5
0
        public void deletepage_should_clear_list_and_pagesummary_caches()
        {
            // Arrange
            SettingsRepositoryMock settingsRepository = new SettingsRepositoryMock();
            PageRepositoryMock     pageRepository     = new PageRepositoryMock();

            pageRepository.AddNewPage(new Page(), "text", "admin", DateTime.UtcNow);
            CacheMock pageCache = new CacheMock();
            CacheMock listCache = new CacheMock();

            PageService   pageService   = CreatePageService(pageCache, listCache, settingsRepository, pageRepository);
            PageViewModel expectedModel = CreatePageViewModel();

            AddPageCacheItem(pageCache, "key", expectedModel);
            AddListCacheItem(listCache, "key", new List <string>()
            {
                "tag1", "tag2"
            });

            // Act
            pageService.DeletePage(1);

            // Assert
            Assert.That(pageCache.CacheItems.Count, Is.EqualTo(0));
            Assert.That(listCache.CacheItems.Count, Is.EqualTo(0));
        }
Beispiel #6
0
        public void getbyid_should_add_to_cache_when_pagesummary_does_not_exist_in_cache()
        {
            // Arrange
            SettingsRepositoryMock settingsRepository = new SettingsRepositoryMock();
            PageRepositoryMock     pageRepository     = new PageRepositoryMock();
            CacheMock   pageModelCache = new CacheMock();
            PageService pageService    = CreatePageService(pageModelCache, null, settingsRepository, pageRepository);

            PageViewModel expectedModel = CreatePageViewModel();

            expectedModel = pageService.AddPage(expectedModel);             // get it back to update the version no.

            // Act
            pageService.GetById(1);

            // Assert
            CacheItem cacheItem = pageModelCache.CacheItems.First();
            string    cacheKey  = CacheKeys.PageViewModelKey(1, PageViewModelCache.LATEST_VERSION_NUMBER);

            Assert.That(cacheItem.Key, Is.EqualTo(cacheKey));

            PageViewModel actualModel = (PageViewModel)cacheItem.Value;

            Assert.That(actualModel.Id, Is.EqualTo(expectedModel.Id));
            Assert.That(actualModel.VersionNumber, Is.EqualTo(expectedModel.VersionNumber));
            Assert.That(actualModel.Title, Is.EqualTo(expectedModel.Title));
        }
Beispiel #7
0
        public void AllPages_Should_Add_To_Cache_When_Cache_Is_Empty(bool loadPageContent)
        {
            // Arrange
            string cacheKey = (loadPageContent) ? (CacheKeys.AllPagesWithContent()) : (CacheKeys.AllPages());

            SettingsRepositoryMock settingsRepository = new SettingsRepositoryMock();
            PageRepositoryMock     pageRepository     = new PageRepositoryMock();

            pageRepository.AddNewPage(new Page()
            {
                Title = "1"
            }, "text", "admin", DateTime.UtcNow);
            pageRepository.AddNewPage(new Page()
            {
                Title = "2"
            }, "text", "admin", DateTime.UtcNow);

            CacheMock   listCache   = new CacheMock();
            PageService pageService = CreatePageService(null, listCache, settingsRepository, pageRepository);

            // Act
            pageService.AllPages(loadPageContent);

            // Assert
            Assert.That(listCache.CacheItems.Count, Is.EqualTo(1));
            Assert.That(listCache.CacheItems.FirstOrDefault().Key, Is.EqualTo(cacheKey));
        }
Beispiel #8
0
        public void Setup()
        {
            _container = new MocksAndStubsContainer();

            _repositoryFactory  = _container.RepositoryFactory;
            _settingsRepository = _container.SettingsRepository;
            _settingsService    = _container.SettingsService;
        }
Beispiel #9
0
        public void Setup()
        {
            _container = new MocksAndStubsContainer();

            _applicationSettings = _container.ApplicationSettings;
            _settingsRepository  = _container.SettingsRepository;
            _emailClientMock     = _container.EmailClient;
        }
        public void Setup()
        {
            _container = new MocksAndStubsContainer();

            _container.SettingsRepository.SiteSettings.PluginLastSaveDate = _pluginLastSavedDate;

            _pluginFactory      = _container.PluginFactory;
            _settingsRepository = _container.SettingsRepository;
            _pageRepository     = _container.PageRepository;

            _settingsService = _container.SettingsService;
        }
Beispiel #11
0
        public void Setup()
        {
            _container = new MocksAndStubsContainer();

            _pluginFactory               = _container.PluginFactory;
            _appSettings                 = _container.ApplicationSettings;
            _appSettings.Installed       = true;
            _pageRepository              = _container.PageRepository;
            _settingsRepository          = _container.SettingsRepository;
            _markupConverter             = _container.MarkupConverter;
            _markupConverter.UrlResolver = new UrlResolverMock();
        }
Beispiel #12
0
        public async Task SettingRepositoryAllSettingsMocked()
        {
            var repo   = new SettingsRepositoryMock();
            var values = Enum.GetValues(typeof(SettingKey));

            foreach (var value in values)
            {
                var enu     = (SettingKey)value;
                var setting = await repo.GetSettingByKeyAsync(enu);

                Assert.IsNotNull(setting, enu + " setting is null!");
            }
        }
Beispiel #13
0
        public void Settings_Should_Throw_Exception_If_Id_Is_Not_Set()
        {
            // Arrange
            Mock <IPluginCache> pluginCacheMock = new Mock <IPluginCache>();
            var settingsRepositoryMock          = new SettingsRepositoryMock();

            TextPluginStub plugin = new TextPluginStub("", "", "", "");

            plugin.PluginCache = pluginCacheMock.Object;
            plugin.Repository  = settingsRepositoryMock;

            // Act + Assert
            PluginSettings actualPluginSettings = plugin.Settings;
        }
        public void Setup()
        {
            _container = new MocksAndStubsContainer();

            _applicationSettings = _container.ApplicationSettings;
            _applicationSettings.UseHtmlWhiteList = true;
            _applicationSettings.CustomTokensPath = Path.Combine(TestConstants.WEB_PATH, "App_Data", "customvariables.xml");

            _settingsRepository = _container.SettingsRepository;
            _pageRepository     = _container.PageRepository;

            _pluginFactory               = _container.PluginFactory;
            _markupConverter             = _container.MarkupConverter;
            _markupConverter.UrlResolver = new UrlResolverMock();
        }
Beispiel #15
0
        public void Setup()
        {
            _container           = new MocksAndStubsContainer();
            _applicationSettings = _container.ApplicationSettings;

            _settingsRepository = _container.SettingsRepository;
            _pageRepository     = _container.PageRepository;
            _userRepository     = _container.UserRepository;

            _pageService   = _container.PageService;
            _pluginFactory = _container.PluginFactory;

            _wikiExporter = new WikiExporter(_applicationSettings, _pageService, _settingsRepository, _pageRepository, _userRepository, _pluginFactory);
            _wikiExporter.ExportFolder = AppDomain.CurrentDomain.BaseDirectory;
        }
Beispiel #16
0
        public void Setup()
        {
            _container = new MocksAndStubsContainer();

            _applicationSettings = _container.ApplicationSettings;
            _context             = _container.UserContext;

            _settingsRepository = _container.SettingsRepository;
            _pageRepository     = _container.PageRepository;

            _settingsService = _container.SettingsService;
            _userService     = _container.UserService;
            _pageService     = _container.PageService;

            _helpController = new HelpController(_applicationSettings, _userService, _context, _settingsService, _pageService);
        }
Beispiel #17
0
        public void should_export_siteconfiguration_and_plugin_settings()
        {
            // Arrange
            var settingsRepository = new SettingsRepositoryMock();

            settingsRepository.SiteSettings.PluginLastSaveDate = new DateTime(2013, 11, 09, 0, 0, 0);
            settingsRepository.SiteSettings.AllowedFileTypes   = ".exe,.vbscript";
            settingsRepository.SiteSettings.MenuMarkup         = "markup ```''' \r\n";

            // Plugins setup
            SiteCache siteCache = new SiteCache(new CacheMock());

            TextPluginStub plugin1 = new TextPluginStub("fake-plugin1", "fake plugin1", "description 1", "1.1");

            plugin1.PluginCache        = siteCache;
            plugin1.Repository         = settingsRepository;
            plugin1.Settings.IsEnabled = true;
            plugin1.Settings.SetValue("key1", "value1");
            plugin1.Settings.SetValue("key2", "value2");

            TextPluginStub plugin2 = new TextPluginStub("fake-plugin2", "fake plugin2", "description 2", "2.1");

            plugin2.PluginCache = siteCache;
            plugin2.Repository  = settingsRepository;

            PluginFactoryMock pluginFactory = new PluginFactoryMock();

            pluginFactory.TextPlugins.Add(plugin1);
            pluginFactory.TextPlugins.Add(plugin2);

            // SqlExportBuilder
            SqlExportBuilder builder = new SqlExportBuilder(settingsRepository, new UserRepositoryMock(), new PageRepositoryMock(), pluginFactory);

            builder.IncludeConfiguration = true;
            builder.IncludePages         = false;

            string expectedSql = ReadEmbeddedResource("expected-siteconfiguration-export.sql");

            expectedSql = expectedSql.Replace("{AppVersion}", ApplicationSettings.ProductVersion);

            // Act
            string actualSql = builder.Export();

            // Assert
            Assert.That(actualSql, Is.EqualTo(expectedSql), actualSql);
        }
Beispiel #18
0
        public void settings_should_default_version_to_1_if_version_is_empty()
        {
            // Arrange
            Mock <IPluginCache> pluginCacheMock = new Mock <IPluginCache>();
            var settingsRepositoryMock          = new SettingsRepositoryMock();

            TextPluginStub plugin = new TextPluginStub("id", "name", "desc", "");

            plugin.PluginCache = pluginCacheMock.Object;
            plugin.Repository  = settingsRepositoryMock;

            // Act
            PluginSettings actualPluginSettings = plugin.Settings;

            // Assert
            Assert.That(actualPluginSettings.Version, Is.EqualTo("1.0"));
        }
Beispiel #19
0
        public void internal_links_should_resolve_with_id()
        {
            // Bug #87

            // Arrange
            Page page = new Page()
            {
                Id = 1, Title = "My first page"
            };

            var settingsRepository = new SettingsRepositoryMock();

            settingsRepository.SiteSettings = new SiteSettings()
            {
                MarkupType = "Markdown"
            };

            PageRepositoryMock pageRepositoryStub = new PageRepositoryMock();

            pageRepositoryStub.AddNewPage(page, "My first page", "admin", DateTime.UtcNow);

            ApplicationSettings settings = new ApplicationSettings();

            settings.Installed = true;

            UrlResolverMock resolver = new UrlResolverMock();

            resolver.InternalUrl = "blah";
            MarkupConverter converter = new MarkupConverter(settings, settingsRepository, pageRepositoryStub, _pluginFactory);

            converter.UrlResolver = resolver;

            string markdownText        = "[Link](My-first-page)";
            string invalidMarkdownText = "[Link](My first page)";

            // Act
            string expectedHtml            = "<p><a href=\"blah\">Link</a></p>\n";
            string expectedInvalidLinkHtml = "<p>[Link](My first page)</p>\n";

            string actualHtml            = converter.ToHtml(markdownText);
            string actualHtmlInvalidLink = converter.ToHtml(invalidMarkdownText);

            // Assert
            Assert.That(actualHtml, Is.EqualTo(expectedHtml));
            Assert.That(actualHtmlInvalidLink, Is.EqualTo(expectedInvalidLinkHtml));
        }
Beispiel #20
0
        public void settings_should_create_instance_when_repository_has_no_settings()
        {
            // Arrange
            Mock <IPluginCache> pluginCacheMock = new Mock <IPluginCache>();
            var settingsRepositoryMock          = new SettingsRepositoryMock();

            TextPluginStub plugin = new TextPluginStub();

            plugin.PluginCache = pluginCacheMock.Object;
            plugin.Repository  = settingsRepositoryMock;

            // Act
            PluginSettings actualPluginSettings = plugin.Settings;

            // Assert
            Assert.That(actualPluginSettings, Is.Not.Null);
            Assert.That(actualPluginSettings.Values.Count(), Is.EqualTo(0));
        }
        public void Setup()
        {
            _container = new MocksAndStubsContainer();
            _container.ClearCache();

            _applicationSettings = _container.ApplicationSettings;
            _applicationSettings.AttachmentsFolder = AppDomain.CurrentDomain.BaseDirectory;
            _context            = _container.UserContext;
            _settingsRepository = _container.SettingsRepository;
            _settingsService    = _container.SettingsService;
            _userService        = _container.UserService;
            _pageCache          = _container.PageViewModelCache;
            _listCache          = _container.ListCache;
            _siteCache          = _container.SiteCache;
            _cache = _container.MemoryCache;
            _configReaderWriter = new ConfigReaderWriterStub();

            _settingsController = new SettingsController(_applicationSettings, _userService, _settingsService, _context, _siteCache, _configReaderWriter);
        }
Beispiel #22
0
        public void settings_should_call_oninitializesettings_when_repository_has_no_settings()
        {
            // Arrange
            Mock <IPluginCache> pluginCacheMock = new Mock <IPluginCache>();
            var settingsRepositoryMock          = new SettingsRepositoryMock();

            Mock <TextPluginStub> pluginMock = new Mock <TextPluginStub>();

            pluginMock.Setup(x => x.Id).Returns("SomeId");
            pluginMock.Object.PluginCache = pluginCacheMock.Object;
            pluginMock.Object.Repository  = settingsRepositoryMock;

            // Act
            PluginSettings actualPluginSettings = pluginMock.Object.Settings;

            // Assert
            Assert.That(actualPluginSettings, Is.Not.Null);
            pluginMock.Verify(x => x.OnInitializeSettings(It.IsAny <PluginSettings>()), Times.Once);
        }
Beispiel #23
0
		public void Setup()
		{
			_container = new MocksAndStubsContainer();

			_applicationSettings = _container.ApplicationSettings;

			_settingsRepository = _container.SettingsRepository;
			_pageRepository = _container.PageRepository;
			
			_pluginFactory = _container.PluginFactory;
			_settingsService = _container.SettingsService;
			_userService = _container.UserService;
			_historyService = _container.HistoryService;
			_markupConverter = _container.MarkupConverter;
			_searchService = _container.SearchService;

			// Use a stub instead of the MocksAndStubsContainer's default
			_contextStub = new UserContextStub();

			// Customise the page service so we can verify what was called
			_pageServiceMock = new Mock<IPageService>();
			_pageServiceMock.Setup(x => x.GetMarkupConverter()).Returns(new MarkupConverter(_applicationSettings, _settingsRepository, _pageRepository, _pluginFactory));
			_pageServiceMock.Setup(x => x.GetById(It.IsAny<int>(), false)).Returns<int, bool>((int id, bool loadContent) =>
				{
					Page page = _pageRepository.GetPageById(id);
					return new PageViewModel(page);
				});
			_pageServiceMock.Setup(x => x.GetById(It.IsAny<int>(), true)).Returns<int,bool>((int id, bool loadContent) =>
			{
				PageContent content = _pageRepository.GetLatestPageContent(id);

				if (content != null)
					return new PageViewModel(content, _markupConverter);
				else
					return null;
			});
			_pageServiceMock.Setup(x => x.FindByTag(It.IsAny<string>()));
			_pageService = _pageServiceMock.Object;

			_pagesController = new PagesController(_applicationSettings, _userService, _settingsService, _pageService, _searchService, _historyService, _contextStub);
			_mocksContainer = _pagesController.SetFakeControllerContext();
		}
Beispiel #24
0
        public void settings_should_save_to_repository_when_repository_has_no_settings()
        {
            // Arrange
            CacheMock           cache           = new CacheMock();
            Mock <IPluginCache> pluginCacheMock = new Mock <IPluginCache>();
            var settingsRepositoryMock          = new SettingsRepositoryMock();

            TextPluginStub plugin = new TextPluginStub();

            plugin.PluginCache = pluginCacheMock.Object;
            plugin.Repository  = settingsRepositoryMock;

            // Act
            PluginSettings actualPluginSettings = plugin.Settings;

            // Assert
            Assert.That(actualPluginSettings, Is.Not.Null);
            Assert.That(settingsRepositoryMock.TextPlugins.Count, Is.EqualTo(1));
            Assert.That(settingsRepositoryMock.TextPlugins.FirstOrDefault(), Is.EqualTo(plugin));
        }
Beispiel #25
0
        public void Setup()
        {
            _container = new MocksAndStubsContainer();

            _applicationSettings = _container.ApplicationSettings;
            _applicationSettings.AttachmentsFolder = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "attachments");
            _settingsRepository = _container.SettingsRepository;
            _settingsService    = _container.SettingsService;
            _userService        = _container.UserService;
            _userContext        = _container.UserContext;
            _emailClientMock    = _container.EmailClient;

            _userService.AddUser(AdminEmail, AdminUsername, AdminPassword, true, true);
            _userService.Users[0].IsActivated = true;
            _userService.Users[0].Firstname   = "Firstname";
            _userService.Users[0].Lastname    = "LastnameNotSurname";

            _userController   = new UserController(_applicationSettings, _userService, _userContext, _settingsService, null, null);
            _mvcMockContainer = _userController.SetFakeControllerContext();
        }
Beispiel #26
0
        public void findhomepage_should_load_from_cache()
        {
            // Arrange
            SettingsRepositoryMock settingsRepository = new SettingsRepositoryMock();
            PageRepositoryMock     pageRepository     = new PageRepositoryMock();
            CacheMock modelCache = new CacheMock();

            PageService   pageService   = CreatePageService(modelCache, null, settingsRepository, pageRepository);
            PageViewModel expectedModel = CreatePageViewModel();

            expectedModel.RawTags = "homepage";
            modelCache.Add(CacheKeys.HomepageKey(), expectedModel, new CacheItemPolicy());

            // Act
            PageViewModel actualModel = pageService.FindHomePage();

            // Assert
            Assert.That(actualModel.Id, Is.EqualTo(expectedModel.Id));
            Assert.That(actualModel.VersionNumber, Is.EqualTo(expectedModel.VersionNumber));
            Assert.That(actualModel.Title, Is.EqualTo(expectedModel.Title));
        }
Beispiel #27
0
        public void Setup()
        {
            _pluginFactory = new PluginFactoryMock();

            _pageRepository = new PageRepositoryMock();

            _settingsRepository = new SettingsRepositoryMock();
            _settingsRepository.SiteSettings            = new SiteSettings();
            _settingsRepository.SiteSettings.MarkupType = "Markdown";

            _userContext = new UserContextStub();

            _applicationSettings           = new ApplicationSettings();
            _applicationSettings.Installed = true;

            _cache     = new CacheMock();
            _siteCache = new SiteCache(_cache);

            _converter  = new MarkupConverter(_applicationSettings, _settingsRepository, _pageRepository, _pluginFactory);
            _menuParser = new MenuParser(_converter, _settingsRepository, _siteCache, _userContext);
        }
Beispiel #28
0
        public void findhomepage_should_add_to_cache_when_cache_is_empty()
        {
            // Arrange
            SettingsRepositoryMock settingsRepository = new SettingsRepositoryMock();
            PageRepositoryMock     pageRepository     = new PageRepositoryMock();

            pageRepository.AddNewPage(new Page()
            {
                Title = "1", Tags = "homepage"
            }, "text", "admin", DateTime.UtcNow);

            CacheMock   pageCache   = new CacheMock();
            PageService pageService = CreatePageService(pageCache, null, settingsRepository, pageRepository);

            // Act
            pageService.FindHomePage();

            // Assert
            Assert.That(pageCache.CacheItems.Count, Is.EqualTo(1));
            Assert.That(pageCache.CacheItems.FirstOrDefault().Key, Is.EqualTo(CacheKeys.HomepageKey()));
        }
Beispiel #29
0
        public void alltags_should_load_from_cache()
        {
            // Arrange
            SettingsRepositoryMock settingsRepository = new SettingsRepositoryMock();
            PageRepositoryMock     pageRepository     = new PageRepositoryMock();
            CacheMock listCache = new CacheMock();

            PageService   pageService  = CreatePageService(null, listCache, settingsRepository, pageRepository);
            List <string> expectedTags = new List <string>()
            {
                "tag1", "tag2", "tag3"
            };

            AddListCacheItem(listCache, CacheKeys.AllTags(), expectedTags);

            // Act
            IEnumerable <string> actualTags = pageService.AllTags().Select(x => x.Name);

            // Assert
            Assert.That(actualTags, Is.SubsetOf(expectedTags));
        }
Beispiel #30
0
        public void getbyid_should_load_from_cache_when_pagesummary_exists_in_cache()
        {
            // Arrange
            SettingsRepositoryMock settingsRepository = new SettingsRepositoryMock();
            PageRepositoryMock     pageRepository     = new PageRepositoryMock();
            CacheMock   pageModelCache = new CacheMock();
            PageService pageService    = CreatePageService(pageModelCache, null, settingsRepository, pageRepository);

            PageViewModel expectedModel = CreatePageViewModel();
            string        cacheKey      = CacheKeys.PageViewModelKey(1, PageViewModelCache.LATEST_VERSION_NUMBER);

            pageModelCache.Add(cacheKey, expectedModel, new CacheItemPolicy());

            // Act
            PageViewModel actualModel = pageService.GetById(1);

            // Assert
            Assert.That(actualModel.Id, Is.EqualTo(expectedModel.Id));
            Assert.That(actualModel.VersionNumber, Is.EqualTo(expectedModel.VersionNumber));
            Assert.That(actualModel.Title, Is.EqualTo(expectedModel.Title));
        }