public void Should_return_empty_for_empty_file() { blame = GitBlame.Parse("".ToStream()); blame.Should().NotBeNull(); blame.Count.Should().Be(0); }
public IBlame Blame(string revision, string filePath) { using (var blame = GetBlame(revision, filePath)) { return(GitBlame.Parse(blame)); } }
public static GitBlame Parse(Stream blameData) { if (blameData == null) { return(null); } TextReader reader = new StreamReader(blameData); var result = new GitBlame(); string line; while ((line = reader.ReadLine()) != null) { if ((line.Length >= 46) && (line.Length < 100)) { string[] parts = line.Split(' '); if ((parts.Length == 4) && (parts[0].Length == 40)) { string revision = parts[0]; int lines = Convert.ToInt32(parts[3]); if (!result.ContainsKey(revision)) { result.Add(revision, 0); } result[revision] += lines; } } } return(result); }
public void Should_keep_revisions_for_each_line() { blame = GitBlame.Parse(blame0.ToStream()); blame["a59b276e18f3d4a548caf549e05188cb1bd3a709"] .Should().Be(15); blame["54988bdad7dc3f09e40752221c144bf470d73aa7"] .Should().Be(3); blame["54988bdad7dc3f09e40752221c144bf470d73aa7"] .Should().Be(3); }
public void Should_return_null_for_invalid_path() { blame = GitBlame.Parse(null); blame.Should().BeNull(); }