Beispiel #1
0
        public void Folders_Should_Indicate_Whether_They_Are_Empty_Or_Not()
        {
            VirtualFolder r       = VirtualFolder.CreateRootFolder(provider);
            var           folders = r.GetFolders();
            var           files   = r.GetFiles();

            bool testedEmpty     = false;
            bool testedPopulated = false;

            folders.Do(f =>
            {
                bool empty = f.GetFiles().Count() == 0 && f.GetFolders().Count() == 0;
                if (empty)
                {
                    testedEmpty = true;
                }
                else
                {
                    testedPopulated = true;
                }

                Assert.AreEqual(empty, f.MetaData.IsEmpty);
                files.First().Copy(provider.CreateFilePath(f.MetaData.FullName, "test.txt"));
                f.RefreshMetaData();
                Assert.IsFalse(f.MetaData.IsEmpty);
            });

            Assert.IsTrue(testedEmpty);
            Assert.IsTrue(testedPopulated);
        }
Beispiel #2
0
        public void WriteRootFolders()
        {
            VirtualFolder root = VirtualFolder.CreateRootFolder(Facade);

            foreach (var fileInfo in root.GetFiles("*.txt"))
            {
                var token = Facade.DownloadTransfers.RequestDownloadToken(fileInfo.MetaData.FullName, false);

                Func <long, StreamedDataBlock> func = n =>
                {
                    var db = Facade.DownloadTransfers.ReadBlockStreamed(token.TransferId, n);
                    return(db);
                };

                using (var s = new StreamedBlockInputStream(func, token.ResourceLength))
                {
                    StreamReader reader = new StreamReader(s);
                    var          text   = reader.ReadToEnd();
                    Console.Out.WriteLine("Read text:\n" + text);
                    Console.Out.WriteLine("");
                }


//        using(var stream = Facade.DownloadTransfers.ReadFile(fileInfo.MetaData.FullName))
//        {
//          StreamReader reader = new StreamReader(stream);
//          var text = reader.ReadToEnd();
//
//        }
            }
        }
        public void Init()
        {
            rootDirectory = TestUtil.CreateTestDirectory();

            //init provider
            provider = new LocalFileSystemProvider(rootDirectory, true);
            root     = VirtualFolder.CreateRootFolder(provider);
        }
Beispiel #4
0
        public void Returned_Items_Should_Provide_Parent_Paths()
        {
            VirtualFolder root = VirtualFolder.CreateRootFolder(FileSystem);

            RecurseFileSystem(root,
                              (parent, file) => Assert.AreEqual(parent.MetaData.FullName, file.MetaData.ParentFolderPath),
                              (parent, folder) => Assert.AreEqual(parent.MetaData.FullName, folder.MetaData.ParentFolderPath)
                              );
        }
Beispiel #5
0
        private void InitFs()
        {
            Uri serviceBaseUri = Application.Current.Host.Source;

            serviceBaseUri = new Uri(serviceBaseUri, "/");

            facade = new FileSystemFacade(serviceBaseUri.ToString());

            Dispatcher.RunAsync(() => VirtualFolder.CreateRootFolder(facade).GetFolders(), f => directories.ItemsSource = f);
        }
        public void UploadFileDummy()
        {
            var file = VirtualFolder.CreateRootFolder(Provider).GetFolders().First().GetFolders().First().GetFiles().First();

            Console.Out.WriteLine("file.MetaData.FullName = {0}", file.MetaData.Length);

            var t1 = Provider.DownloadHandler.RequestDownloadToken(file.MetaData.FullName, false);
            var t2 = Provider.DownloadHandler.RequestDownloadToken(file.MetaData.FullName, false);

            Provider.DownloadHandler.ReadBlock(t1.TransferId, 0);
            Provider.DownloadHandler.ReadBlock(t2.TransferId, 0);
        }
        public void Requesting_Files_And_Folders_With_Relative_Uris_Should_Work()
        {
            var folder = VirtualFolder.CreateRootFolder(provider);

            foreach (var subFolder in folder.GetFolders())
            {
                string name = subFolder.MetaData.FullName;
                Assert.AreEqual(name, provider.GetFolderInfo(name).FullName);

                foreach (var subFile in subFolder.GetFiles())
                {
                    name = subFile.MetaData.FullName;
                    Assert.AreEqual(name, provider.GetFileInfo(name).FullName);
                }
            }
        }
Beispiel #8
0
        public void Copy_Should_Equal_Source()
        {
            VirtualFolder root        = VirtualFolder.CreateRootFolder(Provider);
            var           movedFolder = root.GetFolders().First().GetFolders().First();

            foreach (var subFolder in movedFolder.GetFolders())
            {
                Console.Out.WriteLine("subFolder.MetaData.FullName = {0}", subFolder.MetaData.FullName);
            }

            foreach (var virtualFile in movedFolder.GetFiles().ToArray())
            {
                Console.Out.WriteLine("File: " + virtualFile.MetaData.Name + ", " + virtualFile.MetaData.FullName);
                virtualFile.Copy(virtualFile.MetaData.FullName + ".copy");
            }
        }
        public void Moving_Into_New_Folder_Should_Adjust_File()
        {
            VirtualFolder root        = VirtualFolder.CreateRootFolder(Provider);
            var           movedFolder = root.GetFolders().First();

            foreach (var virtualFile in movedFolder.GetFiles())
            {
                Console.Out.WriteLine("File: " + virtualFile.MetaData.Name + ", " + virtualFile.MetaData.FullName);
            }

            var testFolder = root.AddFolder("Test");

            string targetPath = Provider.CreateFolderPath("/", "Nested");

            movedFolder.Move(targetPath);

            Console.Out.WriteLine("movedFolder = {0}", movedFolder.MetaData.FullName);
            foreach (var virtualFile in movedFolder.GetFiles())
            {
                Console.Out.WriteLine("File: " + virtualFile.MetaData.Name + ", " + virtualFile.MetaData.FullName);
            }
        }
Beispiel #10
0
        /// <summary>
        /// Creates the test directory.
        /// </summary>
        /// <param name="root"></param>
        /// <param name="recreateLocalFiles">Whether to recreate the local test
        /// files that are used for up/downloads before uploding them to the
        /// virtual FS.</param>
        public virtual void InitFileSystemUnderTest(bool recreateLocalFiles)
        {
            VirtualFolder root = VirtualFolder.CreateRootFolder(FileSystem);

            //create two top level folders
            var f0 = root.AddFolder(ChildFolder0Name);

            root.AddFolder(ChildFolder1Name);

            //create upload/download folders
            f0.AddFolder(UploadFolderName);
            var download = f0.AddFolder(DownloadFolderName);

            if (recreateLocalFiles)
            {
                //overwrite local files
                CreateLocalTestFiles();
            }

            //upload files and and empty folder to download folder
            download.AddFile(DownloadFile0Template.FullName, DownloadFile0Name, false);
            download.AddFile(DownloadFile1Template.FullName, DownloadFile1Name, false);
            download.AddFolder(EmptyFolderName);
        }
        public void Init()
        {
            ServiceFileSystem = GetServiceProvider();
            ServiceSettings   = CustomizeSettings(new VfsServiceSettings());

            ServiceHost = new TestServiceHost {
                Configuration = new TestConfiguration(ServiceFileSystem, ServiceSettings)
            };

            ServiceBaseUri = "http://localhost:33456/";
            ServiceHost.Initialize(new[] { ServiceBaseUri }, "/", null);
            ServiceHost.StartListening();

//      //TODO remove debug code
//      ServiceBaseUri = "http://127.0.0.1:56789/";

            ClientFileSystem = new FileSystemFacade(ServiceBaseUri);

            //get root folders
            ClientRoot  = VirtualFolder.CreateRootFolder(ClientFileSystem);
            ServiceRoot = VirtualFolder.CreateRootFolder(ServiceFileSystem);

            InitInternal();
        }