コード例 #1
0
            public async void ReadAppend()
            {
                var appender = new StreamAppenderAsync(StreamAppenderAsync.StreamAppenderOptions.UseSingleStream(this.appendStream));

                var es     = new EventStoreAsync(appender);
                var id     = new StringId("id1");
                var events = new IEvent[] { BigEventData.Create(id, 12), BigEventData.Create(id, 128), BigEventData.Create(id, 13) };

                var id2     = new StringId("id2");
                var events2 = new IEvent[] { BigEventData.Create(id, 100), BigEventData.Create(id, 128), BigEventData.Create(id, 100) };

                var events3 = new IEvent[] { BigEventData.Create(id, 44) };

                await es.AppendToStream(id, 0, events.ToList());

                await es.AppendToStream(id2, 0, events2.ToList());

                await es.AppendToStream(id, 1, events3.ToList());

                Assert.Equal(2800, this.appendStream.Length);

                var stream = await es.LoadEventStream(id);

                Assert.Equal(2, stream.Version);

                var stream2 = await es.LoadEventStream(id2);

                Assert.Equal(1, stream2.Version);
            }
コード例 #2
0
        public async Task WriteTwoStreamsAndReadAll()
        {
            var id1 = GuidId.NewGuidId();
            var id2 = GuidId.NewGuidId();

            await
            this.eventstore.AppendToStream(id1, 0,
                                           new IEvent[] { BigEventData.Create(id1, 228) });

            await
            this.eventstore.AppendToStream(id1, 1,
                                           new IEvent[] { BigEventData.Create(id1, 118), BigEventData.Create(id1, 98), BigEventData.Create(id1, 328) });

            await
            this.eventstore.AppendToStream(id1, 2,
                                           new IEvent[] { BigEventData.Create(id1, 28) });

            await
            this.eventstore.AppendToStream(id2, 0,
                                           new IEvent[] { BigEventData.Create(id2, 128), BigEventData.Create(id2, 228) });

            var stream = await this.eventstore.LoadEventStream(id1, 1, 2);

            Assert.Equal(3, stream.Events.Count);
            Assert.Equal(2, stream.Version);
        }
コード例 #3
0
        public async Task WriteSingleAppend()
        {
            var id = new StringId("test-" + Guid.NewGuid());

            await
            this.eventstore.AppendToStream(id, 0,
                                           new IEvent[] { BigEventData.Create(id, 120), BigEventData.Create(id, 110) });
        }
コード例 #4
0
        public async Task AppendRandomId()
        {
            var id = GuidId.NewGuidId();

            await this.eventstore.AppendToStream(id, 0, new IEvent[] { BigEventData.Create(id, 440), BigEventData.Create(id, 200) });

            await this.eventstore.AppendToStream(id, 1, new IEvent[] { BigEventData.Create(id, 30), BigEventData.Create(id, 200) });

            var events = await this.eventstore.LoadEventStream(id);

            Assert.Equal(2, events.Version);
        }
コード例 #5
0
            public async void WriteAppend()
            {
                var appender = new StreamAppenderAsync(StreamAppenderAsync.StreamAppenderOptions.UseSingleStream(this.appendStream));

                var es     = new EventStoreAsync(appender);
                var id     = new StringId("id1");
                var events = new IEvent[] { BigEventData.Create(id, 12), BigEventData.Create(id, 128), BigEventData.Create(id, 13) };

                await es.AppendToStream(id, 0, events.ToList());

                Assert.Equal(962, this.appendStream.Length);
            }
コード例 #6
0
        public async Task CanAppendEvents()
        {
            var id     = new StringId("mystream");
            var events = new IEvent[]
            {
                BigEventData.Create(id, 20), BigEventData.Create(id, 1024),
                BigEventData.Create(id, 400121), BigEventData.Create(id, 2048)
            };

            await this.eventstore.AppendToStream(id, 0, events);

            await this.eventstore.AppendToStream(id, 1, events);

            await this.eventstore.AppendToStream(new StringId("stream2"), 0, events);
        }
コード例 #7
0
        public async Task WriteTwoStreamsAndReadAll()
        {
            var id1 = GuidId.NewGuidId();
            var id2 = GuidId.NewGuidId();

            await
            this.eventstore.AppendToStream(id1, 0,
                                           new IEvent[] { BigEventData.Create(id1, 1024 * 1024 * 3) });

            await
            this.eventstore.AppendToStream(id1, 1,
                                           new IEvent[] { BigEventData.Create(id1, 1024 * 1024 * 2), BigEventData.Create(id1, 98), BigEventData.Create(id1, 328) });

            await
            this.eventstore.AppendToStream(id1, 2,
                                           new IEvent[] { BigEventData.Create(id1, 28) });

            await
            this.eventstore.AppendToStream(id2, 0,
                                           new IEvent[] { BigEventData.Create(id2, 128), BigEventData.Create(id2, 228) });

            var stream = await this.eventstore.LoadEventStream(id1, 1, 2);

            await this.appender.WriteAll();

            var stream1 = await this.appender.ReadRecords(id1.ToString(), 0, Int32.MaxValue);

            Assert.Equal(3, stream1.Length);

            var stream2 = await this.appender.ReadRecords(id2.ToString(), 0, Int32.MaxValue);

            Assert.Equal(1, stream2.Length);


            Assert.Equal(869, stream1[0].Data.Length);
            Assert.Equal(1377, stream1[1].Data.Length);
            Assert.Equal(869, stream1[0].Data.Length);


            Assert.Equal(869, stream1[0].Data.Length);
        }
コード例 #8
0
        public async Task CanConflictOnAppend()
        {
            var id     = GuidId.NewGuidId();
            var events = new IEvent[]
            {
                BigEventData.Create(id, 20), BigEventData.Create(id, 1024),
                BigEventData.Create(id, 400121), BigEventData.Create(id, 2048)
            };

            var run1 = this.eventstore.AppendToStream(id, 0, events);
            var run2 = this.eventstore.AppendToStream(id, 1, events);
            var run3 = this.eventstore.AppendToStream(id, 2, events);
            var run4 = this.eventstore.AppendToStream(id, 3, events);

            try
            {
                Task.WaitAll(run3, run2, run4, run1);
            }
            catch (AggregateException ex)
            {
                throw;
            }
        }