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); }
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)); }
public RootInfo RootInfoQueryEx(RootInfoQuery query) => Resolve(query);