public void setup()
 {
     _readyHandler = new TestCheckpointManagerMessageHandler();
     _checkpoint   = new ProjectionCheckpoint(
         _readDispatcher, _writeDispatcher, new ProjectionVersion(1, 0, 0), null, _readyHandler,
         CheckpointTag.FromPosition(100, 50), new TransactionFilePositionTagger(),
         CheckpointTag.FromPosition(0, -1), 250);
     _checkpoint.Start();
     _checkpoint.ValidateOrderAndEmitEvents(
         new[]
     {
         new EmittedDataEvent(
             "stream2", Guid.NewGuid(), "type1", "data2", null, CheckpointTag.FromPosition(120, 110), null),
         new EmittedDataEvent(
             "stream3", Guid.NewGuid(), "type2", "data3", null, CheckpointTag.FromPosition(120, 110), null),
         new EmittedDataEvent(
             "stream2", Guid.NewGuid(), "type3", "data4", null, CheckpointTag.FromPosition(120, 110), null),
     });
     _checkpoint.ValidateOrderAndEmitEvents(
         new[]
     {
         new EmittedDataEvent(
             "stream1", Guid.NewGuid(), "type4", "data", null, CheckpointTag.FromPosition(140, 130), null)
     });
 }
コード例 #2
0
 public void setup()
 {
     _readyHandler = new TestCheckpointManagerMessageHandler();
     _checkpoint   = new ProjectionCheckpoint(
         _ioDispatcher, new ProjectionVersion(1, 0, 0), null, _readyHandler,
         CheckpointTag.FromPosition(0, 100, 50), new TransactionFilePositionTagger(0), 250);
     try
     {
         _checkpoint.ValidateOrderAndEmitEvents(
             new[]
         {
             new EmittedEventEnvelope(
                 new EmittedDataEvent(
                     "stream1", Guid.NewGuid(), "type", true, "data", null, CheckpointTag.FromPosition(0, 140, 130), null))
         });
         _checkpoint.ValidateOrderAndEmitEvents(
             new[]
         {
             new EmittedEventEnvelope(
                 new EmittedDataEvent(
                     "stream1", Guid.NewGuid(), "type", true, "data2", null, CheckpointTag.FromPosition(0, 120, 110), null))
         });
     }
     catch (Exception ex)
     {
         _lastException = ex;
     }
 }
        public void setup()
        {
            _readyHandler = new TestCheckpointManagerMessageHandler();
            _checkpoint   = new ProjectionCheckpoint(
                _ioDispatcher, new ProjectionVersion(1, 0, 0), null, _readyHandler,
                CheckpointTag.FromPosition(0, 100, 50), new TransactionFilePositionTagger(0),
                CheckpointTag.FromPosition(0, 0, -1), 250);
            _checkpoint.Start();
            _checkpoint.ValidateOrderAndEmitEvents(
                new[]
            {
                new EmittedEventEnvelope(
                    new EmittedDataEvent(
                        "stream2", Guid.NewGuid(), "type", true, "data2", null, CheckpointTag.FromPosition(0, 120, 110), null)),
                new EmittedEventEnvelope(
                    new EmittedDataEvent(
                        "stream2", Guid.NewGuid(), "type", true, "data4", null, CheckpointTag.FromPosition(0, 120, 110), null)),
            });
            _checkpoint.ValidateOrderAndEmitEvents(
                new[]
            {
                new EmittedEventEnvelope(
                    new EmittedDataEvent(
                        "stream1", Guid.NewGuid(), "type", true, "data", null, CheckpointTag.FromPosition(0, 140, 130), null))
            });
            var writes = _consumer.HandledMessages.OfType <ClientMessage.WriteEvents>().ToArray();

            writes[0].Envelope.ReplyWith(new ClientMessage.WriteEventsCompleted(writes[0].CorrelationId, 0, 0));
            writes[1].Envelope.ReplyWith(new ClientMessage.WriteEventsCompleted(writes[1].CorrelationId, 0, 0));
            _checkpoint.Prepare(CheckpointTag.FromPosition(0, 200, 150));
            //TODO: test whether checkpoint does not allow positions before last emitted event caused by position
        }
コード例 #4
0
 public void setup()
 {
     _readyHandler = new TestCheckpointManagerMessageHandler();
     _checkpoint   = new ProjectionCheckpoint(
         _ioDispatcher, new ProjectionVersion(1, 0, 0), null, _readyHandler,
         CheckpointTag.FromPosition(0, 100, 50), new TransactionFilePositionTagger(0), 250);
 }
コード例 #5
0
 public void setup()
 {
     _readyHandler = new TestMessageHandler <ProjectionMessage.Projections.ReadyForCheckpoint>();
     _checkpoint   = new ProjectionCheckpoint(
         new FakePublisher(), _readyHandler, false, CheckpointTag.FromPosition(0, -1), 250);
     _checkpoint.Start();
 }
コード例 #6
0
 public void setup()
 {
     _readyHandler = new TestCheckpointManagerMessageHandler();;
     _checkpoint   = new ProjectionCheckpoint(
         new FakePublisher(), _readyHandler, CheckpointTag.FromPosition(0, -1), CheckpointTag.FromPosition(0, -1), 250);
     _checkpoint.Start();
 }
 public void setup()
 {
     _readyHandler = new TestCheckpointManagerMessageHandler();
     _checkpoint   = new ProjectionCheckpoint(
         _bus, _ioDispatcher, new ProjectionVersion(1, 0, 0), null, _readyHandler,
         CheckpointTag.FromPosition(0, 100, 50), new TransactionFilePositionTagger(0), 250, 1);
     _checkpoint.Start();
     _checkpoint.ValidateOrderAndEmitEvents(
         new[] {
         new EmittedEventEnvelope(
             new EmittedDataEvent(
                 "stream2", Guid.NewGuid(), "type", true, "data2", null,
                 CheckpointTag.FromPosition(0, 120, 110), null)),
         new EmittedEventEnvelope(
             new EmittedDataEvent(
                 "stream2", Guid.NewGuid(), "type", true, "data4", null,
                 CheckpointTag.FromPosition(0, 120, 110), null)),
     });
     _checkpoint.ValidateOrderAndEmitEvents(
         new[] {
         new EmittedEventEnvelope(
             new EmittedDataEvent(
                 "stream1", Guid.NewGuid(), "type", true, "data", null,
                 CheckpointTag.FromPosition(0, 140, 130), null))
     });
     _checkpoint.ValidateOrderAndEmitEvents(
         new[] {
         new EmittedEventEnvelope(
             new EmittedDataEvent(
                 "stream1", Guid.NewGuid(), "type", true, "data", null,
                 CheckpointTag.FromPosition(0, 160, 150), null))
     });
     _checkpoint.Prepare(CheckpointTag.FromPosition(0, 200, 150));
 }
コード例 #8
0
 private void MockSaveCheckpoint()
 {
     this._storeMock.GetWriter <object, ProjectionCheckpoint>().SaveAsync(Arg.Any <string>(), Arg.Any <ProjectionCheckpoint>()).Returns(c =>
     {
         this._savedCheckpoint = ( ProjectionCheckpoint )c[1];
         return(Task.FromResult(true));
     });
 }
コード例 #9
0
        public void setup()
        {
            _readyHandler = new TestCheckpointManagerMessageHandler();
            _checkpoint   = new ProjectionCheckpoint(
                _ioDispatcher, new ProjectionVersion(1, 0, 0), null, _readyHandler,
                CheckpointTag.FromPosition(0, 100, 50), new TransactionFilePositionTagger(0), 250);

            _fakeEnvelope = new FakeEnvelope();
            _checkpoint.Handle(new CoreProjectionProcessingMessage.EmittedStreamAwaiting("awaiting_stream", _fakeEnvelope));
        }
コード例 #10
0
        public void Init()
        {
            this._storeMock = Substitute.For <IDocumentStore>();

            ProjectionCheckpoint chetkpointOut;

            this._storeMock.GetReader <object, ProjectionCheckpoint>().TryGet(Arg.Any <object>(), out chetkpointOut).Returns(x =>
            {
                x[1] = new ProjectionCheckpoint();
                return(true);
            });
            this._storage = new NuclearStorage(this._storeMock);
        }
コード例 #11
0
 public void setup()
 {
     _readyHandler = new TestCheckpointManagerMessageHandler();;
     _checkpoint   = new ProjectionCheckpoint(_bus, _readyHandler, CheckpointTag.FromPosition(100, 50), CheckpointTag.FromPosition(0, -1), 250);
     try
     {
         _checkpoint.EmitEvents(
             new[] { new EmittedEvent("stream1", Guid.NewGuid(), "type", "data",
                                      CheckpointTag.FromPosition(40, 30), null) });
     }
     catch (Exception ex)
     {
         _lastException = ex;
     }
 }
コード例 #12
0
 public void setup()
 {
     _readyHandler = new TestMessageHandler <ProjectionMessage.Projections.ReadyForCheckpoint>();
     _checkpoint   = new ProjectionCheckpoint(_bus, _readyHandler, false, CheckpointTag.FromPosition(100, 50), 250);
     try
     {
         _checkpoint.EmitEvents(
             new[] { new EmittedEvent("stream1", Guid.NewGuid(), "type", "data") },
             CheckpointTag.FromPosition(40, 30));
     }
     catch (Exception ex)
     {
         _lastException = ex;
     }
 }
コード例 #13
0
 public void setup()
 {
     _readyHandler = new TestCheckpointManagerMessageHandler();;
     _checkpoint   = new ProjectionCheckpoint(_bus, _readyHandler, CheckpointTag.FromPosition(100, 50), CheckpointTag.FromPosition(0, -1), 250);
     _checkpoint.EmitEvents(
         new[]
     {
         new EmittedEvent("stream2", Guid.NewGuid(), "type", "data2", CheckpointTag.FromPosition(120, 110), null),
         new EmittedEvent("stream3", Guid.NewGuid(), "type", "data3", CheckpointTag.FromPosition(120, 110), null),
         new EmittedEvent("stream2", Guid.NewGuid(), "type", "data4", CheckpointTag.FromPosition(120, 110), null),
     }
         );
     _checkpoint.EmitEvents(
         new[] { new EmittedEvent("stream1", Guid.NewGuid(), "type", "data",
                                  CheckpointTag.FromPosition(140, 130), null) });
 }
コード例 #14
0
 public void setup()
 {
     _readyHandler = new TestMessageHandler <ProjectionMessage.Projections.ReadyForCheckpoint>();
     _checkpoint   = new ProjectionCheckpoint(_bus, _readyHandler, false, CheckpointTag.FromPosition(100, 50), 250);
     _checkpoint.EmitEvents(
         new[]
     {
         new EmittedEvent("stream2", Guid.NewGuid(), "type", "data2"),
         new EmittedEvent("stream3", Guid.NewGuid(), "type", "data3"),
         new EmittedEvent("stream2", Guid.NewGuid(), "type", "data4"),
     },
         CheckpointTag.FromPosition(120, 110));
     _checkpoint.EmitEvents(
         new[] { new EmittedEvent("stream1", Guid.NewGuid(), "type", "data") },
         CheckpointTag.FromPosition(140, 130));
 }
 public void setup()
 {
     _readyHandler = new TestCheckpointManagerMessageHandler();
     _checkpoint   = new ProjectionCheckpoint(
         _bus, _ioDispatcher, new ProjectionVersion(1, 0, 0), null, _readyHandler,
         CheckpointTag.FromPosition(0, 100, 50), new TransactionFilePositionTagger(0), 250, AllowedWritesInFlight.Unbounded);
     _checkpoint.Start();
     _checkpoint.ValidateOrderAndEmitEvents(
         new[]
     {
         new EmittedEventEnvelope(
             new EmittedDataEvent(
                 "stream1", Guid.NewGuid(), "type1", true, "data1", null, CheckpointTag.FromPosition(0, 120, 110), null)),
         new EmittedEventEnvelope(
             new EmittedDataEvent(
                 "stream2", Guid.NewGuid(), "type2", true, "data2", null, CheckpointTag.FromPosition(0, 120, 110), null)),
         new EmittedEventEnvelope(
             new EmittedDataEvent(
                 "stream3", Guid.NewGuid(), "type3", true, "data3", null, CheckpointTag.FromPosition(0, 120, 110), null)),
     });
 }
        public void setup()
        {
            _readyHandler = new TestMessageHandler <ProjectionMessage.Projections.ReadyForCheckpoint>();
            _checkpoint   = new ProjectionCheckpoint(_bus, _readyHandler, false, CheckpointTag.FromPosition(100, 50), 250);
            _checkpoint.Start();
            _checkpoint.EmitEvents(
                new[]
            {
                new EmittedEvent("stream2", Guid.NewGuid(), "type", "data2"),
                new EmittedEvent("stream2", Guid.NewGuid(), "type", "data4"),
            },
                CheckpointTag.FromPosition(120, 110));
            _checkpoint.EmitEvents(
                new[] { new EmittedEvent("stream1", Guid.NewGuid(), "type", "data") },
                CheckpointTag.FromPosition(140, 130));
            var writes = _consumer.HandledMessages.OfType <ClientMessage.WriteEvents>().ToArray();

            writes[0].Envelope.ReplyWith(
                new ClientMessage.WriteEventsCompleted(writes[0].CorrelationId, writes[0].EventStreamId, 0));
            writes[1].Envelope.ReplyWith(
                new ClientMessage.WriteEventsCompleted(writes[1].CorrelationId, writes[1].EventStreamId, 0));
            _checkpoint.Prepare(CheckpointTag.FromPosition(200, 150));
            //TODO: test whether checkpoint does not allow positions before last emitted event caused by position
        }
コード例 #17
0
 public void commit_position_less_than_or_equal_to_prepare_position_throws_argument_exception()
 {
     var c = new ProjectionCheckpoint(
         new FakePublisher(), _readyHandler, true, CheckpointTag.FromPosition(100, 101), 250);
 }
コード例 #18
0
 public void setup()
 {
     _readyHandler = new TestMessageHandler <ProjectionMessage.Projections.ReadyForCheckpoint>();
     _checkpoint   = new ProjectionCheckpoint(_bus, _readyHandler, false, CheckpointTag.FromPosition(100, 50), 250);
 }
コード例 #19
0
 public void it_can_be_created()
 {
     var c = new ProjectionCheckpoint(
         new FakePublisher(), _readyHandler, true, CheckpointTag.FromPosition(100, 50), 250);
 }
コード例 #20
0
 public void setup()
 {
     _readyHandler = new TestCheckpointManagerMessageHandler();;
     _checkpoint   = new ProjectionCheckpoint(_bus, _readyHandler, CheckpointTag.FromPosition(100, 50), CheckpointTag.FromPosition(0, -1), 250);
 }
コード例 #21
0
 public void null_ready_handler_throws_argument_null_exception()
 {
     var c = new ProjectionCheckpoint(new FakePublisher(), null, false, CheckpointTag.FromPosition(100, 50), 250);
 }
コード例 #22
0
 public void null_publisher_throws_argument_null_exception()
 {
     var c = new ProjectionCheckpoint(null, _readyHandler, CheckpointTag.FromPosition(100, 50), 250);
 }