public void Commit_timestamp_taken_from_base_header() { var sut = new TestDomainEvent(); var changeset = new Changeset(1, new[] { sut }); var ts = new DateTime(2020, 12, 3, 23, 21, 4); changeset.Add(ChangesetCommonHeaders.Timestamp, ts); sut.Context = changeset.Headers; Assert.That(sut.CommitStamp, Is.EqualTo(ts)); }
/// <summary> /// Merges the specified changesets. /// </summary> /// <param name="changeset1">The changeset1.</param> /// <param name="changeset2">The changeset2.</param> /// <param name="source">The source.</param> /// <returns></returns> public Changeset<IChange> Merge(MergableChangeset changeset1, MergableChangeset changeset2, IReadOnlyList<string> source) { var result = new Changeset<IChange>(); IEnumerable<IChange> changes = CollectChanges(changeset1, changeset2, source); foreach (IChange change in changes) { result.Add(change.Start, change); } return result; }
/////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////// #region IChangeSetMerger implementation /// <summary> /// Merges the specified changesets. /// </summary> /// <param name="changeset1">The changeset1.</param> /// <param name="changeset2">The changeset2.</param> /// <param name="source">The source.</param> /// <returns></returns> public Changeset <IChange> Merge(MergableChangeset changeset1, MergableChangeset changeset2, IReadOnlyList <string> source) { var result = new Changeset <IChange>(); IEnumerable <IChange> changes = CollectChanges(changeset1, changeset2, source); foreach (IChange change in changes) { result.Add(change.Start, change); } return(result); }
public void Commit_timestamp_resilient_to_null() { var sut = new TestDomainEvent(); var changeset = new Changeset(1, new[] { sut }); Assert.That(sut.CommitStamp, Is.EqualTo(DateTime.MinValue)); // now add a null value. changeset.Add(ChangesetCommonHeaders.Timestamp, null); Assert.That(sut.CommitStamp, Is.EqualTo(DateTime.MinValue)); }
public void Commit_timestamp_can_be_overridden() { var sut = new TestDomainEvent(); var changeset = new Changeset(1, new[] { sut }); var ts = new DateTime(2020, 12, 3, 23, 21, 4); var ts2 = ts.AddDays(219); changeset.Add(ChangesetCommonHeaders.Timestamp, ts); sut.Context = changeset.Headers; Assert.That(sut.CommitStamp, Is.EqualTo(ts)); //Act: add the override header sut.Context.Add(MessagesConstants.OverrideCommitTimestamp, ts2); //Assert: verify the override timestamp Assert.That(sut.CommitStamp, Is.EqualTo(ts2)); }
/// <summary> /// Merges the specified changesets. /// </summary> /// <param name="changeset1">The changeset1.</param> /// <param name="changeset2">The changeset2.</param> /// <param name="source">The source.</param> /// <returns></returns> /// <exception cref="System.ArgumentNullException"></exception> public Changeset <IChange> Merge(MergableChangeset changeset1, MergableChangeset changeset2, IReadOnlyList <string> source) { if ((changeset1 == null) || (changeset2 == null) || (source == null)) { throw new ArgumentNullException(); } changeset1.Verify(source.Count); changeset2.Verify(source.Count); var result = new Changeset <IChange>(); foreach (int key in changeset1.Keys) { result.Add(key, changeset1[key]); } return(result); }
public void Can_copy_all_headers() { var chunk = CreateTestChunk(new Object(), CreateAnEvent(), new Object()); _payload.Add("Foo", "Bar"); _sut.Enhance(chunk); var evt = chunk.DomainEvents[0]; //no specific data, standard commit data should be used. Assert.That(evt.Context.Single().Key, Is.EqualTo("Foo")); Assert.That(evt.Context.Single().Value, Is.EqualTo("Bar")); }