public override void When()
        {
            _eventId       = Guid.NewGuid();
            _transactionId = Guid.NewGuid();

            var record = new PrepareLogRecord(
                logPosition: 0,
                eventId: _eventId,
                correlationId: _transactionId,
                transactionPosition: 0xDEAD,
                transactionOffset: 0xBEEF,
                eventStreamId: "WorldEnding",
                expectedVersion: 1234,
                timeStamp: new DateTime(2012, 12, 21),
                flags: PrepareFlags.Data,
                eventType: "type",
                data: new byte[] { 1, 2, 3, 4, 5 },
                metadata: new byte[] { 7, 17 });

            Assert.True(Writer.Write(record, out _logPosition));
            Writer.Flush();

            IndexCommitter.AddPendingPrepare(new[] { record }, _logPosition);
            var record2 = new CommitLogRecord(
                logPosition: _logPosition,
                correlationId: _transactionId,
                transactionPosition: 0,
                timeStamp: new DateTime(2012, 12, 21),
                firstEventNumber: 10);

            Assert.True(Writer.Write(record2, out _logPosition));
            Writer.Flush();
        }
        public override void When()
        {
            _eventId       = Guid.NewGuid();
            _transactionId = Guid.NewGuid();

            var recordFactory = LogFormatHelper <TLogFormat, TStreamId> .RecordFactory;
            var streamId      = LogFormatHelper <TLogFormat, TStreamId> .StreamId;
            var eventTypeId   = LogFormatHelper <TLogFormat, TStreamId> .EventTypeId;

            var record = LogRecord.Prepare(
                factory: recordFactory,
                logPosition: 0,
                eventId: _eventId,
                correlationId: _transactionId,
                transactionPos: 0xDEAD,
                transactionOffset: 0xBEEF,
                eventStreamId: streamId,
                expectedVersion: 1234,
                timeStamp: new DateTime(2012, 12, 21),
                flags: PrepareFlags.Data,
                eventType: eventTypeId,
                data: new byte[] { 1, 2, 3, 4, 5 },
                metadata: new byte[] { 7, 17 });

            Assert.True(Writer.Write(record, out _logPosition));
            Writer.Flush();

            IndexCommitter.AddPendingPrepare(new[] { record }, _logPosition);
            var record2 = new CommitLogRecord(
                logPosition: _logPosition,
                correlationId: _transactionId,
                transactionPosition: 0,
                timeStamp: new DateTime(2012, 12, 21),
                firstEventNumber: 10);

            Assert.True(Writer.Write(record2, out _logPosition));
            Writer.Flush();
        }