PageRenderTime 51ms CodeModel.GetById 27ms RepoModel.GetById 1ms app.codeStats 0ms

/Extensions/src/Ncqrs.Eventing.Storage.JOliver.Tests/AbsoluteOrderingSqlPersistenceEngineTests.cs

http://github.com/ncqrs/ncqrs
C# | 63 lines | 54 code | 9 blank | 0 comment | 0 complexity | 5cab5ae23e26b533bc6a87bf7d188a27 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 EventStore;
  5. using EventStore.Serialization;
  6. using Ncqrs.Eventing.Storage.JOliver.SqlPersistence;
  7. using NUnit.Framework;
  8. using FluentAssertions;
  9. namespace Ncqrs.Eventing.Storage.JOliver.Tests
  10. {
  11. [TestFixture]
  12. public class AbsoluteOrderingSqlPersistenceEngineTests
  13. {
  14. private IPersistStreamsWithAbsoluteOrdering _sut;
  15. [Test]
  16. public void Pipeline_state_is_persisted()
  17. {
  18. string pipelineName = Guid.NewGuid().ToString();
  19. var emptyState = _sut.GetLastProcessedSequentialNumber(pipelineName);
  20. emptyState.Should().Be(0);
  21. var headers = new Dictionary<string, object>();
  22. var commit = new Commit(Guid.NewGuid(), 1, Guid.NewGuid(), 1, DateTime.UtcNow, headers, new List<EventMessage>(){new EventMessage()});
  23. _sut.Commit(commit);
  24. _sut.MarkLastProcessed(pipelineName, commit.StreamId, commit.CommitId);
  25. var setState = _sut.GetLastProcessedSequentialNumber(pipelineName);
  26. setState.Should().NotBe(0);
  27. }
  28. [Test]
  29. public void Fetching_from_given_id_should_return_commit_with_given_id_and_newer()
  30. {
  31. var streamId = Guid.NewGuid();
  32. var firstCommit = streamId.BuildAttempt();
  33. var secondCommit = firstCommit.BuildNextAttempt();
  34. var thirdCommit = secondCommit.BuildNextAttempt();
  35. _sut.Commit(firstCommit);
  36. _sut.Commit(secondCommit);
  37. _sut.Commit(thirdCommit);
  38. var all = _sut.Fetch(0,100).ToList();
  39. var second = all[all.Count-2];
  40. second.CommitId.Should().Be(secondCommit.CommitId);
  41. var secondAndLater = _sut.Fetch((long)second.Headers["SequentialId"],100).ToList();
  42. secondAndLater.Count.Should().Be(2);
  43. second = secondAndLater[0];
  44. second.CommitId.Should().Be(secondCommit.CommitId);
  45. }
  46. [SetUp]
  47. public void Initialize()
  48. {
  49. var factory = new AbsoluteOrderingSqlPersistenceFactory("EventStore", new BinarySerializer(), false);
  50. _sut = (IPersistStreamsWithAbsoluteOrdering)factory.Build();
  51. _sut.Initialize();
  52. }
  53. }
  54. }