示例#1
0
        public void DifferentDirectoryVersions()
        {
            using (new NFX.ApplicationModel.ServiceBaseApplication(null, LACONF.AsLaconicConfig()))
            {
                IList <WebDAV.Version> versions = WebDAV.GetVersions(SVN_ROOT, SVN_UNAME, SVN_UPSW).ToList();

                WebDAV.Version v1513 = versions.First(v => v.Name == "1513");
                WebDAV.Version v1523 = versions.First(v => v.Name == "1523");

                var client1513 = new WebDAV(SVN_ROOT, 0, SVN_UNAME, SVN_UPSW, version: v1513);

                var client1523 = new WebDAV(SVN_ROOT, 0, SVN_UNAME, SVN_UPSW, version: v1523);

                WebDAV.Directory root1513 = client1513.Root;
                WebDAV.Directory root1523 = client1523.Root;

                WebDAV.Directory nested1513 = root1513.NavigatePath("trunk/Source/NFX.Web/IO/FileSystem") as WebDAV.Directory;
                WebDAV.Directory nested1523 = root1523.NavigatePath("trunk/Source/NFX.Web/IO/FileSystem") as WebDAV.Directory;

                Assert.IsNull(nested1513["SVN"]);
                Assert.IsNotNull(nested1523["SVN"]);
            }
        }
示例#2
0
        public void CreateWriteReadFile_3()
        {
            using (new NFX.ApplicationModel.ServiceBaseApplication(null, LACONF.AsLaconicConfig()))
            {
                var fs = FS.FileSystem.Instances[NFX_S3];

                using (var session = fs.StartSession())
                {
                    var dir = session[S3_ROOT_FS] as FileSystemDirectory;

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

                    using (var file = session[fs.CombinePaths(S3_ROOT_FS, FN4_FS)] as FileSystemFile)
                    {
                        Assert.AreEqual("this will overwrite", file.ReadAllText());
                    }
                }
            }
        }
示例#3
0
        public void ItemProperties()
        {
            using (new AzosApplication(null, LACONF.AsLaconicConfig()))
            {
                var client = new WebDAV(SVN_ROOT, 0, SVN_UNAME, SVN_UPSW);

                WebDAV.Directory root = client.Root;

                Aver.IsTrue(root.Version.AsInt() > 0);
                Aver.IsTrue(root.CreationDate > DateTime.MinValue);
                Aver.IsTrue(root.LastModificationDate > DateTime.MinValue);

                var maxVersionChild = root.Children.OrderByDescending(c => c.Version).First();

                Console.WriteLine("First Child: " + maxVersionChild);

                Aver.IsTrue(maxVersionChild.Version.AsInt() > 0);
                Aver.IsTrue(maxVersionChild.CreationDate > DateTime.MinValue);
                Aver.IsTrue(maxVersionChild.LastModificationDate > DateTime.MinValue);

                Aver.AreEqual(root.Version, maxVersionChild.Version);
            }
        }
示例#4
0
        public void CreateFileAsync()
        {
            using (new NFX.ApplicationModel.ServiceBaseApplication(null, LACONF.AsLaconicConfig()))
            {
                var fs = FS.FileSystem.Instances[NFX_S3];

                using (var session = fs.StartSession())
                {
                    var task = session.GetItemAsync(S3_ROOT_FS);
                    //task.Start();
                    var dir = task.Result as FileSystemDirectory;

                    var task1 = dir.CreateFileAsync(FN1_FS, 1500);
                    //task1.Start();
                    var file = task1.Result;

                    Assert.AreEqual(FN1_FS, file.Name);

                    Assert.IsTrue(S3V4.FileExists(file.Path, S3_ACCESSKEY, S3_SECRETKEY, S3_BUCKET, S3_REGION, 0));
                    Assert.AreEqual(1500, S3V4.GetItemMetadata(file.Path, S3_ACCESSKEY, S3_SECRETKEY, S3_BUCKET, S3_REGION, 0)["Content-Length"].AsLong());
                    Assert.AreEqual(1500, file.FileStream.Length);
                }
            }
        }
示例#5
0
        public void GetVersionedFiles()
        {
            using (new NFX.ApplicationModel.ServiceBaseApplication(null, LACONF.AsLaconicConfig()))
            {
                IList <WebDAV.Version> versions = WebDAV.GetVersions(SVN_ROOT, SVN_UNAME, SVN_UPSW).ToList();

                WebDAV.Version v192 = versions.First(v => v.Name == "192");
                WebDAV.Version v110 = versions.First(v => v.Name == "110");

                var fs = FS.Instances["NFX-SVN"];
                using (var session = fs.StartSession())
                {
                    session.Version = v192;
                    var    file192     = session["trunk/Source/NFX.Wave/Templatization/StockContent/Embedded/script/wv.js"] as FileSystemFile;
                    string content1530 = file192.ReadAllText();

                    session.Version = v110;
                    var    file110     = session["trunk/Source/NFX.Wave/Templatization/StockContent/Embedded/script/wv.js"] as FileSystemFile;
                    string content1531 = file110.ReadAllText();

                    Assert.AreNotEqual(content1530, content1531);
                }
            }
        }
示例#6
0
        public void GetVersionedFiles()
        {
            using (new NFX.ApplicationModel.ServiceBaseApplication(null, LACONF.AsLaconicConfig()))
            {
                IList <WebDAV.Version> versions = WebDAV.GetVersions(SVN_ROOT, SVN_UNAME, SVN_UPSW).ToList();

                WebDAV.Version v1530 = versions.First(v => v.Name == "1530");
                WebDAV.Version v1531 = versions.First(v => v.Name == "1531");

                var fs = FS.Instances["NFX-SVN"];
                using (var session = fs.StartSession())
                {
                    session.Version = v1530;
                    var    file1530    = session["trunk/Source/NFX.Web/IO/FileSystem/SVN/WebDAV.cs"] as FileSystemFile;
                    string content1530 = file1530.ReadAllText();

                    session.Version = v1531;
                    var    file1531    = session["trunk/Source/NFX.Web/IO/FileSystem/SVN/WebDAV.cs"] as FileSystemFile;
                    string content1531 = file1531.ReadAllText();

                    Assert.AreNotEqual(content1530, content1531);
                }
            }
        }
示例#7
0
 private IConfigSectionNode getFSNode(string name)
 {
     return(LACONF.AsLaconicConfig()[NFX.IO.FileSystem.FileSystem.CONFIG_FILESYSTEMS_SECTION].Children.First(c => c.IsSameNameAttr(name)));
 }
示例#8
0
        public void Parallel_CreateWriteReadFile_Async()
        {
            using (new NFX.ApplicationModel.ServiceBaseApplication(null, LACONF.AsLaconicConfig()))
            {
                var fs = FS.FileSystem.Instances[NFX_S3];

                var tasks = new List <Task>();

                System.Threading.Tasks.Parallel.For(PARALLEL_FROM, PARALLEL_TO,
                                                    (i) =>
                {
                    var fn = FN_PARALLEL_MASK.Args(i);

                    var session = fs.StartSession();

                    FileSystemDirectory dir = null;
                    FileSystemFile file     = null;

                    var t = session.GetItemAsync(S3_ROOT_FS)
                            .OnOk(item =>
                    {
                        dir = item as FileSystemDirectory;
                        return(dir.CreateFileAsync(fn));
                    }).OnOk(f => {
                        Console.WriteLine("file '{0}' created", f.Name);
                        file = f;
                        return(file.WriteAllTextAsync("Hello, {0}".Args(i)));
                    })
                            .OnOkOrError(_ => {
                        Console.WriteLine("text written into '{0}'", file.Name);
                        if (file != null && !file.Disposed)
                        {
                            file.Dispose();
                            Console.WriteLine("file '{0}' disposed", file.Name);
                        }
                    })
                            .OnOk(() => session.GetItemAsync(fs.CombinePaths(S3_ROOT_FS, fn)))
                            .OnOk(item => {
                        file = item as FileSystemFile;
                        Console.WriteLine("file {0} got", file.Name);
                        return(file.ReadAllTextAsync());
                    })
                            .OnOk(txt => {
                        Console.WriteLine("file '{0}' red {1}", file.Name, txt);
                        Assert.AreEqual("Hello, {0}".Args(i), txt);
                        return(file.DeleteAsync());
                    })
                            .OnOkOrError(_ => {
                        Console.WriteLine("file '{0}' deleted", file.Name);
                        if (file != null && !file.Disposed)
                        {
                            file.Dispose();
                            Console.WriteLine("file '{0}' disposed", file.Name);
                        }
                    })
                            .OnOk(() => session.GetItemAsync(fs.CombinePaths(S3_ROOT_FS, fn)))
                            .OnOk(item => { Assert.IsNull(item); })
                            .OnOkOrError(_ => { if (!session.Disposed)
                                                {
                                                    session.Dispose();
                                                }
                                         });

                    tasks.Add(t);
                });//Parallel.For

                Console.WriteLine("all tasks created");

                Task.WaitAll(tasks.ToArray());

                Assert.AreEqual(0, fs.Sessions.Count());//checking item registation via .ctor/.dctor

                Console.WriteLine("done");
            }
        }
示例#9
0
 private NFX.ApplicationModel.ServiceBaseApplication CreateApplication()
 {
     return(new NFX.ApplicationModel.ServiceBaseApplication(null, LACONF.AsLaconicConfig()));
 }