Esempio n. 1
0
        public void get_correct_events_across_multiple_stream()
        {
            var listener = new StubDocumentSessionListener();
            var store    = InitStore(listener);

            var id1 = Guid.NewGuid();
            var id2 = Guid.NewGuid();

            using (var session = store.LightweightSession())
            {
                session.Events.StartStream <Quest>(id1, new QuestStarted {
                    Id = id1
                });
                session.Events.StartStream <Quest>(id2, new QuestStarted {
                    Id = id2
                });
                session.SaveChanges();

                var events = listener.AfterCommitSession.LastCommit
                             .GetEvents()
                             .ToList();

                events.Count.ShouldBe(2);

                events.Select(x => x.Data).OfType <QuestStarted>().Any(x => x.Id == id1).ShouldBeTrue();
                events.Select(x => x.Data).OfType <QuestStarted>().Any(x => x.Id == id2).ShouldBeTrue();
            }

            using (var session = store.LightweightSession())
            {
                session.Events.Append(id1,
                                      new MembersJoined {
                    Members = new string[] { "Rand", "Matt", "Perrin", "Thom" }
                },
                                      new MembersDeparted {
                    Members = new[] { "Thom" }
                });

                session.Events.Append(id2,
                                      new MembersJoined {
                    Members = new string[] { "Spock", "Kirk", "Picard" }
                },
                                      new MembersJoined {
                    Members = new string[] { "Riker" }
                },
                                      new MembersDeparted {
                    Members = new[] { "Kirk" }
                });

                session.SaveChanges();

                var events = listener.AfterCommitSession.LastCommit
                             .GetEvents()
                             .ToList();

                events.Count.ShouldBe(5);
                events.Count(e => e.Data is MembersJoined).ShouldBe(3);
                events.Count(e => e.Data is MembersDeparted).ShouldBe(2);
            }
        }
Esempio n. 2
0
        public void get_correct_events_across_multiple_stream()
        {
            var listener = new StubDocumentSessionListener();
            var store = InitStore(listener);

            var id1 = Guid.NewGuid();
            var id2 = Guid.NewGuid();

            using (var session = store.LightweightSession())
            {
                session.Events.StartStream<Quest>(id1, new QuestStarted { Id = id1 });
                session.Events.StartStream<Quest>(id2, new QuestStarted { Id = id2 });
                session.SaveChanges();

                var events = listener.AfterCommitSession.LastCommit
                    .GetEvents()
                    .ToList();

                events.Count.ShouldBe(2);
                events.ElementAt(0).Data.ShouldBeOfType<QuestStarted>().Id.ShouldBe(id1);
                events.ElementAt(1).Data.ShouldBeOfType<QuestStarted>().Id.ShouldBe(id2);
            }

            using (var session = store.LightweightSession())
            {
                session.Events.Append(id1,
                     new MembersJoined { Members = new string[] { "Rand", "Matt", "Perrin", "Thom" } },
                     new MembersDeparted { Members = new[] { "Thom" } });

                session.Events.Append(id2,
                     new MembersJoined { Members = new string[] { "Spock", "Kirk", "Picard" } },
                     new MembersJoined { Members = new string[] { "Riker" } },
                     new MembersDeparted { Members = new[] { "Kirk" } });

                session.SaveChanges();

                var events = listener.AfterCommitSession.LastCommit
                    .GetEvents()
                    .ToList();

                events.Count.ShouldBe(5);
                events.Count(e => e.Data is MembersJoined).ShouldBe(3);
                events.Count(e => e.Data is MembersDeparted).ShouldBe(2);
            }
        }
Esempio n. 3
0
        public void get_correct_events_from_single_stream()
        {
            var listener = new StubDocumentSessionListener();
            var store    = InitStore(listener);

            var id      = Guid.NewGuid();
            var started = new QuestStarted();

            using (var session = store.LightweightSession())
            {
                session.Events.StartStream <Quest>(id, started);
                session.SaveChanges();

                var events = listener.AfterCommitSession.LastCommit
                             .GetEvents()
                             .ToList();

                events.Count.ShouldBe(1);
                events.ElementAt(0).Data.ShouldBeOfType <QuestStarted>();
            }

            using (var session = store.LightweightSession())
            {
                var joined = new MembersJoined {
                    Members = new string[] { "Rand", "Matt", "Perrin", "Thom" }
                };
                var departed = new MembersDeparted {
                    Members = new[] { "Thom" }
                };

                session.Events.Append(id, joined, departed);

                session.SaveChanges();

                var events = listener.AfterCommitSession.LastCommit
                             .GetEvents()
                             .ToList();

                events.Count.ShouldBe(2);
                events.ElementAt(0).Data.ShouldBeOfType <MembersJoined>();
                events.ElementAt(1).Data.ShouldBeOfType <MembersDeparted>();
            }
        }
Esempio n. 4
0
        public void get_correct_events_from_single_stream()
        {
            var listener = new StubDocumentSessionListener();
            var store = InitStore(listener);

            var id = Guid.NewGuid();
            var started = new QuestStarted();

            using (var session = store.LightweightSession())
            {
                session.Events.StartStream<Quest>(id, started);
                session.SaveChanges();

                var events = listener.AfterCommitSession.LastCommit
                    .GetEvents()
                    .ToList();

                events.Count.ShouldBe(1);
                events.ElementAt(0).Data.ShouldBeOfType<QuestStarted>();
            }

            using (var session = store.LightweightSession())
            {
                var joined = new MembersJoined { Members = new string[] { "Rand", "Matt", "Perrin", "Thom" } };
                var departed = new MembersDeparted { Members = new[] { "Thom" } };

                session.Events.Append(id, joined, departed);

                session.SaveChanges();

                var events = listener.AfterCommitSession.LastCommit
                    .GetEvents()
                    .ToList();

                events.Count.ShouldBe(2);
                events.ElementAt(0).Data.ShouldBeOfType<MembersJoined>();
                events.ElementAt(1).Data.ShouldBeOfType<MembersDeparted>();
            }
        }