private static IFilesPanelViewModel CreateFilesPanelViewModel( IReadonlyDependencyResolver resolver, string panelKey) { var filesPanelStateService = new FilesPanelStateService( resolver.GetRequiredService <IUnitOfWorkFactory>(), panelKey ); var tabsListViewModel = new TabsListViewModel( filesPanelStateService, resolver.GetRequiredService <IDirectoryService>(), resolver.GetRequiredService <ITabViewModelFactory>(), resolver.GetRequiredService <FilePanelConfiguration>() ); var filesPanelViewModel = new FilesPanelViewModel( resolver.GetRequiredService <IFileService>(), resolver.GetRequiredService <IDirectoryService>(), resolver.GetRequiredService <INodesSelectionService>(), resolver.GetRequiredService <IFileSystemNodeViewModelFactory>(), resolver.GetRequiredService <IFileSystemWatchingService>(), resolver.GetRequiredService <IApplicationDispatcher>(), resolver.GetRequiredService <IFileSizeFormatter>(), resolver.GetRequiredService <IClipboardOperationsService>(), resolver.GetRequiredService <IFileSystemNodeViewModelComparerFactory>(), resolver.GetRequiredService <ISearchViewModel>(), tabsListViewModel ); return(filesPanelViewModel); }
public void TestInvalidStateSaving() { var unitOfWorkFactoryMock = new Mock <IUnitOfWorkFactory>(); IFilesPanelStateService filesPanelStateService = new FilesPanelStateService( unitOfWorkFactoryMock.Object, PanelKey); Assert.Throws <ArgumentNullException>(() => filesPanelStateService.SavePanelState(null)); }
private static IFilesPanelViewModel CreateFilesPanelViewModel( IReadonlyDependencyResolver resolver, string panelKey) { var observer = resolver.GetRequiredService <IFilePanelDirectoryObserver>(); var directorySelectorViewModel = new DirectorySelectorViewModel( resolver.GetRequiredService <IFavouriteDirectoriesService>(), resolver.GetRequiredService <IDirectoryService>(), resolver.GetRequiredService <ISuggestionsService>(), observer, resolver.GetRequiredService <ISuggestedPathViewModelFactory>() ); var filesPanelStateService = new FilesPanelStateService( resolver.GetRequiredService <IUnitOfWorkFactory>(), panelKey ); var tabsListViewModel = new TabsListViewModel( filesPanelStateService, resolver.GetRequiredService <IDirectoryService>(), resolver.GetRequiredService <ITabViewModelFactory>(), resolver.GetRequiredService <IFilesOperationsMediator>(), resolver.GetRequiredService <IHomeDirectoryProvider>(), observer, resolver.GetRequiredService <TabsListConfiguration>() ); var filesPanelViewModel = new FilesPanelViewModel( resolver.GetRequiredService <IFileService>(), resolver.GetRequiredService <IDirectoryService>(), resolver.GetRequiredService <INodesSelectionService>(), resolver.GetRequiredService <INodeService>(), resolver.GetRequiredService <IFileSystemNodeViewModelFactory>(), resolver.GetRequiredService <IFileSystemWatchingService>(), resolver.GetRequiredService <IApplicationDispatcher>(), resolver.GetRequiredService <IFileSizeFormatter>(), resolver.GetRequiredService <IFileSystemNodeViewModelComparerFactory>(), resolver.GetRequiredService <IRecursiveSearchService>(), observer, resolver.GetRequiredService <IPermissionsService>(), resolver.GetRequiredService <IDialogService>(), resolver.GetRequiredService <ISearchViewModel>(), tabsListViewModel, resolver.GetRequiredService <IOperationsViewModel>(), directorySelectorViewModel, resolver.GetRequiredService <IDragAndDropOperationsMediator>(), resolver.GetRequiredService <IClipboardOperationsViewModel>() ); return(filesPanelViewModel); }
public void TestEmptyState() { var repositoryMock = new Mock <IRepository <PanelModel> >(); repositoryMock .Setup(m => m.GetById(PanelKey)) .Returns((PanelModel)null); var unitOfWorkFactory = GetUnitOfWorkFactory(repositoryMock); IFilesPanelStateService filesPanelStateService = new FilesPanelStateService( unitOfWorkFactory, PanelKey); var emptyState = filesPanelStateService.GetPanelState(); Assert.NotNull(emptyState); Assert.NotNull(emptyState.Tabs); Assert.Empty(emptyState.Tabs); }
public void TestSettingsPersistence() { var collection = new List <TabModel>(); var repositoryMock = new Mock <IRepository <PanelModel> >(); repositoryMock .Setup(m => m.GetById(PanelKey)) .Returns(new PanelModel { Tabs = collection }); repositoryMock .Setup(m => m.Upsert(PanelKey, It.IsAny <PanelModel>())) .Callback <string, PanelModel>((key, panelState) => { collection.Clear(); collection.AddRange(panelState.Tabs); }); var unitOfWorkFactory = GetUnitOfWorkFactory(repositoryMock); IFilesPanelStateService filesPanelStateService = new FilesPanelStateService( unitOfWorkFactory, PanelKey); var tabs = Enumerable .Range(0, 10) .Select(_ => new TabStateModel { SortingSettings = new SortingSettingsStateModel() }) .ToList(); var state = new PanelStateModel { Tabs = tabs }; filesPanelStateService.SavePanelState(state); var savedState = filesPanelStateService.GetPanelState(); Assert.NotNull(savedState); Assert.NotNull(savedState.Tabs); Assert.Equal(tabs.Count, savedState.Tabs.Count); }
private static FilesPanelViewModel CreateFilesPanelViewModel( IReadonlyDependencyResolver resolver, string panelKey) { var filesPanelStateService = new FilesPanelStateService( resolver.GetService <IUnitOfWorkFactory>(), panelKey ); var filesPanelViewModel = new FilesPanelViewModel( resolver.GetService <IFileService>(), resolver.GetService <IDirectoryService>(), resolver.GetService <IFilesSelectionService>(), resolver.GetService <IFileViewModelFactory>(), resolver.GetService <IFileSystemWatchingService>(), resolver.GetService <IApplicationDispatcher>(), filesPanelStateService, resolver.GetService <ITabViewModelFactory>() ); return(filesPanelViewModel); }
public void TestSettingsPersistence() { var collection = new List <string>(); var repositoryMock = new Mock <IRepository <PanelState> >(); repositoryMock .Setup(m => m.GetById(PanelKey)) .Returns(new PanelState { Tabs = collection }); repositoryMock .Setup(m => m.Upsert(PanelKey, It.IsAny <PanelState>())) .Callback <string, PanelState>((key, panelState) => { collection.Clear(); collection.AddRange(panelState.Tabs); }); var unitOfWorkFactory = GetUnitOfWorkFactory(repositoryMock); IFilesPanelStateService filesPanelStateService = new FilesPanelStateService( unitOfWorkFactory, PanelKey); var tabs = Enumerable.Range(0, 10).Select(n => n.ToString()).ToArray(); var state = new PanelState { Tabs = tabs.ToList() }; filesPanelStateService.SavePanelState(state); var savedState = filesPanelStateService.GetPanelState(); Assert.NotNull(savedState); Assert.NotNull(savedState.Tabs); Assert.True(savedState.Tabs.Count == tabs.Length); Assert.Equal(tabs, savedState.Tabs); }