public void CompareTo_NonNumericVersionAndNumericVersion_NonNumericIsGreaterThan() { var nonNumeric = new ChangeVersion("Unreleased"); var numeric = new ChangeVersion("1.10.1"); Assert.That(nonNumeric.CompareTo(numeric), Is.EqualTo(1)); }
public void CompareTo_EqualVersions_Equal() { var versionA = new ChangeVersion("1.10.1"); var versionB = new ChangeVersion("1.10.1"); Assert.That(versionA.CompareTo(versionB), Is.EqualTo(0)); }
public void CompareTo_NonNumericVersions_GreaterOrdinalIsGreaterThan() { var nonNumericA = new ChangeVersion("UnreleasedA"); var nonNumericB = new ChangeVersion("UnreleasedB"); Assert.That(nonNumericB.CompareTo(nonNumericA), Is.EqualTo(1)); }
public override void ReadFull(BinaryReader reader, NetVersion version) { int fullValue = reader.ReadInt32(); cleanSet(fullValue); networkValue = fullValue; ChangeVersion.Merge(version); }
public void CompareTo_HigherVersions_IsLessThan() { var higherMajorVersion = new ChangeVersion("1.9.0"); var higherMinorVersion = new ChangeVersion("0.10.0"); var higherPatchVersion = new ChangeVersion("0.9.1"); var lowerVersion = new ChangeVersion("0.9.0"); Assert.That(lowerVersion.CompareTo(higherMajorVersion), Is.EqualTo(-1)); Assert.That(lowerVersion.CompareTo(higherMinorVersion), Is.EqualTo(-1)); Assert.That(lowerVersion.CompareTo(higherPatchVersion), Is.EqualTo(-1)); }
public void CompareTo_LowerVersions_IsGreaterThan() { var lowerMajorVersion = new ChangeVersion("0.10.1"); var lowerMinorVersion = new ChangeVersion("1.9.1"); var lowerPatchVersion = new ChangeVersion("1.10.0"); var higherVersion = new ChangeVersion("1.10.1"); Assert.That(higherVersion.CompareTo(lowerMajorVersion), Is.EqualTo(1)); Assert.That(higherVersion.CompareTo(lowerMinorVersion), Is.EqualTo(1)); Assert.That(higherVersion.CompareTo(lowerPatchVersion), Is.EqualTo(1)); }
public override void ReadFull(BinaryReader reader, NetVersion version) { reassigned.Read(reader); T remoteValue = readBaseValue(reader, version); if (remoteValue != null) { ReadValueFull(remoteValue, reader, version); } cleanSet(remoteValue); ChangeVersion.Merge(version); }
public void VerifyMinVersionChangelogIsGenerated() { var minVersion = new ChangeVersion("1.0.0"); var now = DateTimeOffset.Now; var yesterday = now.AddDays(-1); var readerMock = new Mock <IGenericReader <ProjectChange> >(); var renderer = new StubbleBuilder().Build(); var readers = new List <IGenericReader <ProjectChange> > { readerMock.Object }; const string projectA = "ProjectA"; const string projectB = "ProjectB"; var expectedChanges = new List <ProjectChange> { new ProjectChange(projectA, new ChangeVersion("1.0.0"), "Added", $"Added some other {projectA} change", now), new ProjectChange(projectB, new ChangeVersion("1.0.0"), "Added", $"Added some other {projectB} change", now), new ProjectChange(projectA, new ChangeVersion("1.0.0"), "Removed", $"Removed some other {projectA} change", now), new ProjectChange(projectB, new ChangeVersion("1.0.0"), "Removed", $"Removed some other {projectB} change", now), new ProjectChange(projectA, new ChangeVersion("0.1.0"), "Added", $"Added some {projectA} change", yesterday), new ProjectChange(projectB, new ChangeVersion("0.1.0"), "Added", $"Added some {projectB} change", yesterday), new ProjectChange(projectA, new ChangeVersion("0.1.0"), "Removed", $"Removed some {projectA} change", yesterday), new ProjectChange(projectB, new ChangeVersion("0.1.0"), "Removed", $"Removed some {projectB} change", yesterday), }; readerMock.Setup(r => r.Values()).Returns(expectedChanges); var expectedA = $@" ## [1.0.0] - {now:yyyy-MM-dd} ### Added - Added some other {projectA} change ### Removed - Removed some other {projectA} change "; var expectedB = $@" ## [1.0.0] - {now:yyyy-MM-dd} ### Added - Added some other {projectB} change ### Removed - Removed some other {projectB} change "; var generator = new ProjectChangelogGenerator(readers, Template, renderer); var projectToActual = generator.Generate(minVersion: minVersion); Assert.That(projectToActual.GetValueOrDefault(projectA), Is.EqualTo(expectedA)); Assert.That(projectToActual.GetValueOrDefault(projectB), Is.EqualTo(expectedB)); }
public override void Read(BinaryReader reader, NetVersion version) { uint count = reader.Read7BitEncoded(); uint timestamp = GetLocalTick(); if (InterpolationWait) { timestamp = (uint)((int)timestamp + base.Root.Clock.InterpolationTicks); } for (uint i = 0u; i < count; i++) { uint delay = reader.ReadUInt32(); incomingEvents.Add(new EventRecording(readEventArg(reader, version), timestamp + delay)); } ChangeVersion.Merge(version); }
private static Commit MockCommit(IChange change, string project = "", ChangeVersion version = null) { var commitMock = new Mock <Commit>(); var commitAuthor = new Signature("Some Author", "Some Email", change.Date); var expectedMessage = $@"{change.Summary} reference: {change.Reference} version: {version} type: {change.ChangeType} project: {project} "; commitMock.SetupGet(x => x.MessageShort).Returns(change.Summary); commitMock.SetupGet(x => x.Author).Returns(commitAuthor); commitMock.SetupGet(x => x.Message).Returns(expectedMessage); return(commitMock.Object); }
public void VerifyEnumeratorStopsAtMinVersion() { var now = DateTimeOffset.Now; var minVersion = new ChangeVersion("1.5.0"); var changeVersion2 = new DefaultChange(new ChangeVersion("2.0.0"), "Added", "Some 2.0.0 Summary", now); var changeVersion1Pt5 = new DefaultChange(minVersion, "Added", "Some 1.5.0 Summary", now.AddDays(-1)); var changeVersion1 = new DefaultChange(new ChangeVersion("1.0.0"), "Added", "Some 1.0.0 Summary", now.AddDays(-2)); var changes = new List <IChange> { changeVersion2, changeVersion1Pt5, changeVersion1 }; var expectedChanges = new List <IChange> { changeVersion2, changeVersion1Pt5 }; var filteredChanges = new FilteredChanges <IChange>(changes, minVersion, new HashSet <string>()); Assert.That(filteredChanges, Is.EquivalentTo(expectedChanges)); }
public void VerifyMinVersionChangelogIsGenerated() { var minVersion = new ChangeVersion("1.0.0"); var now = DateTimeOffset.Now; var yesterday = now.AddDays(-1); var readerMock = new Mock <IGenericReader <IChange> >(); var cacheMock = new Mock <IChangeCache>(); var renderer = new StubbleBuilder().Build(); var readers = new List <IGenericReader <IChange> > { readerMock.Object }; var expectedChanges = new List <IChange> { new DefaultChange(new ChangeVersion("1.0.0"), "Added", "Added some other change", now), new DefaultChange(new ChangeVersion("1.0.0"), "Removed", "Removed some other change", now) }; var allChanges = new List <IChange>(expectedChanges) { new DefaultChange(new ChangeVersion("0.1.0"), "Added", "Added some change", yesterday), new DefaultChange(new ChangeVersion("0.1.0"), "Removed", "Removed some change", yesterday) }; var expectedValueDictionary = ToValueDictionary(expectedChanges); readerMock.Setup(r => r.Values()).Returns(allChanges); cacheMock.Setup(c => c.Add(It.Is <IEnumerable <IChange> >(changes => changes.SequenceEqual(expectedChanges)))); cacheMock.Setup(c => c.GetAsValueDictionary()).Returns(expectedValueDictionary); var expected = $@" ## [1.0.0] - {now:yyyy-MM-dd} ### Added - Added some other change ### Removed - Removed some other change "; var generator = new StringChangelogGenerator(readers, cacheMock.Object, Template, renderer); var actual = generator.Generate(minVersion); Assert.That(actual, Is.EqualTo(expected)); }
public string Generate(ChangeVersion minVersion = null, IEnumerable <string> changeTypesToExclude = null) { var toExclude = changeTypesToExclude?.ToList() ?? new List <string>(); foreach (var reader in _readers) { var values = reader.Values(); if (minVersion != null || toExclude.Any()) { values = new FilteredChanges <IChange>(values, minVersion, toExclude); } _cache.Add(values); } var results = _cache.GetAsValueDictionary(); return(_renderer.Render(_template, results)); }
public Dictionary <string, string> Generate(ChangeVersion minVersion = null, IEnumerable <string> changeTypesToExclude = null) { var projectToCache = new Dictionary <string, IChangeCache>(); var projectToOutput = new Dictionary <string, string>(); var toExclude = changeTypesToExclude?.ToList() ?? new List <string>(); foreach (var reader in _readers) { var values = reader.Values(); if (minVersion != null || toExclude.Any()) { values = new FilteredChanges <ProjectChange>(values, minVersion, toExclude); } foreach (var lookup in values.ToLookup(change => change.Project)) { if (projectToCache.TryGetValue(lookup.Key, out var cache)) { cache.Add(lookup.ToList()); } else { cache = new ChangeCache(); cache.Add(lookup.ToList()); projectToCache.Add(lookup.Key, cache); } } } foreach (var(project, cache) in projectToCache) { var output = _renderer.Render(_template, cache.GetAsValueDictionary()); projectToOutput.Add(project, output); } return(projectToOutput); }
public FilteredChanges(IEnumerable <T> changes, ChangeVersion minVersion, IEnumerable <string> changeTypesToExclude) { _changes = changes; _minVersion = minVersion; _changeTypesToExclude = changeTypesToExclude.Select(tag => tag.ToLower()).ToHashSet(); }
public override void ReadFull(BinaryReader reader, NetVersion version) { ChangeVersion.Merge(version); }
public override void ReadFull(BinaryReader reader, NetVersion version) { ReadDelta(reader, version); CancelInterpolation(); ChangeVersion.Merge(version); }
public override void Read(BinaryReader reader, NetVersion version) { ReadDelta(reader, version); ChangeVersion.Merge(version); }