Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
 /// <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;
 }
Ejemplo n.º 3
0
        ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
        ///////////////////////////////////////////////////////////////////////////////////////////////////////////////

        #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);
        }
Ejemplo n.º 4
0
        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));
        }
Ejemplo n.º 5
0
        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));
        }
Ejemplo n.º 6
0
        /// <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"));
        }