Ejemplo n.º 1
0
        public void ShouldCreateWithAllBasicData(string path, string filename, string filecontent, DateTime creationDatetime)
        {
            //  #   Arrange.
            var Pathfile   = System.IO.Path.Join(path, filename);
            var mockedFile = new MockFileData(filecontent)
            {
                CreationTime = creationDatetime
            };
            var mockedFileSystem = new MockFileSystem(new Dictionary <string, MockFileData>()
            {
                { Pathfile, mockedFile }
            });

            var mockedPluginHandler = new Mock <IPluginHandler>(MockBehavior.Strict);

            mockedPluginHandler.Setup(m => m.Execute(Pathfile))
            .Returns(new ParseResult[0]);       // No plugin installed so Execute returns nothing.

            //  #   Act.
            var res = FileItem.Create(mockedFileSystem, Pathfile, mockedPluginHandler.Object);

            //  #   Assert.
            res.Path.Should().Be(path);
            res.Name.Should().Be(filename);
            res.Data.Any().Should().BeFalse();
        }
Ejemplo n.º 2
0
        public void Create_ExistingFile_ReturnValidInstance()
        {
            var fileItem = FileItem.Create(_testDataFilePath);

            Assert.True(fileItem.DirectoryExists);
            Assert.True(fileItem.FileExists);
            Assert.True(fileItem.SizeInBytes > 0);
            Assert.Equal(_testDataFilePath, fileItem.FilePath);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 创建新的FileItem
        /// </summary>
        /// <param name="fileInfo"></param>
        /// <param name="folder"></param>
        /// <returns></returns>
        public static FileItem CreateFileItem(FileInfo fileInfo, FileFolder folder)
        {
            FileItem fitem = GetNewFileItem(fileInfo, folder);

            fitem.Create();
            fitem.FullId = String.Format("{0}.{1}", folder.FullId, fitem.Id);
            fitem.Update();

            return(fitem);
        }
Ejemplo n.º 4
0
        public void AddFile(string file)
        {
            if (sourceList.Items.Any(item => item.Location == file))
            {
                return;
            }
            var item = FileItem.Create(file);

            ProcessFile(item);
        }
Ejemplo n.º 5
0
        public void Create_NonExistingFileExistingDirectory_ReturnValidInstance()
        {
            var randomFilePath = Path.Combine(_baseDirectory, Path.GetRandomFileName());

            var fileItem = FileItem.Create(randomFilePath);

            Assert.True(fileItem.DirectoryExists);
            Assert.False(fileItem.FileExists);
            Assert.Equal(0, fileItem.SizeInBytes);
            Assert.Equal(randomFilePath, fileItem.FilePath);
        }
Ejemplo n.º 6
0
        public void Create_NonExistingFileNonExistingDirectory_ReturnValidInstance()
        {
            var randomDirectory = Path.Combine(_baseDirectory,
                                               $"fakedir_{DateTime.Now.Millisecond}\\{Path.GetRandomFileName()}");

            var fileItem = FileItem.Create(randomDirectory);

            Assert.False(fileItem.DirectoryExists);
            Assert.False(fileItem.FileExists);
            Assert.Equal(0, fileItem.SizeInBytes);
            Assert.Equal(randomDirectory, fileItem.FilePath);
        }
Ejemplo n.º 7
0
        public WorkbookDataFileWrapper(string dirFullPath)
        {
            try
            {
                m_FilePath = Path.Combine(dirFullPath, WORKBOOK_DATA_FILE_NAME);

                m_FileItems.Clear();
                foreach (var text in File.ReadAllLines(m_FilePath, Encoding.Default))  // Такую кодировку использует Excel, и нам нужно её соблюдать
                {
                    var item = FileItem.Create(text);
                    if (item != null)
                    {
                        m_FileItems.Add(item);
                    }
                }
            }
            catch (Exception)
            {
                m_FileItems.Clear();
            }
        }
Ejemplo n.º 8
0
        private static async Task MainAsync()
        {
            var settings             = new RetrySettings(3, 2000);
            var retry                = new RetryService(settings);
            IFileCopyService service = new StreamCopyService(retry);
            var source               = FileItem.Create(SourceFilePath);
            var destination          = FileItem.Create(DestinationFilePath);



            void PrintProgress(long bytesWritten)
            {
                var remainingBytes = source.SizeInBytes - bytesWritten;

                Console.WriteLine(
                    $"Total: {source.SizeInBytes} - Written: {bytesWritten} - Remaining: {remainingBytes}");
            }

            var progressIndicator = new Progress <long>(PrintProgress);
            var cst = new CancellationTokenSource(5000);

            var stopwatch = Stopwatch.StartNew();

            try
            {
                await service.CopyAsync(source, destination, progressIndicator, cst.Token)
                .ContinueWith(task => Console.WriteLine("Copy file completed!"), cst.Token);
            }
            catch (Exception exception)
            {
                Console.WriteLine(exception.Message);
            }
            finally
            {
                stopwatch.Stop();
            }

            Console.WriteLine($"Elapsed Milliseconds: {stopwatch.ElapsedMilliseconds}");
        }
Ejemplo n.º 9
0
        public void TestOrder()
        {
            if (Directory.Exists(".Distribox"))
            {
                Directory.Delete(".Distribox", true);
            }

            Directory.CreateDirectory(".Distribox");
            Directory.CreateDirectory(".Distribox\\data");
            try
            {
                FileItem item = new FileItem();
                File.WriteAllText("Haha", string.Empty);
                item.Create("Haha", DateTime.FromFileTimeUtc(1));
                File.WriteAllText("Haha", "haha");
                File.Copy("Haha", ".Distribox\\data\\" + CommonHelper.GetSHA1Hash("Haha"));
                item.Change("Haha", CommonHelper.GetSHA1Hash("Haha"), DateTime.FromFileTimeUtc(2));
                Assert.AreEqual(2, item.History.Count());
            }
            finally
            {
                Directory.Delete(".Distribox", true);
            }
        }
Ejemplo n.º 10
0
        public void Create_NotExistingPath_ThrowsException(string path)
        {
            var error = Assert.Throws <ArgumentException>(() => FileItem.Create(path));

            Assert.Equal("filePath", error.ParamName);
        }