public void Test() { var filePath = Path.GetTempFileName(); var mmf = MemoryMappedFile.CreateFromFile(filePath, FileMode.OpenOrCreate, null, Sizes.Size1Kb); var stream = new FakeStream( (dataOffset, dataSize, buffer, offset, count) => { // ReSharper disable once AccessToDisposedClosure using (var reader = mmf.CreateViewStream(dataOffset, dataSize, MemoryMappedFileAccess.Read)) { return(reader.Read(buffer, offset, count)); } }, 100, 23); var bytes = new byte[10]; var read = stream.Read(bytes, 0, 10); Assert.AreEqual(10, read); read = stream.Read(bytes, 0, 10); Assert.AreEqual(10, read); read = stream.Read(bytes, 0, 10); Assert.AreEqual(3, read); read = stream.Read(bytes, 0, 10); Assert.AreEqual(0, read); mmf.Dispose(); File.Delete(filePath); }
public void ShouldNotRequireSeeking() { var model = TypeModel.Create(); byte[] raw; const int EXPECTED = 830; using (var fs = new FakeStream()) { var db = NWindTests.LoadDatabaseFromFile <Database>(model); Assert.AreEqual(EXPECTED, db.Orders.Count); model.Serialize(fs, db); raw = fs.ToArray(); } using (var fs = new FakeStream(raw)) { var db = (Database)model.Deserialize(fs, null, typeof(Database)); Assert.AreEqual(EXPECTED, db.Orders.Count); } using (var fs = new FakeStream(raw)) { var db = Serializer.Deserialize <Database>(fs); Assert.AreEqual(EXPECTED, db.Orders.Count); } }
public ulong?Size(object value) { FakeStream stream = new FakeStream(); Save(value, stream); return((ulong?)stream.Length); }
public void WhenPushingSenderAndArgs_ThenPushesEventPattern() { var stream = new FakeStream(); stream.Push(this, EventArgs.Empty); Assert.IsAssignableFrom <IEventPattern <EventArgs> >(stream.PushedEvent); }
public async Task ReadExactAsync_OneBytesPerReadFromStream_ValidResult() { var inputBuffer = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; var readBuffer = new byte[inputBuffer.Length]; var stream = new FakeStream(inputBuffer); await stream.ReadExactAsync(readBuffer, 0, inputBuffer.Length); Assert.IsTrue(inputBuffer.SequenceEqual(readBuffer)); }
public void NonSeekableStreamGivesException() { using (var tf1 = new TestFile("Test1.jpg", "TestImage1.jpg")) using (FileStream expected = tf1.File.OpenRead()) using (var actual = new FakeStream()) { var ex = Assert.Throws <ArgumentException>(() => FileAssert.AreEqual(expected, actual)); Assert.That(ex.Message, Does.Contain("not seekable")); } }
public async Task StreamComparisonTestsAsync(string streamA, string streamB, int[] maxStreamABytesReturnedEachCall, int[] maxStreamBBytesReturnedEachCall, int bufferSize) { byte[] streamABytes = Convert.FromBase64String(streamA); byte[] streamBBytes = Convert.FromBase64String(streamB); FakeStream fakeStreamA = new FakeStream(streamABytes, maxStreamABytesReturnedEachCall); FakeStream fakeStreamB = new FakeStream(streamBBytes, maxStreamBBytesReturnedEachCall); Assert.Equal(streamA == streamB, await GeneralUtils.CompareStreamsAsync(fakeStreamA, fakeStreamB, bufferSize)); }
public void NonSeekableStreamGivesException() { using (new TestFile("Test1.jpg", "TestImage1.jpg")) using (FileStream expected = File.OpenRead("Test1.jpg")) using (FakeStream actual = new FakeStream()) { var ex = Assert.Throws<ArgumentException>(() => FileAssert.AreEqual(expected, actual)); Assert.That(ex.Message, Contains.Substring("not seekable")); } }
public async void StreamComparisonTests(string streamA, string streamB, int[] maxStreamABytesReturnedEachCall, int[] maxStreamBBytesReturnedEachCall, int bufferSize) { byte[] streamABytes = Convert.FromBase64String(streamA); byte[] streamBBytes = Convert.FromBase64String(streamB); FakeStream fakeStreamA = new FakeStream(streamABytes, maxStreamABytesReturnedEachCall); FakeStream fakeStreamB = new FakeStream(streamBBytes, maxStreamBBytesReturnedEachCall); Assert.Equal(streamA == streamB, await PublishArtifactsInManifest.CompareStreamsAsync(fakeStreamA, fakeStreamB, bufferSize)); }
public void NonSeekableStreamGivesException() { using (TestFile tf1 = new TestFile("Test1.jpg", "TestImage1.jpg")) { using (FileStream expected = File.OpenRead("Test1.jpg")) { using (FakeStream actual = new FakeStream()) { FileAssert.AreEqual(expected, actual); } } } }
public async Task StreamComparisonTestsAsync(string streamA, string streamB, int[] maxStreamABytesReturnedEachCall, int[] maxStreamBBytesReturnedEachCall, int bufferSize) { byte[] streamABytes = Convert.FromBase64String(streamA); byte[] streamBBytes = Convert.FromBase64String(streamB); FakeStream fakeStreamA = new FakeStream(streamABytes, maxStreamABytesReturnedEachCall); FakeStream fakeStreamB = new FakeStream(streamBBytes, maxStreamBBytesReturnedEachCall); bool streamsShouldBeSame = streamA == streamB; bool streamsAreSame = await GeneralUtils.CompareStreamsAsync(fakeStreamA, fakeStreamB, bufferSize); streamsAreSame.Should().Be(streamsShouldBeSame, "Stream comparison failed"); }
public override int FinalizeWrite(ObjectId id) { // TODO: Drop the check of the size when libgit2 #1837 is merged long totalLength = _chunks.Sum(chunk => chunk.Length); if (totalLength != _length) { throw new InvalidOperationException( $"Invalid object length. {_length} was expected. The total size of the received chunks amounts to {totalLength}."); } using (Stream stream = new FakeStream(_chunks, _length)) { Backend.Write(id, stream, _length, _type); } return((int)ReturnCode.GIT_OK); }
public void ShouldNotRequireSeeking() { var model = TypeModel.Create(); byte[] raw; const int EXPECTED = 830; using(var fs = new FakeStream()) { var db = NWindTests.LoadDatabaseFromFile<Database>(model); Assert.AreEqual(EXPECTED, db.Orders.Count); model.Serialize(fs, db); raw = fs.ToArray(); } using (var fs = new FakeStream(raw)) { var db = (Database)model.Deserialize(fs, null, typeof (Database)); Assert.AreEqual(EXPECTED, db.Orders.Count); } using (var fs = new FakeStream(raw)) { var db = Serializer.Deserialize<Database>(fs); Assert.AreEqual(EXPECTED, db.Orders.Count); } }
public void NonSeekableStreamGivesException() { using (TestFile tf1 = new TestFile("Test1.jpg", "TestImage1.jpg")) { using (FileStream expected = File.OpenRead(tf1.FileName)) { using (FakeStream actual = new FakeStream()) { FileAssert.AreEqual(expected, actual); } } } }
public override int FinalizeWrite(ObjectId oid) { //TODO: Drop the check of the size when libgit2 #1837 is merged long totalLength = _chunks.Sum(chunk => chunk.Length); if (totalLength != _length) { throw new InvalidOperationException( string.Format("Invalid object length. {0} was expected. The " + "total size of the received chunks amounts to {1}.", _length, totalLength)); } using (Stream stream = new FakeStream(_chunks, _length)) { Backend.Write(oid, stream, _length, _type); } return (int)ReturnCode.GIT_OK; }