示例#1
0
        public void AddDirectory(DirectoryModel directory)
        {
            var directoryViewModel = directoryFactory();

            directoryViewModel.Directory = directory;
            AddItem(directoryViewModel);
        }
        public void TestAddDirectory()
        {
            using (var mock = AutoMock.GetStrict()) {
                var collection = new ObservableCollection <IDirectoryListItem>();
                var directory  = new DirectoryModel {
                    Path = "Lied"
                };

                var directoryViewModel = mock.Mock <IDirectoryViewModel>();
                directoryViewModel.SetupSet(m => m.Directory = directory);

                var dispatcher = mock.Mock <IDispatcher>();
                dispatcher.Setup(m => m.Invoke(It.IsAny <Action>())).Callback <Action>(action => action());

                var model = mock.Mock <IDirectoryCollectionProperty>();
                model.SetupGet(m => m.Directories).Returns(collection);

                var directoriesService = mock.Create <Directories>();

                directoriesService.AddDirectory(directory);

                Assert.AreEqual(1, collection.Count);
                Assert.IsTrue(collection.Contains(directoryViewModel.Object));

                directoryViewModel.VerifySet(m => m.Directory = directory, Times.Once);
                dispatcher.Verify(m => m.Invoke(It.IsAny <Action>()), Times.Once);
                model.VerifyGet(m => m.Directories, Times.Once);
            }
        }
示例#3
0
        public void ChangeStatus(DirectoryModel directory)
        {
            var directoryData = importer.Read <DirectoryData>(directory.Path)
                                ?? new DirectoryData {
                Status = DirectoryStatus.SONG
            };

            if (directoryData.Song == null)
            {
                directoryData.Song = new SongModel {
                    Path = directory.Path
                };
            }

            directoryData.Song.Name = directory.Path;

            exporter.Write(directory.Path, directoryData);
        }
示例#4
0
        public void TestStartWithSubFolderWithStatusNoSong()
        {
            using (var mock = AutoMock.GetStrict()) {
                var fileSystem = new MockFileSystem(
                    new Dictionary <string, MockFileData> {
                    { @"C:\root\", new MockDirectoryData() },
                    { @"C:\root\bla\", new MockDirectoryData() },
                    { @"C:\root\bla\song.xml", new MockFileData("xml")
                      {
                          Attributes = FileAttributes.Hidden
                      } }
                });
                mock.Provide <IFileSystem>(fileSystem);

                var settings = mock.Mock <ISettings>();
                settings.SetupGet(m => m.DataPath).Returns(@"C:\root");
                settings.SetupGet(m => m.DataFilename).Returns("song.xml");

                var expectedDirectoryData = new DirectoryData {
                    Status = DirectoryStatus.NO_SONG
                };
                var importer = mock.Mock <IImporter>();
                importer.Setup(m => m.Read <DirectoryData>(@"C:\root\bla\song.xml")).Returns(expectedDirectoryData);

                var expectedDirectory = new DirectoryModel {
                    Path = @"C:\root\bla"
                };
                var directoriesService = mock.Mock <IDirectories>();
                directoriesService.Setup(m => m.AddDirectory(expectedDirectory));

                var checker = mock.Create <Checker>();

                checker.Start();

                settings.VerifyGet(m => m.DataPath, Times.Once);
                settings.VerifyGet(m => m.DataFilename, Times.Once);
                importer.Verify(m => m.Read <DirectoryData>(@"C:\root\bla\song.xml"), Times.Once);
                directoriesService.Verify(m => m.AddDirectory(expectedDirectory), Times.Once);
            }
        }