PageRenderTime 44ms CodeModel.GetById 18ms RepoModel.GetById 0ms app.codeStats 0ms

/Extensions/src/Ncqrs.EventBus.Tests/EventDemultiplexerSpecification.cs

http://github.com/ncqrs/ncqrs
C# | 65 lines | 52 code | 13 blank | 0 comment | 0 complexity | 67a5d9dcb414904bcfedfad680ddcc59 MD5 | raw file
Possible License(s): MPL-2.0-no-copyleft-exception, Apache-2.0
  1. using System;
  2. using Ncqrs.Eventing;
  3. using NUnit.Framework;
  4. using FluentAssertions;
  5. namespace Ncqrs.EventBus.Tests
  6. {
  7. [TestFixture]
  8. public class EventDemultiplexerSpecification
  9. {
  10. [Test]
  11. public void When_event_source_is_not_blocked_event_is_passed_through_system()
  12. {
  13. Guid eventSourceId = Guid.NewGuid();
  14. int enqueuedToProcessingCount = 0;
  15. var sut = new Demultiplexer();
  16. sut.EventDemultiplexed += (s, e) => { enqueuedToProcessingCount++; };
  17. sut.Demultiplex(CreateElement(eventSourceId));
  18. enqueuedToProcessingCount.Should().Be(1);
  19. }
  20. [Test]
  21. public void Different_event_sources_does_not_block_each_other()
  22. {
  23. Guid firstEventSourceId = Guid.NewGuid();
  24. Guid secondEventSourceId = Guid.NewGuid();
  25. int enqueuedToProcessingCount = 0;
  26. var sut = new Demultiplexer();
  27. sut.EventDemultiplexed += (s, e) => { enqueuedToProcessingCount++; };
  28. sut.Demultiplex(CreateElement(firstEventSourceId));
  29. sut.Demultiplex(CreateElement(secondEventSourceId));
  30. enqueuedToProcessingCount.Should().Be(2);
  31. }
  32. [Test]
  33. public void When_event_source_is_blocked_event_is_enqueued()
  34. {
  35. Guid eventSourceId = Guid.NewGuid();
  36. int enqueuedToProcessingCount = 0;
  37. var sut = new Demultiplexer();
  38. sut.EventDemultiplexed += (s, e) => { enqueuedToProcessingCount++; };
  39. sut.Demultiplex(CreateElement(eventSourceId));
  40. sut.Demultiplex(CreateElement(eventSourceId));
  41. enqueuedToProcessingCount.Should().Be(1);
  42. }
  43. private static IProcessingElement CreateElement(Guid sourceId)
  44. {
  45. return new FakeProcessingElement
  46. {
  47. GroupingKey = sourceId,
  48. UniqueId = Guid.NewGuid().ToString()
  49. };
  50. }
  51. }
  52. }