Example #1
0
        private static void VerifyReadWrite <T>(int valueLength, T value, Func <ServiceBufferFileStreamWriter, T, int> writeFunc, Func <ServiceBufferFileStreamReader, FileStreamReadResult> readFunc)
        {
            // Setup: Create a mock file stream
            byte[] storage = new byte[8192];

            // If:
            // ... I write a type T to the writer
            using (ServiceBufferFileStreamWriter writer = new ServiceBufferFileStreamWriter(new MemoryStream(storage), 10, 10))
            {
                int writtenBytes = writeFunc(writer, value);
                Assert.Equal(valueLength, writtenBytes);
            }

            // ... And read the type T back
            FileStreamReadResult outValue;

            using (ServiceBufferFileStreamReader reader = new ServiceBufferFileStreamReader(new MemoryStream(storage)))
            {
                outValue = readFunc(reader);
            }

            // Then:
            Assert.Equal(value, outValue.Value.RawObject);
            Assert.Equal(valueLength, outValue.TotalLength);
            Assert.NotNull(outValue.Value);
        }
Example #2
0
        private static string VerifyReadWrite <T>(int valueLength, T value,
                                                  Func <ServiceBufferFileStreamWriter, T, int> writeFunc,
                                                  Func <ServiceBufferFileStreamReader, FileStreamReadResult> readFunc,
                                                  QueryExecutionSettings overrideSettings = null)
        {
            // Setup: Create a mock file stream
            byte[] storage = new byte[8192];
            overrideSettings = overrideSettings ?? new QueryExecutionSettings();

            // If:
            // ... I write a type T to the writer
            using (ServiceBufferFileStreamWriter writer = new ServiceBufferFileStreamWriter(new MemoryStream(storage), overrideSettings))
            {
                int writtenBytes = writeFunc(writer, value);
                Assert.Equal(valueLength, writtenBytes);
            }

            // ... And read the type T back
            FileStreamReadResult outValue;

            using (ServiceBufferFileStreamReader reader = new ServiceBufferFileStreamReader(new MemoryStream(storage), overrideSettings))
            {
                outValue = readFunc(reader);
            }

            // Then:
            Assert.Equal(value, outValue.Value.RawObject);
            Assert.Equal(valueLength, outValue.TotalLength);
            Assert.NotNull(outValue.Value);

            return(outValue.Value.DisplayValue);
        }
Example #3
0
        private static void VerifyReadWrite <T>(int valueLength, T value, Func <ServiceBufferFileStreamWriter, T, int> writeFunc, Func <ServiceBufferFileStreamReader, FileStreamReadResult> readFunc)
        {
            // Setup: Create a mock file stream wrapper
            Common.InMemoryWrapper mockWrapper = new Common.InMemoryWrapper();
            try
            {
                // If:
                // ... I write a type T to the writer
                using (ServiceBufferFileStreamWriter writer = new ServiceBufferFileStreamWriter(mockWrapper, "abc", 10, 10))
                {
                    int writtenBytes = writeFunc(writer, value);
                    Assert.Equal(valueLength, writtenBytes);
                }

                // ... And read the type T back
                FileStreamReadResult outValue;
                using (ServiceBufferFileStreamReader reader = new ServiceBufferFileStreamReader(mockWrapper, "abc"))
                {
                    outValue = readFunc(reader);
                }

                // Then:
                Assert.Equal(value, outValue.Value.RawObject);
                Assert.Equal(valueLength, outValue.TotalLength);
                Assert.NotNull(outValue.Value);
            }
            finally
            {
                // Cleanup: Close the wrapper
                mockWrapper.Close();
            }
        }
Example #4
0
        public void ReaderInvalidStreamCannotSeek()
        {
            // If: I create a service buffer file stream reader with a stream that cannot seek
            // Then: I should get an exception
            var invalidStream = new Mock <Stream>();

            invalidStream.SetupGet(s => s.CanRead).Returns(true);
            invalidStream.SetupGet(s => s.CanSeek).Returns(false);
            Assert.Throws <InvalidOperationException>(() =>
            {
                ServiceBufferFileStreamReader obj = new ServiceBufferFileStreamReader(invalidStream.Object, new QueryExecutionSettings());
                obj.Dispose();
            });
        }