Exemple #1
0
        public async void CanMergeWithoutNewStreams()
        {
            var container = CreateContainer(new List <Action <Container> >()
            {
                Config.RegisterSagas
            });
            var bus     = container.GetInstance <IBus>();
            var manager = container.GetInstance <IBranchManager>();

            var command = new CreateRoot("Root");
            await await bus.CommandAsync(command);

            await manager.Branch("test");

            await await bus.CommandAsync(new UpdateRoot("Root"));

            var infoQuery = new RootInfoQuery("Root");
            await bus.IsTrue(infoQuery, r => r.CreatedAt < r.UpdatedAt);

            await await bus.CommandAsync(new CreateRoot("BranchRoot"));

            manager.Reset();

            await bus.IsTrue(infoQuery, r => r.CreatedAt == r.UpdatedAt);

            await manager.Merge("test", false);

            await bus.IsTrue(infoQuery, r => r.CreatedAt < r.UpdatedAt);

            await bus.Equal(new StatsQuery(), s => s.NumberOfRoots, 2);
        }
Exemple #2
0
        public async void CanMergeTimeline()
        {
            var container = CreateContainer(new List <Action <Container> >()
            {
                Config.RegisterSagas
            });
            var bus  = container.GetInstance <IBus>();
            var time = container.GetInstance <IBranchManager>();

            var command = new CreateRoot("Root");
            await await bus.CommandAsync(command);

            await time.Branch("test");

            await await bus.CommandAsync(new UpdateRoot("Root"));

            var infoQuery = new RootInfoQuery("Root");
            await bus.IsTrue(infoQuery, r => r.CreatedAt < r.UpdatedAt);

            await await bus.CommandAsync(new CreateRoot("TestRoot"));

            time.Reset();

            await bus.IsTrue(infoQuery, r => r.CreatedAt == r.UpdatedAt);

            await time.Merge("test");

            await bus.IsTrue(infoQuery, r => r.CreatedAt < r.UpdatedAt);

            await bus.Equal(new StatsQuery(), s => s.NumberOfRoots, 4);

            await time.Merge("test");

            await bus.Equal(new StatsQuery(), s => s.NumberOfRoots, 4);

            var graph = container.GetInstance <IGraph>();
            await graph.Serialise(nameof(CanMergeTimeline));
        }
Exemple #3
0
 public RootInfo RootInfoQueryEx(RootInfoQuery query) => Resolve(query);