示例#1
0
        public void LookGetLock_Test()
        {
            SvnSandBox sbox = new SvnSandBox(this);

            sbox.Create(SandBoxRepository.DefaultBranched);
            int n = 0;

            Client.RemoteLock(new Uri(sbox.Uri, "src/file3.cpp"), "LOCKED!");

            using (InstallHook(sbox.RepositoryUri, SvnHookType.PreLock,
                               delegate(object sender, ReposHookEventArgs e)
            {
                using (SvnLookClient look = new SvnLookClient())
                {
                    SvnLockInfo info;
                    look.GetLock(e.HookArgs.LookOrigin, e.HookArgs.Path, out info);
                    n++;
                }
            }))
                using (InstallHook(sbox.RepositoryUri, SvnHookType.PostLock,
                                   delegate(object sender, ReposHookEventArgs e)
                {
                    using (SvnLookClient look = new SvnLookClient())
                    {
                        SvnLockInfo info;
                        foreach (string path in e.HookArgs.Paths)
                        {
                            look.GetLock(e.HookArgs.LookOrigin, path, out info);
                            Assert.That(info, Is.Not.Null);
                            n++;
                        }
                        n++; // 1 more
                    }
                }))
                    using (InstallHook(sbox.RepositoryUri, SvnHookType.PreUnlock,
                                       delegate(object sender, ReposHookEventArgs e)
                    {
                        using (SvnLookClient look = new SvnLookClient())
                        {
                            SvnLockInfo info;
                            look.GetLock(e.HookArgs.LookOrigin, e.HookArgs.Path, out info);
                            n++;
                        }
                    }))
                        using (InstallHook(sbox.RepositoryUri, SvnHookType.PostUnlock,
                                           delegate(object sender, ReposHookEventArgs e)
                        {
                            using (SvnLookClient look = new SvnLookClient())
                            {
                                SvnLockInfo info;
                                foreach (string path in e.HookArgs.Paths)
                                {
                                    look.GetLock(e.HookArgs.LookOrigin, path, out info);
                                    Assert.That(info, Is.Null);
                                    n++;
                                }
                                n++; // 1 more
                            }
                        }))
                        {
                            using (SvnLookClient look = new SvnLookClient())
                            {
                                SvnLockInfo info;
                                look.GetLock(new SvnLookOrigin(sbox.RepositoryUri.LocalPath), "trunk/src/file3.cpp", out info);
                                Assert.That(info, Is.Not.Null);
                                Assert.That(info.Comment, Is.EqualTo("LOCKED!"));
                            }
                            Client.Lock(Path.Combine(sbox.Wc, "src", "file1.cs"), "Can I?");

                            Client.Unlock(Path.Combine(sbox.Wc, "src", "file1.cs"));

                            string[] twopaths = new string[]
                            {
                                Path.Combine(sbox.Wc, "src", "file1.cs"),
                                Path.Combine(sbox.Wc, "src", "file2.vb")
                            };
                            Client.Lock(twopaths, "Can I?");
                            Client.Unlock(twopaths);
                        }

            Assert.That(n, Is.EqualTo(16));
        }
示例#2
0
        public void LookGetLock_Test()
        {
            SvnSandBox sbox = new SvnSandBox(this);
            sbox.Create(SandBoxRepository.DefaultBranched);
            int n = 0;

            Client.RemoteLock(new Uri(sbox.Uri, "src/file3.cpp"), "LOCKED!");

            using (InstallHook(sbox.RepositoryUri, SvnHookType.PreLock,
                delegate (object sender, ReposHookEventArgs e)
                {
                    using (SvnLookClient look = new SvnLookClient())
                    {
                        SvnLockInfo info;
                        look.GetLock(e.HookArgs.LookOrigin, e.HookArgs.Path, out info);
                        n++;
                    }
                }))
            using (InstallHook(sbox.RepositoryUri, SvnHookType.PostLock,
                delegate (object sender, ReposHookEventArgs e)
                {
                    using (SvnLookClient look = new SvnLookClient())
                    {
                        SvnLockInfo info;
                        foreach (string path in e.HookArgs.Paths)
                        {
                            look.GetLock(e.HookArgs.LookOrigin, path, out info);
                            Assert.That(info, Is.Not.Null);
                            n++;
                        }
                        n++; // 1 more
                    }
                }))
            using (InstallHook(sbox.RepositoryUri, SvnHookType.PreUnlock,
                delegate (object sender, ReposHookEventArgs e)
                {
                    using (SvnLookClient look = new SvnLookClient())
                    {
                        SvnLockInfo info;
                        look.GetLock(e.HookArgs.LookOrigin, e.HookArgs.Path, out info);
                        n++;
                    }
                }))
            using (InstallHook(sbox.RepositoryUri, SvnHookType.PostUnlock,
                delegate (object sender, ReposHookEventArgs e)
                {
                    using (SvnLookClient look = new SvnLookClient())
                    {
                        SvnLockInfo info;
                        foreach (string path in e.HookArgs.Paths)
                        {
                            look.GetLock(e.HookArgs.LookOrigin, path, out info);
                            Assert.That(info, Is.Null);
                            n++;
                        }
                        n++; // 1 more
                    }
                }))
            {

                using (SvnLookClient look = new SvnLookClient())
                {
                    SvnLockInfo info;
                    look.GetLock(new SvnLookOrigin(sbox.RepositoryUri.LocalPath), "trunk/src/file3.cpp", out info);
                    Assert.That(info, Is.Not.Null);
                    Assert.That(info.Comment, Is.EqualTo("LOCKED!"));
                }
                Client.Lock(Path.Combine(sbox.Wc, "src", "file1.cs"), "Can I?");

                Client.Unlock(Path.Combine(sbox.Wc, "src", "file1.cs"));

                string[] twopaths = new string[]
                {
                     Path.Combine(sbox.Wc, "src", "file1.cs"),
                     Path.Combine(sbox.Wc, "src", "file2.vb")
                };
                Client.Lock(twopaths, "Can I?");
                Client.Unlock(twopaths);
            }

            Assert.That(n, Is.EqualTo(16));
        }