public void Path_NormalizePathSharpFail() { string result = null; bool gotException = false; try { result = SvnTools.GetNormalizedFullPath("c:\\<>\\..\\123456789012345678901234567890123456789012345678901234567890" + "123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890" + "123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890" + "123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890" + "123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890" + "123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"); } catch (ArgumentException) { Assert.That(Environment.Version.Major, Is.LessThan(4)); gotException = true; } if (Environment.Version.Major >= 4) { Assert.That(result, Is.Not.Null); } else { Assert.That(gotException, "Got exception"); } }
void OnPreCommit(object sender, ReposHookEventArgs e) { using (SvnLookClient cl = new SvnLookClient()) { SvnChangeInfoArgs ia = new SvnChangeInfoArgs(); SvnChangeInfoEventArgs i; Assert.That(cl.GetChangeInfo(e.HookArgs.LookOrigin, ia, out i)); Assert.That(i.Revision, Is.LessThan(0L)); Assert.That(i.Author, Is.EqualTo(Environment.UserName)); Assert.That(i.LogMessage, Is.EqualTo("Blaat!\r\nQWQQ\r\n")); using (MemoryStream ms = new MemoryStream()) { SvnLookWriteArgs wa = new SvnLookWriteArgs(); cl.Write(e.HookArgs.LookOrigin, "trunk/Pre.txt", ms, wa); ms.Position = 0; using (StreamReader sr = new StreamReader(ms)) { Assert.That(sr.ReadToEnd(), Is.EqualTo("AllTheData")); } string v; cl.GetProperty(e.HookArgs.LookOrigin, "trunk/Pre.txt", "boe", out v); Assert.That(v, Is.EqualTo("blaat")); SvnPropertyCollection props; cl.GetPropertyList(e.HookArgs.LookOrigin, "trunk/Pre.txt", out props); Assert.That(props, Is.Not.Null); Assert.That(props.Count, Is.EqualTo(1)); } Guid id; Assert.That(cl.TryGetRepositoryId(e.HookArgs.LookOrigin, out id)); Assert.That(id, Is.Not.EqualTo(Guid.Empty)); } }
public void FileVersions_ListIndex() { SvnSandBox sbox = new SvnSandBox(this); Uri reposUri = sbox.CreateRepository(SandBoxRepository.DefaultBranched); bool touched = false; SvnFileVersionsArgs fa = new SvnFileVersionsArgs(); fa.RetrieveProperties = true; Client.FileVersions(new Uri(reposUri, "trunk/README.txt"), fa, delegate(object sender, SvnFileVersionEventArgs e) { touched = true; Assert.That(e.RevisionProperties, Is.Not.Null, "Revision properties available"); Assert.That(e.Properties, Is.Not.Null, "Properties available"); Assert.That(e.RevisionProperties.Contains(SvnPropertyNames.SvnAuthor)); // Assert.That(e.Properties.Contains(SvnPropertyNames.SvnEolStyle)); Assert.That(e.Revision, Is.GreaterThan(0)); Assert.That(e.Author, Is.Not.Null); Assert.That(e.LogMessage, Is.Not.Null); Assert.That(e.Time, Is.LessThan(DateTime.UtcNow).And.GreaterThan(DateTime.UtcNow - new TimeSpan(0, 0, 2, 0))); using (StreamReader sr = new StreamReader(e.GetContentStream())) { string content = sr.ReadToEnd(); Assert.That(content, Is.Not.Null); Assert.That(content.Length, Is.GreaterThan(10)); } }); Assert.That(touched); }
public void TestInfo() { SvnSandBox sbox = new SvnSandBox(this); Uri reposUri = sbox.CreateRepository(SandBoxRepository.Empty); Uri WcUri = reposUri; string wc = sbox.Wc; using (SvnClient client = NewSvnClient(true, false)) { client.CheckOut(reposUri, wc); string file = Path.Combine(wc, "InfoFile"); TouchFile(file); client.Add(file); bool visited = false; client.Info(file, delegate(object sender, SvnInfoEventArgs e) { Assert.That(e.ChangeList, Is.Null); Assert.That(e.Checksum, Is.Null); Assert.That(e.ConflictNew, Is.Null); Assert.That(e.ConflictOld, Is.Null); Assert.That(e.ConflictWork, Is.Null); Assert.That(e.ContentTime, Is.EqualTo(DateTime.MinValue)); Assert.That(e.CopyFromRevision, Is.EqualTo(-1L)); Assert.That(e.CopyFromUri, Is.Null); Assert.That(e.Depth, Is.EqualTo(SvnDepth.Unknown)); Assert.That(e.FullPath, Is.EqualTo(file)); Assert.That(e.HasLocalInfo, Is.True); Assert.That(e.LastChangeAuthor, Is.Null); Assert.That(e.LastChangeTime, Is.EqualTo(DateTime.MinValue)); Assert.That(e.LastChangeRevision, Is.EqualTo(-1L), "Not committed yet; LastChangeRevision = -1"); // Not committed yet Assert.That(e.Lock, Is.Null); Assert.That(e.NodeKind, Is.EqualTo(SvnNodeKind.File)); Assert.That(e.Path, Is.Not.Null); Assert.That(e.PropertyEditFile, Is.Null); //Assert.That(e.PropertyTime, Is.EqualTo(DateTime.MinValue)); Assert.That(e.ContentTime, Is.EqualTo(DateTime.MinValue)); Assert.That(e.RepositorySize, Is.EqualTo(-1L)); Assert.That(e.RepositoryRoot, Is.EqualTo(reposUri), "Repository valid"); Assert.That(e.Revision, Is.LessThanOrEqualTo(0L), "Not committed yet"); Assert.That(e.Schedule, Is.EqualTo(SvnSchedule.Add)); Assert.That(e.Uri, Is.EqualTo(new Uri(WcUri, "InfoFile"))); Assert.That(e.WorkingCopySize, Is.EqualTo(-1L)); visited = true; }); Assert.That(visited); SvnCommitResult commitData; client.Commit(wc, out commitData); visited = false; client.Info(file, delegate(object sender, SvnInfoEventArgs e) { Assert.That(e.ChangeList, Is.Null); Assert.That(e.Checksum, Is.EqualTo("da39a3ee5e6b4b0d3255bfef95601890afd80709")); Assert.That(e.ConflictNew, Is.Null); Assert.That(e.ConflictOld, Is.Null); Assert.That(e.ConflictWork, Is.Null); Assert.That(e.ContentTime, Is.GreaterThan(DateTime.UtcNow - new TimeSpan(0, 5, 0))); Assert.That(e.CopyFromRevision, Is.EqualTo(-1L)); Assert.That(e.CopyFromUri, Is.Null); Assert.That(e.Depth, Is.EqualTo(SvnDepth.Unknown)); Assert.That(e.FullPath, Is.EqualTo(file)); Assert.That(e.HasLocalInfo, Is.True); Assert.That(e.LastChangeAuthor, Is.EqualTo(Environment.UserName)); Assert.That(e.LastChangeTime, Is.GreaterThan(DateTime.UtcNow - new TimeSpan(0, 5, 0))); Assert.That(e.LastChangeRevision, Is.EqualTo(commitData.Revision)); Assert.That(e.Lock, Is.Null); Assert.That(e.NodeKind, Is.EqualTo(SvnNodeKind.File)); Assert.That(e.Path, Is.Not.Null); Assert.That(e.PropertyEditFile, Is.Null); //Assert.That(e.PropertyTime, Is.EqualTo(e.ContentTime)); // Not static, might change Assert.That(e.RepositorySize, Is.EqualTo(-1L)); Assert.That(e.RepositoryRoot, Is.EqualTo(reposUri)); Assert.That(e.Revision, Is.EqualTo(commitData.Revision)); Assert.That(e.Schedule, Is.EqualTo(SvnSchedule.Normal)); Assert.That(e.Uri, Is.EqualTo(new Uri(WcUri, "InfoFile"))); Assert.That(e.WorkingCopySize, Is.EqualTo(0L)); visited = true; }); Assert.That(visited); visited = false; client.Info(new Uri(WcUri, "InfoFile"), delegate(object sender, SvnInfoEventArgs e) { Assert.That(e.ChangeList, Is.Null); Assert.That(e.Checksum, Is.Null); Assert.That(e.ConflictNew, Is.Null); Assert.That(e.ConflictOld, Is.Null); Assert.That(e.ConflictWork, Is.Null); Assert.That(e.ContentTime, Is.EqualTo(DateTime.MinValue)); Assert.That(e.CopyFromRevision, Is.LessThanOrEqualTo(0L)); Assert.That(e.CopyFromUri, Is.Null); Assert.That(e.Depth, Is.EqualTo(SvnDepth.Unknown)); Assert.That(e.FullPath, Is.Null); Assert.That(e.HasLocalInfo, Is.False); Assert.That(e.LastChangeAuthor, Is.EqualTo(Environment.UserName)); Assert.That(e.LastChangeTime, Is.GreaterThan(DateTime.UtcNow - new TimeSpan(0, 5, 0))); Assert.That(e.LastChangeTime, Is.LessThan(DateTime.UtcNow + new TimeSpan(0, 5, 0))); Assert.That(e.LastChangeRevision, Is.EqualTo(commitData.Revision)); Assert.That(e.Lock, Is.Null); Assert.That(e.NodeKind, Is.EqualTo(SvnNodeKind.File)); Assert.That(e.Path, Is.Not.Null); Assert.That(e.PropertyEditFile, Is.Null); //Assert.That(e.PropertyTime, Is.EqualTo(e.ContentTime)); Assert.That(e.RepositorySize, Is.EqualTo(0L)); Assert.That(e.RepositoryRoot, Is.EqualTo(reposUri)); Assert.That(e.Revision, Is.EqualTo(commitData.Revision)); Assert.That(e.Schedule, Is.EqualTo(SvnSchedule.Normal)); Assert.That(e.Uri, Is.EqualTo(new Uri(WcUri, "InfoFile"))); Assert.That(e.WorkingCopySize, Is.EqualTo(-1L)); visited = true; }); Assert.That(visited); } }