Пример #1
0
        public void Install_1()
        {
            var source = ManifestUtilsTests.Get_TEZT_PATH();
            var target = source+"_INSTALLED";

            using(var fs = new LocalFileSystem("L1"))
            {
              var session = fs.StartSession();
              var sourceDir = session[source] as FileSystemDirectory;

              var manifest = ManifestUtils.GeneratePackagingManifest(sourceDir, packageName: "Package1");
              var fn = Path.Combine(source, ManifestUtils.MANIFEST_FILE_NAME);
              try
              {
                  manifest.Configuration.ToLaconicFile(fn);

                  var set = new List<LocalInstallation.PackageInfo>
                  {
                      new LocalInstallation.PackageInfo("Package1", sourceDir, null)//no relative path
                  };

                  using(var install = new LocalInstallation(target))
                  {
                    Console.WriteLine("Installed anew: "+ install.CheckLocalAndInstallIfNeeded(set));
                  }
              }
              finally
              {
                IOMiscUtils.EnsureFileEventuallyDeleted(fn);
              }

            }
        }
Пример #2
0
        public void DeepCopy_1()
        {
            var p1 = ManifestUtilsTests.Get_TEZT_PATH();
            var p2 = p1+"_2";

            IOMiscUtils.EnsureDirectoryDeleted(p2);
            Directory.CreateDirectory(p2);

            using(var fs = new LocalFileSystem("L1"))
            {
              using(var session = fs.StartSession())
              {
                var fromDir = session[p1] as FileSystemDirectory;
                var manifest1 = ManifestUtils.GeneratePackagingManifest(fromDir);

                var toDir = session[p2] as FileSystemDirectory;

                fromDir.DeepCopyTo(toDir, FileSystemDirectory.DirCopyFlags.Directories | FileSystemDirectory.DirCopyFlags.Files);
                var manifest2 = ManifestUtils.GeneratePackagingManifest(toDir);

                Console.WriteLine(manifest1.Configuration.ContentView);

                Assert.IsTrue( ManifestUtils.HasTheSameContent(manifest1, manifest2) );
              }
            }
        }
Пример #3
0
        public void Connect_NavigateRootDir()
        {
            using(var fs = new LocalFileSystem("L1"))
            {
              var session = fs.StartSession();

              var dir = session[LOCAL_ROOT] as FileSystemDirectory;

              Assert.AreEqual(@"c:\", dir.ParentPath);
              Assert.AreEqual(@"c:\NFX", dir.Path);
            }
        }
Пример #4
0
        public void CreateDeleteDir()
        {
            using(var fs = new LocalFileSystem("L1"))
            {

              var session = fs.StartSession();

              var dir = session[LOCAL_ROOT] as FileSystemDirectory;

              var dir2 = dir[DIR_1] as FileSystemDirectory;
              Assert.IsNull( dir2 );

              dir2 = dir.CreateDirectory(DIR_1);

              Assert.AreEqual(DIR_1, ((FileSystemDirectory)dir[DIR_1]).Name);

              Assert.AreEqual(DIR_1, ((FileSystemDirectory)dir2[""]).Name);

              Assert.IsTrue( Directory.Exists(dir2.Path));

              Assert.AreEqual(DIR_1, dir2.Name);

              dir2.Delete();
              Assert.IsFalse( Directory.Exists(dir2.Path));

            }
        }
Пример #5
0
        public void Parallel_CreateWriteReadFile()
        {
            using(var fs = new LocalFileSystem("L1"))
            {
              System.Threading.Tasks.Parallel.For(PARALLEL_FROM, PARALLEL_TO,
               (i)=>
               {
                    var fn = FN_PARALLEL_MASK.Args(i);
                    var session = fs.StartSession();

                    var dir = session[LOCAL_ROOT] as FileSystemDirectory;

                    using (var file = dir.CreateFile(fn))
                    {
                      file.WriteAllText("Hello, {0}".Args(i));
                    }

                    using (var file = session[fs.CombinePaths(LOCAL_ROOT, fn)] as FileSystemFile)
                    {
                      Assert.AreEqual( "Hello, {0}".Args(i), file.ReadAllText());
                      file.Delete();
                    }
                    Assert.IsNull( session[fs.CombinePaths(LOCAL_ROOT, fn)] );

               });//Parallel.For

            }
        }
Пример #6
0
        public void CreateWriteReadFile_3()
        {
            using(var fs = new LocalFileSystem("L1"))
            {

              var session = fs.StartSession();

              var dir = session[LOCAL_ROOT] as FileSystemDirectory;

              using (var file = dir.CreateFile(FN4))
              {
                file.WriteAllText("Hello,");
                file.WriteAllText("this will overwrite");
              }

              using (var file = session[fs.CombinePaths(LOCAL_ROOT, FN4)] as FileSystemFile)
              {
                Assert.AreEqual( "this will overwrite", file.ReadAllText());
              }
            }
        }
Пример #7
0
        public void CreateWriteReadFile_1()
        {
            using(var fs = new LocalFileSystem("L1"))
            {

              var session = fs.StartSession();

              var dir = session[LOCAL_ROOT] as FileSystemDirectory;

              using (var file = dir.CreateFile(FN2))
              {
                var str = file.FileStream;

                var wri = new BinaryWriter(str);

                wri.Write( "Hello!" );
                wri.Write( true );
                wri.Write( 27.4d );
                wri.Close();
              }

              using (var file = session[fs.CombinePaths(LOCAL_ROOT, FN2)] as FileSystemFile)
              {
                var str = file.FileStream;

                var rdr = new BinaryReader(str);

                Assert.AreEqual( "Hello!", rdr.ReadString());
                Assert.AreEqual( true,     rdr.ReadBoolean());
                Assert.AreEqual( 27.4d,    rdr.ReadDouble());
              }
            }
        }
Пример #8
0
        public void CreateWriteCopyReadFile()
        {
            using(var fs = new LocalFileSystem("L1"))
            {
              var session = fs.StartSession();

              var dir = session[LOCAL_ROOT] as FileSystemDirectory;

              using (var file = dir.CreateFile(FN2))
              {
                var str = file.FileStream;

                var wri = new BinaryWriter(str);

                wri.Write( "Hello!" );
                wri.Write( true );
                wri.Write( 27.4d );
                wri.Close();
              }

              //FN3 copied from FN2 and made readonly
              Assert.IsNotNull( dir.CreateFile(FN3, Path.Combine(LOCAL_ROOT, FN2), true) );

              using (var file = session[fs.CombinePaths(LOCAL_ROOT, FN3)] as FileSystemFile)
              {
                Assert.IsTrue( file.ReadOnly);
                Assert.IsTrue( file.IsReadOnly);

                var str = file.FileStream;

                var rdr = new BinaryReader(str);

                Assert.AreEqual( "Hello!", rdr.ReadString());
                Assert.AreEqual( true,     rdr.ReadBoolean());
                Assert.AreEqual( 27.4d,    rdr.ReadDouble());

                file.ReadOnly = false;

                Assert.IsFalse( file.ReadOnly);
                Assert.IsFalse( file.IsReadOnly);

              }
            }
        }
Пример #9
0
        public void CreateFile()
        {
            using(var fs = new LocalFileSystem("L1"))
            {

              var session = fs.StartSession();

              var dir = session[LOCAL_ROOT] as FileSystemDirectory;

              var file = dir.CreateFile(FN1, 1500);

              Assert.AreEqual(FN1, file.Name);

              Assert.IsTrue( File.Exists(file.Path));
              Assert.AreEqual(1500, new FileInfo(file.Path).Length);
              Assert.AreEqual(1500, file.FileStream.Length);
            }
        }
Пример #10
0
        public void CreateDirCreateFileDeleteDir()
        {
            using(var fs = new LocalFileSystem("L1"))
            {

              var session = fs.StartSession();

              var dir = session[LOCAL_ROOT] as FileSystemDirectory;
             Assert.AreEqual(1, session.Items.Count());//checking item registation via .ctor/.dctor
              var dir2 = dir[DIR_1] as FileSystemDirectory;
              Assert.IsNull( dir2 );
             Assert.AreEqual(1, session.Items.Count());//checking item registation via .ctor/.dctor
              dir2 = dir.CreateDirectory(DIR_1);
             Assert.AreEqual(2, session.Items.Count());//checking item registation via .ctor/.dctor
              Assert.IsTrue( Directory.Exists(dir2.Path));

              Assert.AreEqual(DIR_1, dir2.Name);

              var f = dir2.CreateFile(FN1, 237);
            Assert.AreEqual(3, session.Items.Count());//checking item registation via .ctor/.dctor
              Assert.IsTrue( File.Exists(f.Path));

              Assert.AreEqual(237, dir2.Size);

              Assert.IsTrue( dir.SubDirectoryNames.Contains(DIR_1) );

              Assert.IsTrue( dir2.FileNames.Contains(FN1) );

              dir2.Delete();
            Assert.AreEqual(2, session.Items.Count());//checking item registation via .ctor/.dctor
              Assert.IsFalse( Directory.Exists(dir2.Path));
              Assert.IsFalse( File.Exists(f.Path));
            Assert.AreEqual(1, fs.Sessions.Count());//checking item registation via .ctor/.dctor
              session.Dispose();
            Assert.AreEqual(0, fs.Sessions.Count());//checking item registation via .ctor/.dctor
            Assert.AreEqual(0, session.Items.Count());//checking item registation via .ctor/.dctor
            }
        }
Пример #11
0
        public void CreateDeleteFile()
        {
            using(var fs = new LocalFileSystem("L1"))
            {

              var session = fs.StartSession();

              var dir = session[LOCAL_ROOT] as FileSystemDirectory;

              var file = dir.CreateFile(FN1, 1500);

              Assert.AreEqual(FN1, file.Name);

              Assert.IsTrue( File.Exists(file.Path));
              Assert.AreEqual(1500, new FileInfo(file.Path).Length);
              Assert.AreEqual(1500, file.FileStream.Length);

              Assert.AreEqual(1500, file.Size);

              var file2 = session[fs.CombinePaths(LOCAL_ROOT, FN1)];
              Assert.IsNotNull( file2);
              Assert.IsTrue(file2 is FileSystemFile);
              Assert.AreEqual(FN1, ((FileSystemFile)file2).Name);

              file.Dispose();

              file2.Delete();
              Assert.IsFalse( File.Exists(file2.Path));
            }
        }
Пример #12
0
        public void Generate_1()
        {
            using(var fs = new LocalFileSystem("L1"))
            {
              var session = fs.StartSession();
              var dir = session[Get_TEZT_PATH()] as FileSystemDirectory;
              var manifest = ManifestUtils.GeneratePackagingManifest(dir);

              Console.WriteLine(manifest.Configuration.ContentView);

              Assert.AreEqual("SubDir1", manifest[0].AttrByName(ManifestUtils.CONFIG_NAME_ATTR).Value);
              Assert.AreEqual("SubDir2", manifest[1].AttrByName(ManifestUtils.CONFIG_NAME_ATTR).Value);
              Assert.AreEqual("Gagarin.txt", manifest[2].AttrByName(ManifestUtils.CONFIG_NAME_ATTR).Value);
              Assert.AreEqual("TextFile1.txt", manifest[3].AttrByName(ManifestUtils.CONFIG_NAME_ATTR).Value);

               Assert.AreEqual(500066, manifest[0].Children.First(c=>c.IsSameNameAttr("Bitmap1.bmp")).AttrByName(ManifestUtils.CONFIG_SIZE_ATTR).ValueAsInt());
               Assert.AreEqual(1248671023, manifest[0].Children.First(c=>c.IsSameNameAttr("Bitmap1.bmp")).AttrByName(ManifestUtils.CONFIG_CSUM_ATTR).ValueAsInt());

               Assert.AreEqual(105, manifest[0].Children.First(c=>c.IsSameNameAttr("Some Text File With Spaces.txt")).AttrByName(ManifestUtils.CONFIG_SIZE_ATTR).ValueAsInt());
               Assert.AreEqual(1399856254, manifest[0].Children.First(c=>c.IsSameNameAttr("Some Text File With Spaces.txt")).AttrByName(ManifestUtils.CONFIG_CSUM_ATTR).ValueAsInt());
            }
        }
Пример #13
0
        public void Compare_4()
        {
            using(var fs = new LocalFileSystem("L1"))
            {
              var session = fs.StartSession();
              var dir = session[Get_TEZT_PATH()] as FileSystemDirectory;
              var manifest1 = ManifestUtils.GeneratePackagingManifest(dir);
              var manifest2 = ManifestUtils.GeneratePackagingManifest(dir);

              manifest2[2].Delete();

              Assert.IsFalse( manifest1.HasTheSameContent(manifest2) );
            }
        }
Пример #14
0
        public void Compare_3()
        {
            using(var fs = new LocalFileSystem("L1"))
            {
              var session = fs.StartSession();
              var dir = session[Get_TEZT_PATH()] as FileSystemDirectory;
              var manifest1 = ManifestUtils.GeneratePackagingManifest(dir);
              var manifest2 = ManifestUtils.GeneratePackagingManifest(dir);

              manifest2[0].Children.First(c=>c.IsSameNameAttr("Some Text File With Spaces.txt")).AttrByName(ManifestUtils.CONFIG_SIZE_ATTR).Value = "123";

              Assert.IsFalse( manifest1.HasTheSameContent(manifest2) );
            }
        }
Пример #15
0
        public void Compare_2()
        {
            using(var fs = new LocalFileSystem("L1"))
            {
              var session = fs.StartSession();
              var dir = session[Get_TEZT_PATH()] as FileSystemDirectory;
              var manifest1 = ManifestUtils.GeneratePackagingManifest(dir);
              var manifest2 = NFX.Environment.LaconicConfiguration.CreateFromString(EXPECTED).Root;

              Assert.IsTrue( manifest1.HasTheSameContent(manifest2) );
            }
        }