コード例 #1
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void shouldNeverReuseWhenNotLeader()
        public virtual void ShouldNeverReuseWhenNotLeader()
        {
            MemberId someoneElse = new MemberId(System.Guid.randomUUID());

            _idReusabilityCondition.onLeaderSwitch(new LeaderInfo(someoneElse, 1));
            assertFalse(_idReusabilityCondition.AsBoolean);
        }
コード例 #2
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void shouldReuseIdOnlyWhenLeader()
        public virtual void ShouldReuseIdOnlyWhenLeader()
        {
            ReplicatedIdRangeAcquirer rangeAcquirer = SimpleRangeAcquirer(IdType.NODE, 0, 1024);

            long burnedIds = 23L;

            using (FreeIdFilteredIdGenerator idGenerator = new FreeIdFilteredIdGenerator(GetReplicatedIdGenerator(10, burnedIds, rangeAcquirer), _idReusabilityCondition))
            {
                idGenerator.FreeId(10);
                assertEquals(0, idGenerator.DefragCount);
                assertEquals(23, idGenerator.NextId());

                when(_commandIndexTracker.AppliedCommandIndex).thenReturn(6L);                             // gap-free
                when(_state.lastLogIndexBeforeWeBecameLeader()).thenReturn(5L);
                _idReusabilityCondition.onLeaderSwitch(new LeaderInfo(_myself, 1));

                idGenerator.FreeId(10);
                assertEquals(1, idGenerator.DefragCount);
                assertEquals(10, idGenerator.NextId());
                assertEquals(0, idGenerator.DefragCount);
            }
        }