//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void shouldReturnIdImmediatelyAfterRecordIdOnlyOnce() public virtual void ShouldReturnIdImmediatelyAfterRecordIdOnlyOnce() { // given PrepareIdSequence idSequence = new SecondaryUnitPrepareIdSequence(); IdSequence actual = mock(typeof(IdSequence)); // when long recordId = 10; IdSequence prepared = idSequence.apply(actual).apply(recordId); long nextRecordId = prepared.NextId(); assertEquals(10 + 1, nextRecordId); verifyNoMoreInteractions(actual); try { prepared.NextId(); fail("Should've failed"); } catch (System.InvalidOperationException) { // good } // and when recordId = 20; prepared = idSequence.apply(actual).apply(recordId); nextRecordId = prepared.NextId(); // then assertEquals(20 + 1, nextRecordId); verifyNoMoreInteractions(actual); }
public override void Prepare(RECORD record, int recordSize, IdSequence idSequence) { _actual.prepare(record, recordSize, idSequence); if (!record.hasSecondaryUnitId()) { record.SecondaryUnitId = idSequence.NextId(); } }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void shouldReturnIdImmediatelyAfterRecordId() public virtual void ShouldReturnIdImmediatelyAfterRecordId() { // given PrepareIdSequence idSequence = new SecondaryUnitPrepareIdSequence(); IdSequence actual = mock(typeof(IdSequence)); // when long recordId = 10; IdSequence prepared = idSequence.apply(actual).apply(recordId); long nextRecordId = prepared.NextId(); // then assertEquals(10 + 1, nextRecordId); verifyNoMoreInteractions(actual); }
public override void Prepare(RECORD record, int recordSize, IdSequence idSequence) { if (record.inUse()) { int requiredLength = _headerByte + RequiredDataLength(record); bool requiresSecondaryUnit = requiredLength > recordSize; record.RequiresSecondaryUnit = requiresSecondaryUnit; if (record.requiresSecondaryUnit() && !record.hasSecondaryUnitId()) { // Allocate a new id at this point, but this is not the time to free this ID the the case where // this record doesn't need this secondary unit anymore... that needs to be done when applying to store. record.SecondaryUnitId = idSequence.NextId(); } } }