public void TestWriteReadStream()
        {
            EventJournal journal = EventJournal.Open("test");

            journal.Write("name123", 1, EventBatch.Of("type1", "type1_instance1"));
            journal.Write("name456", 1, EventBatch.Of("type2", "type2_instance1"));
            journal.Write("name123", 2, EventBatch.Of("type1-1", "type1-1_instance1"));
            journal.Write("name123", 3, EventBatch.Of("type1-2", "type1-2_instance1"));
            journal.Write("name456", 2, EventBatch.Of("type2-1", "type2-1_instance1"));

            EventStreamReader streamReader = journal.StreamReader();

            EventStream eventStream123 = streamReader.StreamFor("name123");

            Assert.AreEqual(3, eventStream123.StreamVersion);
            Assert.AreEqual(3, eventStream123.Stream.Count);
            Assert.AreEqual(new EventValue("name123", 1, "type1", "type1_instance1", ""), eventStream123.Stream[0]);
            Assert.AreEqual(new EventValue("name123", 2, "type1-1", "type1-1_instance1", ""), eventStream123.Stream[1]);
            Assert.AreEqual(new EventValue("name123", 3, "type1-2", "type1-2_instance1", ""), eventStream123.Stream[2]);

            EventStream eventStream456 = streamReader.StreamFor("name456");

            Assert.AreEqual(2, eventStream456.StreamVersion);
            Assert.AreEqual(2, eventStream456.Stream.Count);
            Assert.AreEqual(new EventValue("name456", 1, "type2", "type2_instance1", ""), eventStream456.Stream[0]);
            Assert.AreEqual(new EventValue("name456", 2, "type2-1", "type2-1_instance1", ""), eventStream456.Stream[1]);

            journal.Close();
        }
Example #2
0
        public void TestEventJournalPublisher()
        {
            EventJournal          eventJournal     = EventJournal.Open("test-ej");
            MessageBus            messageBus       = MessageBus.Start("test-bus");
            Topic                 topic            = messageBus.OpenTopic("test-topic");
            EventJournalPublisher journalPublisher =
                EventJournalPublisher.From(eventJournal.Name, messageBus.Name, topic.Name);

            EventJournalPublisherTestSubscriber subscriber = new EventJournalPublisherTestSubscriber();

            topic.Subscribe(subscriber);

            for (int idx = 0; idx < 3; ++idx)
            {
                eventJournal.Write("test1", idx, "test1type", "test1instance" + idx);
            }

            for (int idx = 0; idx < 3; ++idx)
            {
                eventJournal.Write("test2", idx, "test2type", "test2instance" + idx);
            }

            subscriber.WaitForExpectedMessages(6);

            topic.Close();

            journalPublisher.Close();

            Assert.AreEqual(6, subscriber.handledMessages.Count);
        }
Example #3
0
        public void TestWriteReadStreamSnapshot()
        {
            EventJournal journal = EventJournal.Open("test");

            journal.Write("name123", 1, "type1", "type1_instance1", "SNAPSHOT123-1");
            journal.Write("name456", 1, "type2", "type2_instance1", "SNAPSHOT456-1");
            journal.Write("name123", 2, "type1-1", "type1-1_instance1", "SNAPSHOT123-2");
            journal.Write("name123", 3, "type1-2", "type1-2_instance1");
            journal.Write("name456", 2, "type2-1", "type2-1_instance1", "SNAPSHOT456-2");

            EventStreamReader streamReader = journal.StreamReader();

            EventStream eventStream123 = streamReader.StreamFor("name123");

            Assert.AreEqual("name123", eventStream123.StreamName);
            Assert.AreEqual(3, eventStream123.StreamVersion);
            Assert.AreEqual(2, eventStream123.Stream.Count);
            Assert.AreEqual("SNAPSHOT123-2", eventStream123.Snapshot);
            Assert.AreEqual(new EventValue("name123", 2, "type1-1", "type1-1_instance1", "SNAPSHOT123-2"), eventStream123.Stream[0]);
            Assert.AreEqual(new EventValue("name123", 3, "type1-2", "type1-2_instance1", ""), eventStream123.Stream[1]);

            EventStream eventStream456 = streamReader.StreamFor("name456");

            Assert.AreEqual("name456", eventStream456.StreamName);
            Assert.AreEqual(2, eventStream456.StreamVersion);
            Assert.AreEqual(1, eventStream456.Stream.Count);
            Assert.AreEqual("SNAPSHOT456-2", eventStream456.Snapshot);
            Assert.AreEqual(new EventValue("name456", 2, "type2-1", "type2-1_instance1", "SNAPSHOT456-2"), eventStream456.Stream[0]);

            journal.Close();
        }
        protected EventJournalPublisher(
            string eventJournalName,
            string messageBusName,
            string topicName)
        {
            this.reader           = EventJournal.Open(eventJournalName).Reader("topic-" + topicName + "-reader");
            this.topic            = MessageBus.Start(messageBusName).OpenTopic(topicName);
            this.dispatcherThread = new Thread(new ThreadStart(this.DispatchEach));

            StartDispatcherThread();
        }
        public void TestOpenEventJournalReader()
        {
            EventJournal       journal = EventJournal.Open("test");
            EventJournalReader reader  = journal.Reader("test_reader");

            Assert.IsNotNull(reader);
            Assert.AreEqual("test_reader", reader.Name);
            EventJournalReader readerPreOpened = journal.Reader("test_reader");

            Assert.AreSame(reader, readerPreOpened);

            journal.Close();
        }
        public void TestEventJournalOpenClose()
        {
            EventJournal journal = EventJournal.Open("test");

            Assert.IsNotNull(journal);
            Assert.AreEqual("test", journal.Name);

            EventJournal journalPreOpened = EventJournal.Open("test");

            Assert.AreSame(journal, journalPreOpened);

            journal.Close();
        }
        public void TestWriteRead()
        {
            EventJournal journal = EventJournal.Open("test");

            journal.Write("name123", 1, EventBatch.Of("type1", "type1_instance1"));
            journal.Write("name456", 1, EventBatch.Of("type2", "type2_instance1"));
            EventJournalReader reader = journal.Reader("test_reader");

            Assert.AreEqual(new StoredEvent(0, new EventValue("name123", 1, "type1", "type1_instance1", "")), reader.ReadNext());
            reader.Acknowledge(0);
            Assert.AreEqual(new StoredEvent(1, new EventValue("name456", 1, "type2", "type2_instance1", "")), reader.ReadNext());
            reader.Acknowledge(1);
            Assert.AreEqual(new StoredEvent(-1, new EventValue("", -1, "", "", "")), reader.ReadNext());

            journal.Close();
        }
        public void TestEventJournalPublisher()
        {
            EventJournal          eventJournal     = EventJournal.Open("test-ej");
            MessageBus            messageBus       = MessageBus.Start("test-bus");
            Topic                 topic            = messageBus.OpenTopic("test-topic");
            EventJournalPublisher journalPublisher =
                EventJournalPublisher.From(eventJournal.Name, messageBus.Name, topic.Name);

            EventJournalPublisherTestSubscriber subscriber = new EventJournalPublisherTestSubscriber();

            topic.Subscribe(subscriber);

            EventBatch batch1 = new EventBatch();

            for (int idx = 0; idx < 3; ++idx)
            {
                batch1.AddEntry("test1type", "test1instance" + idx);
            }
            eventJournal.Write("test1", 0, batch1);

            EventBatch batch2 = new EventBatch();

            for (int idx = 0; idx < 3; ++idx)
            {
                batch2.AddEntry("test2type", "test2instance" + idx);
            }
            eventJournal.Write("test2", 0, batch2);

            subscriber.WaitForExpectedMessages(6);

            topic.Close();

            journalPublisher.Close();

            subscriber.handledMessages.Count.Should().Be(6);
        }