Beispiel #1
0
        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);
            }
        }
Beispiel #3
0
        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);
        }
Beispiel #5
0
        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"));
             }
 }
Beispiel #7
0
        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));
        }
Beispiel #10
0
 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);
             }
         }
     }
 }
Beispiel #11
0
        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);
     }
 }
Beispiel #14
0
 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;
            }