public void Read_ManualKey_Test()
        {
            // Arrange

            var record = new ClassWithGuidKeys();

            this.recordReferenceMock.Setup(m => m.RecordObject).Returns(record);
            this.recordReferenceMock.Setup(m => m.RecordType).Returns(record.GetType());

            var streamReadPointer = new Counter();

            var returnValue = new object[] { "Key1", Guid.NewGuid(), "Key3", Guid.NewGuid(), "Key4", Guid.NewGuid() };

            // Act

            this.insertRecord.Write(this.breakerMock.Object, this.writePrimitivesMock.Object, new Counter(), new AbstractRepositoryOperation[1]);
            this.insertRecord.Read(streamReadPointer, returnValue);

            // Assert

            Assert.AreEqual(returnValue[1], record.Key1);
            Assert.AreEqual(returnValue[3], record.Key3);
            Assert.AreEqual(6, streamReadPointer.Value);
        }