コード例 #1
0
 public void does_not_publish_already_published_events()
 {
     _stream.EmitEvents(
         new[] { new EmittedEvent("test_stream", Guid.NewGuid(), "type", "data",
                                  CheckpointTag.FromPosition(100, 50), null) });
     Assert.AreEqual(0, _consumer.HandledMessages.OfType <ClientMessage.WriteEvents>().Count());
 }
コード例 #2
0
 public void throws_if_position_is_prior_to_from_position()
 {
     Assert.Throws <InvalidOperationException>(() => { _stream.EmitEvents(
                                                           new[]
         {
             new EmittedDataEvent(
                 "test_stream", Guid.NewGuid(), "type", true, "data", null, CheckpointTag.FromPosition(0, 20, 10), null)
         }); });
 }
コード例 #3
0
 public void throws_if_position_is_prior_to_from_position()
 {
     _stream.EmitEvents(
         new[]
     {
         new EmittedDataEvent(
             "test_stream", Guid.NewGuid(), "type", true, "data", null, CheckpointTag.FromPosition(0, 20, 10), null)
     });
 }
 public void replies_with_await_message()
 {
     _stream.EmitEvents(
         new[] {
         new EmittedLinkTo(
             "test_stream", Guid.NewGuid(), "other_stream", CheckpointTag.FromPosition(0, 1100, 1000), null)
     });
     Assert.AreEqual(1, _readyHandler.HandledStreamAwaitingMessage.Count);
     Assert.AreEqual("test_stream", _readyHandler.HandledStreamAwaitingMessage[0].StreamId);
 }
 public void setup()
 {
     _publisher = new FakePublisher();
     _readyHandler = new TestMessageHandler<ProjectionMessage.Projections.ReadyForCheckpoint>();
     _stream = new EmittedStream("test", _publisher, _readyHandler, false, 50);
     _stream.Start();
     _stream.EmitEvents(
         new[] {new EmittedEvent("stream", Guid.NewGuid(), "type", "data")}, CheckpointTag.FromPosition(100, 50));
     _stream.EmitEvents(
         new[] {new EmittedEvent("stream", Guid.NewGuid(), "type2", "data2")},
         CheckpointTag.FromPosition(100, 50));
 }
 public void setup()
 {
     _publisher    = new FakePublisher();
     _readyHandler = new TestMessageHandler <ProjectionMessage.Projections.ReadyForCheckpoint>();
     _stream       = new EmittedStream("test", _publisher, _readyHandler, false, 50);
     _stream.Start();
     _stream.EmitEvents(
         new[] { new EmittedEvent("stream", Guid.NewGuid(), "type", "data") }, CheckpointTag.FromPosition(100, 50));
     _stream.EmitEvents(
         new[] { new EmittedEvent("stream", Guid.NewGuid(), "type2", "data2") },
         CheckpointTag.FromPosition(100, 50));
 }
        public void completes_already_published_events()
        {
            var invoked = false;

            _stream.EmitEvents(
                new[]
            {
                new EmittedDataEvent(
                    "test_stream", Guid.NewGuid(), "type", "data", null, CheckpointTag.FromPosition(100, 50), null,
                    v => invoked = true)
            });
            Assert.IsTrue(invoked);
        }
コード例 #8
0
        public void completes_already_published_events()
        {
            var invoked = false;

            _stream.EmitEvents(
                new[]
            {
                new EmittedDataEvent(
                    (string)"test_stream", Guid.NewGuid(), (string)"type", (bool)true,
                    (string)"data", (ExtraMetaData)null, CheckpointTag.FromPosition(0, 100, 50), (CheckpointTag)null, v => invoked = true)
            });
            Assert.IsTrue(invoked);
        }
 public void requests_restart_if_different_smaller_tag()
 {
     _stream.EmitEvents(
         new[] {
         new EmittedDataEvent(
             "test_stream", Guid.NewGuid(), "type", true, "data", null,
             CheckpointTag.FromPosition(0, 100, 50), CheckpointTag.FromPosition(0, 40, 20))
     });
     Assert.AreEqual(
         0,
         _consumer.HandledMessages.OfType <ClientMessage.WriteEvents>()
         .ExceptOfEventType(SystemEventTypes.StreamMetadata)
         .Count());
     Assert.AreEqual(1, _readyHandler.HandledRestartRequestedMessages.Count());
 }
 public void setup()
 {
     _readyHandler = new TestCheckpointManagerMessageHandler();;
     _stream = new EmittedStream("test", CheckpointTag.FromPosition(0, -1), _bus, _readyHandler, 50);
     _stream.EmitEvents(
         new[] { new EmittedEvent("test", Guid.NewGuid(), "type", "data", CheckpointTag.FromPosition(200, 150), null) });
 }
 public void setup()
 {
     _readyHandler = new TestCheckpointManagerMessageHandler();;
     _stream       = new EmittedStream("test", CheckpointTag.FromPosition(0, -1), _bus, _readyHandler, 50);
     _stream.EmitEvents(
         new[] { new EmittedEvent("test", Guid.NewGuid(), "type", "data", CheckpointTag.FromPosition(200, 150), null) });
 }
コード例 #12
0
 public void emit_events_throws_invalid_operation_exception()
 {
     _stream.EmitEvents(
         new[]
     {
         new EmittedDataEvent(
             "test", Guid.NewGuid(), "type2", "data2", null, CheckpointTag.FromPosition(-1, -1), null)
     });
 }
コード例 #13
0
 public void throws_if_position_is_prior_to_the_last_event_position()
 {
     _stream.EmitEvents(
         new[]
     {
         new EmittedDataEvent(
             "test_stream", Guid.NewGuid(), "type", "data", null, CheckpointTag.FromPosition(80, 70), null)
     });
 }
 public void setup()
 {
     _readyHandler = new TestCheckpointManagerMessageHandler();
     _stream = new EmittedStream(
         "test_stream", new ProjectionVersion(1, 0, 0), null, new TransactionFilePositionTagger(),
         CheckpointTag.FromPosition(0, -1), CheckpointTag.FromPosition(100, 50), _readDispatcher,
         _writeDispatcher, _readyHandler, maxWriteBatchLength: 50);
     _stream.Start();
     _stream.EmitEvents(CreateEventBatch());
     OneWriteCompletes();
 }
 public void fails_the_projection()
 {
     _stream.EmitEvents(
         new[]
     {
         new EmittedDataEvent(
             "test_stream", Guid.NewGuid(), "type", true, "data", null, CheckpointTag.FromPosition(0, 100, 50), CheckpointTag.FromPosition(0, 40, 20))
     });
     Assert.AreEqual(0, _consumer.HandledMessages.OfType <ClientMessage.WriteEvents>().Count());
     Assert.AreEqual(1, _readyHandler.HandledFailedMessages.Count());
 }
コード例 #16
0
 public void setup()
 {
     _readyHandler = new TestCheckpointManagerMessageHandler();
     _stream       = new EmittedStream(
         "test_stream", new ProjectionVersion(1, 0, 0), null, new TransactionFilePositionTagger(),
         CheckpointTag.FromPosition(0, -1), CheckpointTag.FromPosition(100, 50), _readDispatcher,
         _writeDispatcher, _readyHandler, maxWriteBatchLength: 50);
     _stream.Start();
     _stream.EmitEvents(CreateEventBatch());
     OneWriteCompletes();
 }
 public void setup()
 {
     _readyHandler = new TestCheckpointManagerMessageHandler();
     _stream = new EmittedStream(
         "test_stream", new EmittedStream.WriterConfiguration(new EmittedStream.WriterConfiguration.StreamMetadata(), null, maxWriteBatchLength: 50),
         new ProjectionVersion(1, 2, 2), new TransactionFilePositionTagger(0), CheckpointTag.FromPosition(0, 100, 50),
         _ioDispatcher, _readyHandler);
     _stream.Start();
     _stream.EmitEvents(CreateEventBatch());
     OneWriteCompletes();
 }
コード例 #18
0
 public void setup()
 {
     _readyHandler = new TestCheckpointManagerMessageHandler();
     _stream       = new EmittedStream(
         "test_stream", new EmittedStream.WriterConfiguration(new EmittedStream.WriterConfiguration.StreamMetadata(), null, maxWriteBatchLength: 50),
         new ProjectionVersion(1, 2, 2), new TransactionFilePositionTagger(0), CheckpointTag.FromPosition(0, 100, 50),
         _ioDispatcher, _readyHandler);
     _stream.Start();
     _stream.EmitEvents(CreateEventBatch());
     OneWriteCompletes();
 }
 public void setup()
 {
     _readyHandler = new TestCheckpointManagerMessageHandler();;
     _stream = new EmittedStream("test", CheckpointTag.FromPosition(0, -1), _bus, _readyHandler, 50);
     _stream.Start();
     _stream.EmitEvents(
         new[] { new EmittedEvent("test", Guid.NewGuid(), "type", "data", CheckpointTag.FromPosition(10, 5), null) });
     var msg = _consumer.HandledMessages.OfType<ClientMessage.WriteEvents>().First();
     _stream.Handle(new ClientMessage.WriteEventsCompleted(msg.CorrelationId, msg.EventStreamId, 0));
     _stream.Checkpoint();
 }
コード例 #20
0
 public void emit_events_throws_invalid_operation_exception()
 {
     Assert.Throws <InvalidOperationException>(() => {
         _stream.EmitEvents(
             new[]
         {
             new EmittedDataEvent(
                 "test", Guid.NewGuid(), "type2", true, "data2", null, CheckpointTag.FromPosition(0, -1, -1), null)
         });
     });
 }
        public void setup()
        {
            _readyHandler = new TestCheckpointManagerMessageHandler();;
            _stream       = new EmittedStream("test", CheckpointTag.FromPosition(0, -1), _bus, _readyHandler, 50);
            _stream.Start();
            _stream.EmitEvents(
                new[] { new EmittedEvent("test", Guid.NewGuid(), "type", "data", CheckpointTag.FromPosition(10, 5), null) });
            var msg = _consumer.HandledMessages.OfType <ClientMessage.WriteEvents>().First();

            _stream.Handle(new ClientMessage.WriteEventsCompleted(msg.CorrelationId, msg.EventStreamId, 0));
            _stream.Checkpoint();
        }
 public void setup()
 {
     _publisher = new FakePublisher();
     _readyHandler = new TestMessageHandler<ProjectionMessage.Projections.ReadyForCheckpoint>();
     _stream = new EmittedStream("test", _publisher, _readyHandler, false, 50);
     _stream.Start();
     _stream.EmitEvents(
         new[] {new EmittedEvent("stream", Guid.NewGuid(), "type", "data")}, CheckpointTag.FromPosition(-1, -1));
     var msg = _publisher.Messages.OfType<ClientMessage.WriteEvents>().First();
     _stream.Handle(new ClientMessage.WriteEventsCompleted(msg.CorrelationId, msg.EventStreamId, 0));
     _stream.Checkpoint();
 }
コード例 #23
0
        public void setup()
        {
            _readyHandler = new TestCheckpointManagerMessageHandler();
            _stream       = new EmittedStream(
                "test_stream", new EmittedStream.WriterConfiguration(new EmittedStreamsWriter(_ioDispatcher), new EmittedStream.WriterConfiguration.StreamMetadata(), null, maxWriteBatchLength: 50),
                new ProjectionVersion(1, 2, 2), new TransactionFilePositionTagger(0), CheckpointTag.Empty,
                _bus, _ioDispatcher, _readyHandler);
            _stream.Start();
            _stream.EmitEvents(CreateEventBatch());

            CompleteWriteWithResult(OperationResult.CommitTimeout);
        }
        public void setup()
        {
            _publisher    = new FakePublisher();
            _readyHandler = new TestMessageHandler <ProjectionMessage.Projections.ReadyForCheckpoint>();
            _stream       = new EmittedStream("test", _publisher, _readyHandler, false, 50);
            _stream.Start();
            _stream.EmitEvents(
                new[] { new EmittedEvent("stream", Guid.NewGuid(), "type", "data") }, CheckpointTag.FromPosition(-1, -1));
            var msg = _publisher.Messages.OfType <ClientMessage.WriteEvents>().First();

            _stream.Handle(new ClientMessage.WriteEventsCompleted(msg.CorrelationId, msg.EventStreamId, 0));
            _stream.Checkpoint();
        }
コード例 #25
0
 public void does_not_write_stream_metadata_second_time()
 {
     OneWriteCompletes();
     OneWriteCompletes();
     _stream.EmitEvents(
         new[]
     {
         new EmittedDataEvent(
             "test_stream", Guid.NewGuid(), "type", true, "data", null, CheckpointTag.FromPosition(0, 400, 350), null)
     });
     Assert.AreEqual(
         1, _consumer.HandledMessages.OfType <ClientMessage.WriteEvents>().ToStream("$$test_stream").Count());
 }
コード例 #26
0
 public void setup()
 {
     _readyHandler = new TestCheckpointManagerMessageHandler();
     _stream = new EmittedStream(
         "test_stream", _writerConfiguration, new ProjectionVersion(1, 0, 0), new TransactionFilePositionTagger(0),
         CheckpointTag.FromPosition(0, 40, 30), _ioDispatcher, _readyHandler);
     _stream.Start();
     _stream.EmitEvents(
         new[]
         {
             new EmittedDataEvent(
                 "test_stream", Guid.NewGuid(), "type", true, "data", null, CheckpointTag.FromPosition(0, 200, 150), null)
         });
 }
コード例 #27
0
 public void setup()
 {
     _readyHandler = new TestCheckpointManagerMessageHandler();
     _stream       = new EmittedStream(
         "test_stream", _writerConfiguration, new ProjectionVersion(1, 0, 0), new TransactionFilePositionTagger(0),
         CheckpointTag.FromPosition(0, 40, 30), _ioDispatcher, _readyHandler);
     _stream.Start();
     _stream.EmitEvents(
         new[]
     {
         new EmittedDataEvent(
             "test_stream", Guid.NewGuid(), "type", true, "data", null, CheckpointTag.FromPosition(0, 200, 150), null)
     });
 }
コード例 #28
0
 public void setup()
 {
     _readyHandler = new TestCheckpointManagerMessageHandler();
     ;
     _stream = new EmittedStream(
         "test", new ProjectionVersion(1, 0, 0), null, new TransactionFilePositionTagger(),
         CheckpointTag.FromPosition(0, -1), CheckpointTag.FromPosition(0, -1), _readDispatcher, _writeDispatcher,
         _readyHandler, 50);
     _stream.EmitEvents(
         new[]
     {
         new EmittedDataEvent(
             "test", Guid.NewGuid(), "type", "data", null, CheckpointTag.FromPosition(200, 150), null)
     });
 }
 public void setup()
 {
     _readyHandler = new TestCheckpointManagerMessageHandler();
     ;
     _stream = new EmittedStream(
         "test", new ProjectionVersion(1, 0, 0), null, new TransactionFilePositionTagger(),
         CheckpointTag.FromPosition(0, -1), CheckpointTag.FromPosition(0, -1), _readDispatcher, _writeDispatcher,
         _readyHandler, 50);
     _stream.EmitEvents(
         new[]
             {
                 new EmittedDataEvent(
             "test", Guid.NewGuid(), "type", "data", null, CheckpointTag.FromPosition(200, 150), null)
             });
 }
 public void setup()
 {
     _readyHandler = new TestCheckpointManagerMessageHandler();
     _stream       = new EmittedStream(
         TestStreamId, new EmittedStream.WriterConfiguration(new EmittedStreamsWriter(_ioDispatcher), new EmittedStream.WriterConfiguration.StreamMetadata(), null, maxWriteBatchLength: 50),
         new ProjectionVersion(1, 0, 0), new TransactionFilePositionTagger(0), CheckpointTag.FromPosition(0, 40, 30),
         _bus, _ioDispatcher, _readyHandler);
     _stream.Start();
     _stream.EmitEvents(
         new[]
     {
         new EmittedDataEvent(
             TestStreamId, Guid.NewGuid(), "type", true, "data", null, CheckpointTag.FromPosition(0, 200, 150), null)
     });
 }
        public void setup()
        {
            _readyHandler = new TestCheckpointManagerMessageHandler();
            _stream = new EmittedStream(
                "test_stream", new EmittedStream.WriterConfiguration(new EmittedStream.WriterConfiguration.StreamMetadata(), null, maxWriteBatchLength: 50),
                new ProjectionVersion(1, 0, 0), new TransactionFilePositionTagger(0), CheckpointTag.FromPosition(0, 40, 30),
                _ioDispatcher, _readyHandler);
            _stream.Start();

            _stream.EmitEvents(
                new[]
                {
                    new EmittedDataEvent(
                        "test_stream", Guid.NewGuid(), "type", true, "data", new ExtraMetaData(new Dictionary<string, string> {{"a", "1"}, {"b", "{}"}}), CheckpointTag.FromPosition(0, 200, 150), null)
                });
        }
        public void setup()
        {
            _readyHandler = new TestCheckpointManagerMessageHandler();
            _writeAs = new OpenGenericPrincipal("test-user");
            _stream = new EmittedStream(
                "test_stream", new EmittedStream.WriterConfiguration(new EmittedStream.WriterConfiguration.StreamMetadata(), _writeAs, maxWriteBatchLength: 50),
                new ProjectionVersion(1, 0, 0), new TransactionFilePositionTagger(0), CheckpointTag.FromPosition(0, 40, 30),
                _ioDispatcher, _readyHandler);
            _stream.Start();

            _stream.EmitEvents(
                new[]
                {
                    new EmittedDataEvent(
                        "test_stream", Guid.NewGuid(), "type", true, "data", null, CheckpointTag.FromPosition(0, 200, 150), null)
                });
        }
 public void Setup()
 {
     _readyHandler = new TestCheckpointManagerMessageHandler();
     _stream = new EmittedStream(
         "test", new EmittedStream.WriterConfiguration(new EmittedStream.WriterConfiguration.StreamMetadata(), null, 50), new ProjectionVersion(1, 0, 0),
         new TransactionFilePositionTagger(0), CheckpointTag.FromPosition(0, 0, -1), _ioDispatcher, _readyHandler);
     _stream.Start();
     _stream.EmitEvents(
         new[]
         {
             new EmittedDataEvent(
                 "test", Guid.NewGuid(), "type", true, "data", null, CheckpointTag.FromPosition(0, 10, 5), null)
         });
     var msg = _consumer.HandledMessages.OfType<ClientMessage.WriteEvents>().First();
     _bus.Publish(new ClientMessage.WriteEventsCompleted(msg.CorrelationId, 0, 0));
     _stream.Checkpoint();
 }
コード例 #34
0
        public void setup()
        {
            _readyHandler = new TestCheckpointManagerMessageHandler();
            _stream       = new EmittedStream(
                "test_stream", new EmittedStream.WriterConfiguration(new EmittedStream.WriterConfiguration.StreamMetadata(), null, maxWriteBatchLength: 50),
                new ProjectionVersion(1, 0, 0), new TransactionFilePositionTagger(0), CheckpointTag.FromPosition(0, 40, 30),
                _ioDispatcher, _readyHandler);
            _stream.Start();

            _stream.EmitEvents(
                new[]
            {
                new EmittedDataEvent(
                    "test_stream", Guid.NewGuid(), "type", true, "data", new ExtraMetaData(new Dictionary <string, string> {
                    { "a", "1" }, { "b", "{}" }
                }), CheckpointTag.FromPosition(0, 200, 150), null)
            });
        }
コード例 #35
0
        public void Setup()
        {
            _readyHandler = new TestCheckpointManagerMessageHandler();
            _stream       = new EmittedStream(
                "test", new EmittedStream.WriterConfiguration(new EmittedStream.WriterConfiguration.StreamMetadata(), null, 50), new ProjectionVersion(1, 0, 0),
                new TransactionFilePositionTagger(0), CheckpointTag.FromPosition(0, 0, -1), _ioDispatcher, _readyHandler);
            _stream.Start();
            _stream.EmitEvents(
                new[]
            {
                new EmittedDataEvent(
                    "test", Guid.NewGuid(), "type", true, "data", null, CheckpointTag.FromPosition(0, 10, 5), null)
            });
            var msg = _consumer.HandledMessages.OfType <ClientMessage.WriteEvents>().First();

            _bus.Publish(new ClientMessage.WriteEventsCompleted(msg.CorrelationId, 0, 0));
            _stream.Checkpoint();
        }
コード例 #36
0
        public void setup()
        {
            _readyHandler = new TestCheckpointManagerMessageHandler();
            _writeAs      = new OpenGenericPrincipal("test-user");
            _stream       = new EmittedStream(
                "test_stream", new ProjectionVersion(1, 0, 0), _writeAs,
                new TransactionFilePositionTagger(), CheckpointTag.FromPosition(0, -1),
                CheckpointTag.FromPosition(40, 30), _readDispatcher, _writeDispatcher, _readyHandler,
                maxWriteBatchLength: 50);
            _stream.Start();

            _stream.EmitEvents(
                new[]
            {
                new EmittedDataEvent(
                    "test_stream", Guid.NewGuid(), "type", "data", null, CheckpointTag.FromPosition(200, 150), null)
            });
        }
        public void setup()
        {
            _causedBy = Guid.NewGuid();
            _correlationId = "correlation_id";

            _emittedDataEvent = new EmittedDataEvent(
                "test_stream", Guid.NewGuid(), "type", true, "data", null, CheckpointTag.FromPosition(0, 200, 150), null);

            _emittedDataEvent.SetCausedBy(_causedBy);
            _emittedDataEvent.SetCorrelationId(_correlationId);

            _readyHandler = new TestCheckpointManagerMessageHandler();
            _stream = new EmittedStream(
                "test_stream", new EmittedStream.WriterConfiguration(new EmittedStream.WriterConfiguration.StreamMetadata(), null, maxWriteBatchLength: 50),
                new ProjectionVersion(1, 0, 0), new TransactionFilePositionTagger(0), CheckpointTag.FromPosition(0, 40, 30),
                _ioDispatcher, _readyHandler);
            _stream.Start();
            _stream.EmitEvents(new[] {_emittedDataEvent});
        }
コード例 #38
0
        public void setup()
        {
            _causedBy      = Guid.NewGuid();
            _correlationId = "correlation_id";

            _emittedDataEvent = new EmittedDataEvent(
                "test_stream", Guid.NewGuid(), "type", true, "data", null, CheckpointTag.FromPosition(0, 200, 150), null);

            _emittedDataEvent.SetCausedBy(_causedBy);
            _emittedDataEvent.SetCorrelationId(_correlationId);

            _readyHandler = new TestCheckpointManagerMessageHandler();
            _stream       = new EmittedStream(
                "test_stream", new EmittedStream.WriterConfiguration(new EmittedStreamsWriter(_ioDispatcher), new EmittedStream.WriterConfiguration.StreamMetadata(), null, maxWriteBatchLength: 50),
                new ProjectionVersion(1, 0, 0), new TransactionFilePositionTagger(0), CheckpointTag.FromPosition(0, 40, 30),
                _bus, _ioDispatcher, _readyHandler);
            _stream.Start();
            _stream.EmitEvents(new[] { _emittedDataEvent });
        }
        public void setup()
        {
            _readyHandler = new TestCheckpointManagerMessageHandler();
            _writeAs      = new ClaimsPrincipal(new ClaimsIdentity(new [] { new Claim(ClaimTypes.Role, "test-user") }, "ES-Test"));
            _stream       = new EmittedStream(
                "test_stream",
                new EmittedStream.WriterConfiguration(new EmittedStreamsWriter(_ioDispatcher),
                                                      new EmittedStream.WriterConfiguration.StreamMetadata(), _writeAs, maxWriteBatchLength: 50),
                new ProjectionVersion(1, 0, 0), new TransactionFilePositionTagger(0),
                CheckpointTag.FromPosition(0, 40, 30),
                _bus, _ioDispatcher, _readyHandler);
            _stream.Start();

            _stream.EmitEvents(
                new[] {
                new EmittedDataEvent(
                    "test_stream", Guid.NewGuid(), "type", true, "data", null,
                    CheckpointTag.FromPosition(0, 200, 150), null)
            });
        }