protected override async Task Given() { _expectedNumberOfRoleAssignments.Wait(5000); var leader = GetLeader(); Assert.IsNotNull(leader, "Could not get leader node"); // Set the checkpoint so the check is not skipped leader.Db.Config.ReplicationCheckpoint.Write(0); _subscriptionsConfirmed = new CountdownEvent(3); _leaderSubscription = new TestSubscription <TLogFormat, TStreamId>(leader, 1, _streamId, _subscriptionsConfirmed); _leaderSubscription.CreateSubscription(); _followerSubscriptions = new List <TestSubscription <TLogFormat, TStreamId> >(); var followers = GetFollowers(); foreach (var s in followers) { var followerSubscription = new TestSubscription <TLogFormat, TStreamId>(s, 1, _streamId, _subscriptionsConfirmed); _followerSubscriptions.Add(followerSubscription); followerSubscription.CreateSubscription(); } if (!_subscriptionsConfirmed.Wait(_timeout)) { Assert.Fail("Timed out waiting for subscriptions to confirm"); } var events = new Event[] { new Event(Guid.NewGuid(), "test-type", false, new byte[10], new byte[0]) }; var writeResult = ReplicationTestHelper.WriteEvent(leader, events, _streamId); Assert.AreEqual(OperationResult.Success, writeResult.Result); await base.Given(); var replicas = GetFollowers(); AssertEx.IsOrBecomesTrue( () => { var leaderIndex = leader.Db.Config.IndexCheckpoint.Read(); return(replicas[0].Db.Config.IndexCheckpoint.Read() == leaderIndex && replicas[1].Db.Config.IndexCheckpoint.Read() == leaderIndex); }, timeout: TimeSpan.FromSeconds(2)); }
protected override void Given() { _expectedNumberOfRoleAssignments.Wait(5000); var master = GetMaster(); Assert.IsNotNull(master, "Could not get master node"); var events = new Event[] { new Event(Guid.NewGuid(), "test-type", false, new byte[10], new byte[0]) }; var writeResult = ReplicationTestHelper.WriteEvent(master, events, _streamId); Assert.AreEqual(OperationResult.Success, writeResult.Result); _commitPosition = writeResult.CommitPosition; // Set checkpoint to starting value master.Db.Config.ReplicationCheckpoint.Write(-1); base.Given(); }
protected override void Given() { _expectedNumberOfRoleAssignments.Wait(5000); var master = GetMaster(); Assert.IsNotNull(master, "Could not get master node"); // Set the checkpoint so the check is not skipped master.Db.Config.ReplicationCheckpoint.Write(0); var events = new Event[] { new Event(Guid.NewGuid(), "test-type", false, new byte[10], new byte[0]) }; var writeResult = ReplicationTestHelper.WriteEvent(master, events, _streamId); Assert.AreEqual(OperationResult.Success, writeResult.Result); _commitPosition = writeResult.CommitPosition; Assert.IsTrue(_commitPosition <= GetMaster().Db.Config.ReplicationCheckpoint.ReadNonFlushed(), "Replication checkpoint should be greater than event commit position"); base.Given(); }
protected override async Task Given() { _expectedNumberOfRoleAssignments.Wait(5000); _liveNode = GetMaster(); Assert.IsNotNull(_liveNode, "Could not get master node"); var events = new Event[] { new Event(Guid.NewGuid(), "test-type", false, new byte[10], new byte[0]) }; var writeResult = ReplicationTestHelper.WriteEvent(_liveNode, events, _streamId); Assert.AreEqual(OperationResult.Success, writeResult.Result); _commitPosition = writeResult.CommitPosition; var slaves = GetSlaves(); foreach (var s in slaves) { await ShutdownNode(s.DebugIndex); } await base.Given(); }
protected override void Given() { _expectedNumberOfRoleAssignments.Wait(5000); var master = GetMaster(); Assert.IsNotNull(master, "Could not get master node"); // Set the checkpoint so the check is not skipped master.Db.Config.ReplicationCheckpoint.Write(0); _subscriptionsConfirmed = new CountdownEvent(3); _masterSubscription = new TestSubscription(master, 1, _streamId, _subscriptionsConfirmed); _masterSubscription.CreateSubscription(); _slaveSubscriptions = new List <TestSubscription>(); var slaves = GetSlaves(); foreach (var s in slaves) { var slaveSubscription = new TestSubscription(s, 1, _streamId, _subscriptionsConfirmed); _slaveSubscriptions.Add(slaveSubscription); slaveSubscription.CreateSubscription(); } if (!_subscriptionsConfirmed.Wait(_timeout)) { Assert.Fail("Timed out waiting for subscriptions to confirm"); } var events = new Event[] { new Event(Guid.NewGuid(), "test-type", false, new byte[10], new byte[0]) }; var writeResult = ReplicationTestHelper.WriteEvent(master, events, _streamId); Assert.AreEqual(OperationResult.Success, writeResult.Result); base.Given(); }