コード例 #1
0
        private PageService CreatePageService(ObjectCache pageObjectCache, ObjectCache listObjectCache, SettingsRepositoryMock settingsRepository, PageRepositoryMock pageRepository)
        {
            // Stick to memorycache when each one isn't used
            if (pageObjectCache == null)
            {
                pageObjectCache = CacheMock.RoadkillCache;
            }

            if (listObjectCache == null)
            {
                listObjectCache = CacheMock.RoadkillCache;
            }

            // Settings
            ApplicationSettings appSettings = new ApplicationSettings()
            {
                Installed = true, UseObjectCache = true
            };
            UserContextStub userContext = new UserContextStub()
            {
                IsLoggedIn = false
            };

            // PageService
            PageViewModelCache pageViewModelCache = new PageViewModelCache(appSettings, pageObjectCache);
            ListCache          listCache          = new ListCache(appSettings, listObjectCache);
            SiteCache          siteCache          = new SiteCache(CacheMock.RoadkillCache);
            SearchServiceMock  searchService      = new SearchServiceMock(appSettings, settingsRepository, pageRepository, _pluginFactory);
            PageHistoryService historyService     = new PageHistoryService(appSettings, settingsRepository, pageRepository, userContext, pageViewModelCache, _pluginFactory);
            PageService        pageService        = new PageService(appSettings, settingsRepository, pageRepository, searchService, historyService, userContext, listCache, pageViewModelCache, siteCache, _pluginFactory);

            return(pageService);
        }
コード例 #2
0
        public void Setup()
        {
            _container = new MocksAndStubsContainer();

            _applicationSettings = _container.ApplicationSettings;
            _applicationSettings.ConnectionString = "connstring";
            _context            = _container.UserContext;
            _repository         = _container.Repository;
            _pluginFactory      = _container.PluginFactory;
            _settingsService    = _container.SettingsService;
            _userService        = _container.UserService;
            _historyService     = _container.HistoryService;
            _pageService        = _container.PageService;
            _listCache          = _container.ListCache;
            _pageViewModelCache = _container.PageViewModelCache;

            // User setup
            _editorUser          = new User();
            _editorUser.Id       = Guid.NewGuid();
            _editorUser.Email    = EditorEmail;
            _editorUser.Username = EditorUsername;
            _editorUser.IsAdmin  = false;
            _editorUser.IsEditor = true;

            _adminUser          = new User();
            _adminUser.Id       = Guid.NewGuid();
            _adminUser.Email    = AdminEmail;
            _adminUser.Username = AdminUsername;
            _adminUser.IsAdmin  = true;
            _adminUser.IsEditor = true;

            _userService.Users.Add(_editorUser);
            _userService.Users.Add(_adminUser);
            SetUserContext(_adminUser);
        }
コード例 #3
0
        public void Setup()
        {
            _container = new MocksAndStubsContainer();

            _applicationSettings = _container.ApplicationSettings;
            _context             = _container.UserContext;
            _repository          = _container.Repository;
            _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, _repository, _pluginFactory);
            _wikiExporter.ExportFolder = AppDomain.CurrentDomain.BaseDirectory;

            _toolsController = new ToolsController(_applicationSettings, _userService, _settingsService, _pageService,
                                                   _searchService, _context, _listCache, _pageCache, _wikiImporter,
                                                   _repository, _pluginFactory, _wikiExporter);
        }
コード例 #4
0
        /// <summary>
        /// Creates a new instance of MocksAndStubsContainer.
        /// </summary>
        /// <param name="useCacheMock">The 'Roadkill' MemoryCache is used by default, but as this is static it can have problems with
        /// the test runner unless you clear the Container.MemoryCache on setup each time, but then doing that doesn't give a realistic
        /// reflection of how the MemoryCache is used inside an ASP.NET environment.</param>
        public MocksAndStubsContainer(bool useCacheMock = false)
        {
            ApplicationSettings                   = new ApplicationSettings();
            ApplicationSettings.Installed         = true;
            ApplicationSettings.AttachmentsFolder = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "attachments");

            // Cache
            MemoryCache        = useCacheMock ? new CacheMock() : CacheMock.RoadkillCache;
            ListCache          = new ListCache(ApplicationSettings, MemoryCache);
            SiteCache          = new SiteCache(ApplicationSettings, MemoryCache);
            PageViewModelCache = new PageViewModelCache(ApplicationSettings, MemoryCache);

            // Repository
            Repository = new RepositoryMock();
            Repository.SiteSettings            = new SiteSettings();
            Repository.SiteSettings.MarkupType = "Creole";

            PluginFactory   = new PluginFactoryMock();
            MarkupConverter = new MarkupConverter(ApplicationSettings, Repository, PluginFactory);

            // Dependencies for PageService. Be careful to make sure the class using this Container isn't testing the mock.
            SettingsService            = new SettingsService(ApplicationSettings, Repository);
            UserService                = new UserServiceMock(ApplicationSettings, Repository);
            UserContext                = new UserContext(UserService);
            SearchService              = new SearchServiceMock(ApplicationSettings, Repository, PluginFactory);
            SearchService.PageContents = Repository.PageContents;
            SearchService.Pages        = Repository.Pages;
            HistoryService             = new PageHistoryService(ApplicationSettings, Repository, UserContext, PageViewModelCache, PluginFactory);

            PageService = new PageService(ApplicationSettings, Repository, SearchService, HistoryService, UserContext, ListCache, PageViewModelCache, SiteCache, PluginFactory);

            // EmailTemplates
            EmailClient = new EmailClientMock();
        }
コード例 #5
0
 public PageHistoryService(ApplicationSettings settings, IRepository repository, IUserContext context,
                           PageViewModelCache pageViewModelCache, IPluginFactory pluginFactory)
     : base(settings, repository)
 {
     _markupConverter    = new MarkupConverter(settings, repository, pluginFactory);
     _context            = context;
     _pageViewModelCache = pageViewModelCache;
 }
コード例 #6
0
 public CacheController(ApplicationSettings settings, UserServiceBase userService,
                        SettingsService settingsService, IUserContext context,
                        ListCache listCache, PageViewModelCache pageViewModelCache, SiteCache siteCache)
     : base(settings, userService, context, settingsService)
 {
     _listCache          = listCache;
     _pageViewModelCache = pageViewModelCache;
     _siteCache          = siteCache;
 }
コード例 #7
0
ファイル: PageHistoryService.cs プロジェクト: wei772/roadkill
        public PageHistoryService(ApplicationSettings settings, ISettingsRepository settingsRepository, IPageRepository pageRepository, IUserContext context,
                                  PageViewModelCache pageViewModelCache, IPluginFactory pluginFactory)
        {
            _markupConverter    = new MarkupConverter(settings, settingsRepository, pageRepository, pluginFactory);
            _context            = context;
            _pageViewModelCache = pageViewModelCache;

            SettingsRepository = settingsRepository;
            PageRepository     = pageRepository;
        }
コード例 #8
0
 public PluginSettingsController(ApplicationSettings settings, UserServiceBase userService, IUserContext context,
                                 SettingsService settingsService, IPluginFactory pluginFactory, ISettingsRepository settingsRepository, SiteCache siteCache,
                                 PageViewModelCache viewModelCache, ListCache listCache)
     : base(settings, userService, context, settingsService)
 {
     _pluginFactory      = pluginFactory;
     _settingsRepository = settingsRepository;
     _siteCache          = siteCache;
     _viewModelCache     = viewModelCache;
     _listCache          = listCache;
 }
コード例 #9
0
 public ToolsController(ApplicationSettings settings, UserServiceBase userManager,
                        SettingsService settingsService, PageService pageService, SearchService searchService, IUserContext context,
                        ListCache listCache, PageViewModelCache pageViewModelCache, IWikiImporter wikiImporter, IPluginFactory pluginFactory, WikiExporter wikiExporter)
     : base(settings, userManager, context, settingsService)
 {
     _pageService        = pageService;
     _searchService      = searchService;
     _listCache          = listCache;
     _pageViewModelCache = pageViewModelCache;
     _wikiImporter       = wikiImporter;
     _wikiExporter       = wikiExporter;
 }
コード例 #10
0
 public RelService(ApplicationSettings settings, IRepository repository, SearchService searchService,
                   PageHistoryService historyService, IUserContext context,
                   ListCache listCache, PageViewModelCache pageViewModelCache, SiteCache sitecache, IPluginFactory pluginFactory)
     : base(settings, repository)
 {
     _searchService      = searchService;
     _markupConverter    = new MarkupConverter(settings, repository, pluginFactory);
     _historyService     = historyService;
     _context            = context;
     _listCache          = listCache;
     _pageViewModelCache = pageViewModelCache;
     _siteCache          = sitecache;
     _pluginFactory      = pluginFactory;
 }
コード例 #11
0
 public UserManagementController(ApplicationSettings settings, UserServiceBase userManager,
                                 SettingsService settingsService, PageService pageService, SearchService searchService, IUserContext context,
                                 ListCache listCache, PageViewModelCache pageViewModelCache, SiteCache siteCache, IWikiImporter wikiImporter,
                                 IRepository repository, IPluginFactory pluginFactory)
     : base(settings, userManager, context, settingsService)
 {
     _settingsService    = settingsService;
     _pageService        = pageService;
     _searchService      = searchService;
     _listCache          = listCache;
     _pageViewModelCache = pageViewModelCache;
     _siteCache          = siteCache;
     _wikiImporter       = wikiImporter;
     _repository         = repository;
     _pluginFactory      = pluginFactory;
 }
コード例 #12
0
        public void Setup()
        {
            _container = new MocksAndStubsContainer();
            _container.ClearCache();

            _applicationSettings = _container.ApplicationSettings;
            _context             = _container.UserContext;
            _pageRepository      = _container.PageRepository;
            _settingsService     = _container.SettingsService;
            _userService         = _container.UserService;
            _pageCache           = _container.PageViewModelCache;
            _listCache           = _container.ListCache;
            _siteCache           = _container.SiteCache;
            _cache = _container.MemoryCache;

            _cacheController = new CacheController(_applicationSettings, _userService, _settingsService, _context, _listCache, _pageCache, _siteCache);
        }
コード例 #13
0
        public PageService(ApplicationSettings settings, ISettingsRepository settingsRepository, IPageRepository pageRepository, SearchService searchService,
                           PageHistoryService historyService, IUserContext context,
                           ListCache listCache, PageViewModelCache pageViewModelCache, SiteCache sitecache, IPluginFactory pluginFactory)
        {
            _searchService      = searchService;
            _markupConverter    = new MarkupConverter(settings, settingsRepository, pageRepository, pluginFactory);
            _historyService     = historyService;
            _context            = context;
            _listCache          = listCache;
            _pageViewModelCache = pageViewModelCache;
            _siteCache          = sitecache;
            _pluginFactory      = pluginFactory;
            _markupLinkUpdater  = new MarkupLinkUpdater(_markupConverter.Parser);

            ApplicationSettings = settings;
            SettingsRepository  = settingsRepository;
            PageRepository      = pageRepository;
        }
コード例 #14
0
        public PageService(ApplicationSettings settings, IRepository repository, SearchService searchService,
                           PageHistoryService historyService, IUserContext context,
                           ListCache listCache, PageViewModelCache pageViewModelCache, SiteCache sitecache, IPluginFactory pluginFactory
                           , Security.UserServiceBase UserService
                           )
            : base(settings, repository)
        {
            _searchService      = searchService;
            _markupConverter    = new MarkupConverter(settings, repository, pluginFactory);
            _historyService     = historyService;
            _context            = context;
            _listCache          = listCache;
            _pageViewModelCache = pageViewModelCache;
            _siteCache          = sitecache;
            _pluginFactory      = pluginFactory;
            _markupLinkUpdater  = new MarkupLinkUpdater(_markupConverter.Parser);

            _UserService = UserService;
        }
コード例 #15
0
        public void Setup()
        {
            _container = new MocksAndStubsContainer();
            _container.ClearCache();

            _applicationSettings = _container.ApplicationSettings;
            _applicationSettings.AttachmentsFolder = AppDomain.CurrentDomain.BaseDirectory;
            _context            = _container.UserContext;
            _repository         = _container.Repository;
            _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);
        }
コード例 #16
0
        public void RemoveAll_Should_Remove_PageViewModelCache_Keys_Only()
        {
            // Arrange
            CacheMock cache = new CacheMock();

            cache.Add("site.blah", "xyz", new CacheItemPolicy());

            ApplicationSettings settings = new ApplicationSettings()
            {
                UseObjectCache = false
            };
            PageViewModelCache pageCache = new PageViewModelCache(settings, cache);

            pageCache.Add(1, 1, new PageViewModel());

            // Act
            pageCache.RemoveAll();

            // Assert
            Assert.That(cache.Count(), Is.EqualTo(1));
        }
コード例 #17
0
        public void Setup()
        {
            _container = new MocksAndStubsContainer(true);

            _applicationSettings = _container.ApplicationSettings;
            _applicationSettings.UseObjectCache = true;
            _context         = _container.UserContext;
            _repository      = _container.Repository;
            _pluginFactory   = _container.PluginFactory;
            _settingsService = _container.SettingsService;
            _userService     = _container.UserService;
            _historyService  = _container.HistoryService;
            _pageService     = _container.PageService;

            _listCache          = _container.ListCache;
            _siteCache          = _container.SiteCache;
            _pageViewModelCache = _container.PageViewModelCache;
            _memoryCache        = _container.MemoryCache;

            _controller = new PluginSettingsController(_applicationSettings, _userService, _context, _settingsService, _pluginFactory, _repository, _siteCache, _pageViewModelCache, _listCache);
        }
コード例 #18
0
        private WikiController CreateWikiController(BrowserCacheAttribute attribute)
        {
            // Settings
            ApplicationSettings appSettings = new ApplicationSettings()
            {
                Installed = true, UseBrowserCache = true
            };
            UserContextStub userContext = new UserContextStub()
            {
                IsLoggedIn = false
            };

            // PageService
            PageViewModelCache pageViewModelCache = new PageViewModelCache(appSettings, CacheMock.RoadkillCache);
            ListCache          listCache          = new ListCache(appSettings, CacheMock.RoadkillCache);
            SiteCache          siteCache          = new SiteCache(appSettings, CacheMock.RoadkillCache);
            SearchServiceMock  searchService      = new SearchServiceMock(appSettings, _repositoryMock, _pluginFactory);
            PageHistoryService historyService     = new PageHistoryService(appSettings, _repositoryMock, userContext, pageViewModelCache, _pluginFactory);
            PageService        pageService        = new PageService(appSettings, _repositoryMock, searchService, historyService, userContext, listCache, pageViewModelCache, siteCache, _pluginFactory);

            // WikiController
            SettingsService settingsService = new SettingsService(appSettings, _repositoryMock);
            UserServiceStub userManager     = new UserServiceStub();
            WikiController  wikiController  = new WikiController(appSettings, userManager, pageService, userContext, settingsService);

            // Create a page that the request is for
            Page page = new Page()
            {
                Title = "title", ModifiedOn = _pageModifiedDate
            };

            _repositoryMock.AddNewPage(page, "text", "user", _pageCreatedDate);

            // Update the BrowserCacheAttribute
            attribute.ApplicationSettings = appSettings;
            attribute.Context             = userContext;
            attribute.PageService         = pageService;

            return(wikiController);
        }
コード例 #19
0
        public void Setup()
        {
            _container = new MocksAndStubsContainer();

            _applicationSettings = _container.ApplicationSettings;
            _context             = _container.UserContext;
            _repository          = _container.Repository;
            _settingsService     = _container.SettingsService;
            _userService         = _container.UserService;
            _pageCache           = _container.PageViewModelCache;
            _listCache           = _container.ListCache;
            _siteCache           = _container.SiteCache;
            _cache = _container.MemoryCache;

            _pageService   = _container.PageService;
            _wikiImporter  = new ScrewTurnImporter(_applicationSettings, _repository);
            _pluginFactory = _container.PluginFactory;
            _searchService = _container.SearchService;

            _controller = new UserManagementController(_applicationSettings, _userService, _settingsService, _pageService,
                                                       _searchService, _context, _listCache, _pageCache, _siteCache, _wikiImporter, _repository, _pluginFactory);
        }
コード例 #20
0
        public void Setup()
        {
            _container = new MocksAndStubsContainer();

            _applicationSettings = _container.ApplicationSettings;
            _context             = _container.UserContext;
            _repository          = _container.Repository;
            _pluginFactory       = _container.PluginFactory;
            _settingsService     = _container.SettingsService;
            _userService         = _container.UserService;
            _historyService      = _container.HistoryService;
            _pageService         = _container.PageService;
            _searchService       = _container.SearchService;
            _markupConverter     = _container.MarkupConverter;

            _listCache          = _container.ListCache;
            _siteCache          = _container.SiteCache;
            _pageViewModelCache = _container.PageViewModelCache;
            _memoryCache        = _container.MemoryCache;

            _homeController = new HomeController(_applicationSettings, _userService, _markupConverter, _pageService, _searchService, _context, _settingsService);
            _homeController.SetFakeControllerContext();
        }
コード例 #21
0
        /// <summary>
        /// Creates a new instance of MocksAndStubsContainer.
        /// </summary>
        /// <param name="useCacheMock">The 'Roadkill' MemoryCache is used by default, but as this is static it can have problems with
        /// the test runner unless you clear the Container.MemoryCache on setup each time, but then doing that doesn't give a realistic
        /// reflection of how the MemoryCache is used inside an ASP.NET environment.</param>
        public MocksAndStubsContainer(bool useCacheMock = false)
        {
            ApplicationSettings                   = new ApplicationSettings();
            ApplicationSettings.Installed         = true;
            ApplicationSettings.AttachmentsFolder = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "attachments");
            ConfigReaderWriter = new ConfigReaderWriterStub();

            // Cache
            MemoryCache        = useCacheMock ? new CacheMock() : CacheMock.RoadkillCache;
            ListCache          = new ListCache(ApplicationSettings, MemoryCache);
            SiteCache          = new SiteCache(MemoryCache);
            PageViewModelCache = new PageViewModelCache(ApplicationSettings, MemoryCache);

            // Repositories
            SettingsRepository = new SettingsRepositoryMock();
            SettingsRepository.SiteSettings            = new SiteSettings();
            SettingsRepository.SiteSettings.MarkupType = "Creole";
            UserRepository      = new UserRepositoryMock();
            PageRepository      = new PageRepositoryMock();
            InstallerRepository = new InstallerRepositoryMock();

            RepositoryFactory = new RepositoryFactoryMock()
            {
                SettingsRepository  = SettingsRepository,
                UserRepository      = UserRepository,
                PageRepository      = PageRepository,
                InstallerRepository = InstallerRepository
            };
            DatabaseTester = new DatabaseTesterMock();

            // Plugins
            PluginFactory   = new PluginFactoryMock();
            MarkupConverter = new MarkupConverter(ApplicationSettings, SettingsRepository, PageRepository, PluginFactory);

            // Services
            // Dependencies for PageService. Be careful to make sure the class using this Container isn't testing the mock.
            SettingsService            = new SettingsService(RepositoryFactory, ApplicationSettings);
            UserService                = new UserServiceMock(ApplicationSettings, UserRepository);
            UserContext                = new UserContext(UserService);
            SearchService              = new SearchServiceMock(ApplicationSettings, SettingsRepository, PageRepository, PluginFactory);
            SearchService.PageContents = PageRepository.PageContents;
            SearchService.Pages        = PageRepository.Pages;
            HistoryService             = new PageHistoryService(ApplicationSettings, SettingsRepository, PageRepository, UserContext,
                                                                PageViewModelCache, PluginFactory);
            FileService = new FileServiceMock();
            PageService = new PageService(ApplicationSettings, SettingsRepository, PageRepository, SearchService, HistoryService,
                                          UserContext, ListCache, PageViewModelCache, SiteCache, PluginFactory);

            StructureMapContainer = new Container(x =>
            {
                x.AddRegistry(new TestsRegistry(this));
            });

            Locator = new StructureMapServiceLocator(StructureMapContainer, false);

            InstallationService = new InstallationService((databaseName, connectionString) =>
            {
                InstallerRepository.DatabaseName     = databaseName;
                InstallerRepository.ConnectionString = connectionString;

                return(InstallerRepository);
            }, Locator);

            // EmailTemplates
            EmailClient = new EmailClientMock();
        }