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); }
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)); }
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())); }
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)); }
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)); }
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)); }
public void Setup() { _container = new MocksAndStubsContainer(); _repositoryFactory = _container.RepositoryFactory; _settingsRepository = _container.SettingsRepository; _settingsService = _container.SettingsService; }
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; }
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(); }
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!"); } }
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(); }
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; }
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); }
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); }
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")); }
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)); }
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); }
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); }
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(); }
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)); }
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(); }
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)); }
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); }
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())); }
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)); }
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)); }