public static unsafe Mock <IRawFile> InMemoryFile(int bufferSize = 2048, int fileId = 0) { var core = new BufferBinaryReader(new byte[bufferSize]); var mock = new Mock <IRawFile>(); mock.Setup(s => s.ReadBool(It.IsAny <long>())).Returns((long offset) => core.ReadBool(offset)); mock.Setup(s => s.ReadByte(It.IsAny <long>())).Returns((long offset) => core.ReadByte(offset)); mock.Setup(s => s.ReadInt32(It.IsAny <long>())).Returns((long offset) => core.ReadInt32(offset)); mock.Setup(s => s.ReadInt64(It.IsAny <long>())).Returns((long offset) => core.ReadInt64(offset)); mock.Setup(s => s.ReadInt16(It.IsAny <long>())).Returns((long offset) => core.ReadInt16(offset)); mock.Setup(s => s.ReadUInt16(It.IsAny <long>())).Returns((long offset) => core.ReadUInt16(offset)); mock.Setup(s => s.ReadDouble(It.IsAny <long>())).Returns((long offset) => core.ReadDouble(offset)); mock.Setup(s => s.ReadBytes(It.IsAny <long>(), It.IsAny <byte[]>(), It.IsAny <int>(), It.IsAny <int>())) .Callback( (long offset, byte[] buff, int arrayOff, int len) => core.ReadBytes(offset, buff, arrayOff, len)); mock.Setup(s => s.WriteBool(It.IsAny <long>(), It.IsAny <bool>())).Callback((long offset, bool val) => core.WriteBool(offset, val)); mock.Setup(s => s.WriteByte(It.IsAny <long>(), It.IsAny <byte>())).Callback((long offset, byte val) => core.WriteByte(offset, val)); mock.Setup(s => s.WriteInt32(It.IsAny <long>(), It.IsAny <int>())).Callback((long offset, int val) => core.WriteInt32(offset, val)); mock.Setup(s => s.WriteInt64(It.IsAny <long>(), It.IsAny <long>())).Callback((long offset, long val) => core.WriteInt64(offset, val)); mock.Setup(s => s.WriteInt16(It.IsAny <long>(), It.IsAny <short>())).Callback((long offset, short val) => core.WriteInt16(offset, val)); mock.Setup(s => s.WriteDouble(It.IsAny <long>(), It.IsAny <double>())).Callback((long offset, double val) => core.WriteDouble(offset, val)); mock.Setup(s => s.WriteBytes(It.IsAny <long>(), It.IsAny <byte[]>(), It.IsAny <int>(), It.IsAny <int>())) .Callback( (long offset, byte[] buff, int arrayOff, int len) => core.WriteBytes(offset, buff, arrayOff, len)); mock.Setup(s => s.FileID).Returns(fileId); return(mock); }
private unsafe StringColumn CreateStringColumn(string value, int maxLen) { var data = new BufferBinaryReader(new byte[maxLen * 2 + 5]); var index = new BufferBinaryReader(new byte[2048]); _readerContext = new ReadContext(); int headLength = CreateHeader(value, data); if (value != null) { fixed(char *chars = value) { var strBytes = (byte *)&chars[0]; data.WriteBytes(headLength, strBytes, value.Length * 2); } } return(new StringColumn(data, index, maxLen, "column1")); }