PageRenderTime 47ms CodeModel.GetById 23ms RepoModel.GetById 0ms app.codeStats 0ms

/Framework/src/Ncqrs.Tests/Eventing/CommittedEventStreamTests.cs

http://github.com/ncqrs/ncqrs
C# | 109 lines | 87 code | 22 blank | 0 comment | 0 complexity | 2aba128c46cec1f8fe435c4a8410f830 MD5 | raw file
Possible License(s): MPL-2.0-no-copyleft-exception, Apache-2.0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using FluentAssertions;
  5. using Ncqrs.Eventing;
  6. using Xunit;
  7. using Ncqrs.Spec;
  8. namespace Ncqrs.Tests.Eventing
  9. {
  10. public class CommittedEventStreamTests
  11. {
  12. [Fact]
  13. public void Init_with_source_id_only_should_set_source_id_and_have_no_events()
  14. {
  15. var sourceId = Guid.NewGuid();
  16. var sut = new CommittedEventStream(sourceId);
  17. sut.SourceId.Should().Be(sourceId);
  18. sut.Count().Should().Be(0);
  19. }
  20. [Fact]
  21. public void Init_with_source_id_an_null_stream_should_set_source_id_and_have_no_events()
  22. {
  23. var sourceId = Guid.NewGuid();
  24. var nullStream = (IEnumerable<CommittedEvent>) null;
  25. var sut = new CommittedEventStream(sourceId, nullStream);
  26. sut.SourceId.Should().Be(sourceId);
  27. sut.Count().Should().Be(0);
  28. }
  29. [Fact]
  30. public void Init_with_source_id_and_stream_should_set_source_id_and_contain_all_events_as_given()
  31. {
  32. var sourceId = Guid.NewGuid();
  33. var stream = new[]
  34. {
  35. new CommittedEvent(Guid.NewGuid(), Guid.NewGuid(), sourceId, 1, DateTime.Now, new object(),
  36. new Version(1, 0))
  37. };
  38. var sut = new CommittedEventStream(sourceId, stream);
  39. sut.SourceId.Should().Be(sourceId);
  40. sut.Should().BeEquivalentTo(stream);
  41. }
  42. [Fact]
  43. public void Init_should_set_From_and_To_version_information()
  44. {
  45. var sourceId = Guid.NewGuid();
  46. var eventObjects = new[] { new Object(), new Object(), new Object() };
  47. var committedEvents = Prepare.Events(eventObjects).ForSource(sourceId, 5).ToList();
  48. var sut = new CommittedEventStream(sourceId, committedEvents);
  49. sut.FromVersion.Should().Be(committedEvents.First().EventSequence);
  50. sut.ToVersion.Should().Be(committedEvents.Last().EventSequence);
  51. }
  52. [Fact]
  53. public void When_constructing_it_with_events_but_an_element_is_null_it_should_throw_ArgumentNullException()
  54. {
  55. var sourceId = Guid.NewGuid();
  56. var eventsWithAnNullElement = new [] { new CommittedEvent(Guid.NewGuid(), Guid.NewGuid(), sourceId, 0, DateTime.Now, new object(), new Version(1,0)), null };
  57. Action act = () => new CommittedEventStream(sourceId, eventsWithAnNullElement);
  58. act.ShouldThrow<ArgumentNullException>();
  59. }
  60. [Fact]
  61. public void When_constructing_it_with_events_where_one_has_an_incorrect_sequence_it_should_throw_argument_exception()
  62. {
  63. var sourceId = Guid.NewGuid();
  64. var eventObjects = new[] {new Object(), new Object(), new Object()};
  65. var committedEvents = Prepare.Events(eventObjects).ForSource(sourceId).ToList();
  66. var lastEvent = committedEvents.Last();
  67. const int incorrectSequence = int.MaxValue;
  68. var incorrectEvent = new CommittedEvent(lastEvent.CommitId, lastEvent.EventIdentifier, lastEvent.EventSourceId, incorrectSequence, lastEvent.EventTimeStamp, lastEvent.Payload, lastEvent.EventVersion);
  69. committedEvents[committedEvents.Count - 1] = incorrectEvent;
  70. Action act = () => new CommittedEventStream(sourceId, committedEvents);
  71. act.ShouldThrow<ArgumentException>();
  72. }
  73. [Fact]
  74. public void When_constructing_it_with_events_where_one_has_an_incorrect_event_source_id_it_should_throw_argument_exception()
  75. {
  76. var sourceId = Guid.NewGuid();
  77. var eventObjects = new[] { new Object(), new Object(), new Object() };
  78. var committedEvents = Prepare.Events(eventObjects).ForSource(sourceId).ToList();
  79. var lastEvent = committedEvents.Last();
  80. var incorrectSourceId = Guid.NewGuid();
  81. var incorrectEvent = new CommittedEvent(lastEvent.CommitId, lastEvent.EventIdentifier, incorrectSourceId, lastEvent.EventSequence, lastEvent.EventTimeStamp, lastEvent.Payload, lastEvent.EventVersion);
  82. committedEvents[committedEvents.Count - 1] = incorrectEvent;
  83. Action act = () => new CommittedEventStream(sourceId, committedEvents);
  84. act.ShouldThrow<ArgumentException>();
  85. }
  86. }
  87. }