示例#1
0
        //wont catch exceptiopm
        public void fixedConcatStreamlengthProperty2nd()
        {
            byte[] writeBuffer = new byte[14];

            MemoryStream       s1     = new MemoryStream();
            NoSeekMemoryStream s2     = new NoSeekMemoryStream(writeBuffer);
            ConcatStream       testCS = new ConcatStream(s1, s2);


            long length = testCS.Length;

            for (int i = 0; i < 14; i++)
            {
                writeBuffer[i] = Convert.ToByte(i);
            }


            try
            {
                long l;
                l = testCS.Length;
            }
            catch (NotSupportedException e)
            {
                Assert.AreEqual("Length Property is not Supported", e.Message);
            }
        }
示例#2
0
        public void PositionPropertySetShouldThrowNotSupportedException()
        {
            byte[]             _byteArray = Encoding.ASCII.GetBytes("Stream string");
            NoSeekMemoryStream _stream    = new NoSeekMemoryStream(_byteArray);

            Assert.That(() => _stream.Position = 4, Throws.Exception);
        }
示例#3
0
        public void ReadFromFirstStreamOnly()
        {
            // Arrange
            byte[] buffer         = new byte[1046];
            byte[] buffer1        = Encoding.ASCII.GetBytes("123");
            byte[] buffer2        = Encoding.ASCII.GetBytes("456");
            byte[] expectedBuffer = new byte[buffer1.Length + buffer2.Length];
            System.Buffer.BlockCopy(buffer1, 0, expectedBuffer, 0, buffer1.Length);
            System.Buffer.BlockCopy(buffer2, 0, expectedBuffer, buffer1.Length, buffer2.Length);

            MemoryStream       stream1      = new MemoryStream(buffer1);
            NoSeekMemoryStream stream2      = new NoSeekMemoryStream(buffer2);
            ConcatStream       streamToTest = new ConcatStream(stream1, stream2);

            // Act
            int numberOfBytesRead = streamToTest.Read(buffer, 0, buffer1.Length);

            //Assert
            Assert.IsFalse(streamToTest.CanSeek);
            Assert.AreEqual(buffer1.Length, numberOfBytesRead);

            for (int i = 0; i < buffer1.Length; i++)
            {
                Assert.AreEqual(buffer1[i], buffer[i]);
            }
        }
示例#4
0
        public void NoSeekMemoryStreamLengthSet()
        {
            byte[] writeBuffer = new byte[14];


            NoSeekMemoryStream test = new NoSeekMemoryStream(writeBuffer);

            for (int i = 0; i < 14; i++)
            {
                writeBuffer[i] = Convert.ToByte(i);
            }



            test.Write(writeBuffer, 0, 6);


            try
            {
                test.SetLength(7);
            }
            catch (NotSupportedException e)
            {
                Assert.AreEqual("Not Supported", e.Message);
            }
        }
示例#5
0
        public void fixedConcatStreamlengthProperty()
        {
            byte[] writeBuffer = new byte[14];

            MemoryStream       s1     = new MemoryStream();
            NoSeekMemoryStream s2     = new NoSeekMemoryStream(writeBuffer);
            ConcatStream       testCS = new ConcatStream(s1, s2, 28);



            for (int i = 0; i < 14; i++)
            {
                writeBuffer[i] = Convert.ToByte(i);
            }

            s1.Write(writeBuffer, 0, 6);
            s2.Write(writeBuffer, 6, 8);


            long length = testCS.Length;

            for (int i = 0; i < 14; i++)
            {
                writeBuffer[i] = Convert.ToByte(i);
            }


            Assert.AreEqual(28, length);
        }
示例#6
0
        public void LengthPropertyThrowException()
        {
            byte[] buffer1  = Encoding.ASCII.GetBytes("123");
            byte[] buffer2  = Encoding.ASCII.GetBytes("456");
            byte[] expected = Encoding.ASCII.GetBytes("123456");

            MemoryStream       stream1      = new MemoryStream(buffer1);
            NoSeekMemoryStream stream2      = new NoSeekMemoryStream(buffer2);
            ConcatStream       streamToTest = new ConcatStream(stream1, stream2);

            bool errorWasThrown = false;

            try
            {
                long num = streamToTest.Length;
            }
            catch
            {
                errorWasThrown = true;
            }
            finally
            {
                Assert.IsTrue(errorWasThrown);
            }
        }
示例#7
0
        public void SeekShouldThrowNotSupportedException()
        {
            byte[]             _byteArray = Encoding.ASCII.GetBytes("Stream string");
            NoSeekMemoryStream _stream    = new NoSeekMemoryStream(_byteArray);

            Assert.Throws <NotSupportedException>(
                () => _stream.Seek(0, SeekOrigin.Begin));
        }
示例#8
0
        public void CanSeekPropertyShouldReturnFalse()
        {
            byte[]             _byteArray = Encoding.ASCII.GetBytes("Stream string");
            NoSeekMemoryStream _stream    = new NoSeekMemoryStream(_byteArray);

            bool result = _stream.CanSeek;

            Assert.IsFalse(result);
        }
示例#9
0
        public void FirstConstructorStreamWithNoLengthForFirstStream()
        {
            //Arrange
            byte[]             byteArray = Encoding.ASCII.GetBytes("memoryStream string");
            NoSeekMemoryStream stream1   = new NoSeekMemoryStream(byteArray);
            MemoryStream       stream2   = new MemoryStream(byteArray);

            //Assert
            Assert.Throws <ArgumentException>(() => new ConcatStream(stream1, stream2));
        }
        public void NoSeekMemoryStreamTest()
        {
            NoSeekMemoryStream str1 = new NoSeekMemoryStream(Encoding.ASCII.GetBytes("newstream"));
            MemoryStream       str2 = new MemoryStream(Encoding.ASCII.GetBytes("newstream"));

            byte[] buf1 = new byte[10];
            byte[] buf2 = new byte[10];
            str1.Read(buf1, 0, 10);
            str2.Read(buf2, 0, 10);
            Assert.That(buf1.SequenceEqual(buf2));
        }
示例#11
0
        public void ConstructorTwo()
        {
            byte[]             _byteArray = Encoding.ASCII.GetBytes("Stream string");
            NoSeekMemoryStream _stream    = new NoSeekMemoryStream(_byteArray, 0, _byteArray.Length);

            Assert.NotNull(_stream);
            Assert.IsFalse(_stream.CanSeek);
            Assert.IsTrue(_stream.CanRead);
            Assert.IsTrue(_stream.CanWrite);
            //Assert.That(()=> _stream.Length, Throws.Exception );
        }
示例#12
0
        public void SecondConstructorWithLengthParameterThatIsLessThanFirstStreamLength()
        {
            //Arrange
            byte[]             byteArray = Encoding.ASCII.GetBytes("memoryStream string");
            MemoryStream       stream1   = new MemoryStream(byteArray);
            NoSeekMemoryStream stream2   = new NoSeekMemoryStream(byteArray);
            long length = stream1.Length - 1;

            // //Assert
            Assert.Throws <ArgumentException>(() =>
                                              new ConcatStream(stream1, stream2, length));
        }
示例#13
0
        public void SecondConstructorWithNoSeekStreamAsFirstParameter()
        {
            //Arrange
            byte[]             byteArray = Encoding.ASCII.GetBytes("memoryStream string");
            NoSeekMemoryStream stream1   = new NoSeekMemoryStream(byteArray);
            MemoryStream       stream2   = new MemoryStream(byteArray);
            long length = 2 * stream2.Length;

            // //Assert
            Assert.Throws <ArgumentException>(() =>
                                              new ConcatStream(stream1, stream2, length));
        }
示例#14
0
        public void LengthPropertyAllowAccessWithSecondConstructorAndNoSeekCapabilities()
        {
            byte[] buffer1  = Encoding.ASCII.GetBytes("123");
            byte[] buffer2  = Encoding.ASCII.GetBytes("456");
            byte[] expected = Encoding.ASCII.GetBytes("123456");

            MemoryStream       stream1      = new MemoryStream(buffer1);
            NoSeekMemoryStream stream2      = new NoSeekMemoryStream(buffer2);
            ConcatStream       streamToTest = new ConcatStream(stream1, stream2, 6);

            Assert.NotNull(streamToTest.Length);
            Assert.AreEqual(6, streamToTest.Length);
        }
示例#15
0
        public void FirstConstructorStreamWithNoLengthForSecondStream()
        {
            //Arrange
            byte[]             byteArray = Encoding.ASCII.GetBytes("memoryStream string");
            MemoryStream       stream1   = new MemoryStream(byteArray);
            NoSeekMemoryStream stream2   = new NoSeekMemoryStream(byteArray);

            //Act
            ConcatStream concatStream = new ConcatStream(stream1, stream2);

            //Assert
            Assert.NotNull(concatStream);
            Assert.IsFalse(concatStream.CanSeek);
            Assert.IsTrue(concatStream.CanRead);
            Assert.IsTrue(concatStream.CanWrite);
        }
示例#16
0
        public void SecondConstructorWithNoSeekStreamAsSecondParameter()
        {
            //Arrange
            byte[]             byteArray = Encoding.ASCII.GetBytes("memoryStream string");
            MemoryStream       stream1   = new MemoryStream(byteArray);
            NoSeekMemoryStream stream2   = new NoSeekMemoryStream(byteArray);
            long length = 2 * stream1.Length;

            //Act
            ConcatStream concatStream = new ConcatStream(stream1, stream2, length);

            //Assert
            Assert.NotNull(concatStream);
            Assert.IsFalse(concatStream.CanSeek);
            Assert.IsTrue(concatStream.CanRead);
            Assert.IsTrue(concatStream.CanWrite);
            Assert.NotNull(concatStream.Length);
        }
示例#17
0
        public void NoSeekMemoryStreamCanSeekProp()
        {
            byte[] writeBuffer = new byte[14];


            NoSeekMemoryStream test = new NoSeekMemoryStream(writeBuffer);

            for (int i = 0; i < 14; i++)
            {
                writeBuffer[i] = Convert.ToByte(i);
            }



            test.Write(writeBuffer, 0, 6);


            Assert.AreEqual(false, test.CanSeek);
        }
示例#18
0
        public void FirstConstructorSetPositionToZeroWhenFirstStreamPositionIsNotZero()
        {
            //Arrange
            byte[]             byteArray = Encoding.ASCII.GetBytes("memoryStream string");
            MemoryStream       stream1   = new MemoryStream(byteArray);
            NoSeekMemoryStream stream2   = new NoSeekMemoryStream(byteArray);

            stream1.Position = 4;

            //Act
            ConcatStream concatStream = new ConcatStream(stream1, stream2);

            // //Assert
            Assert.NotNull(concatStream);
            Assert.IsFalse(concatStream.CanSeek);
            Assert.IsTrue(concatStream.CanRead);
            Assert.IsTrue(concatStream.CanWrite);
            Assert.AreEqual(0, concatStream.Position);
        }
示例#19
0
        public void AttemptToReadPastEndOfNoSeekStreamShouldOnlyReadToEndOfStream()
        {
            byte[]             result       = new byte[100];
            byte[]             buffer       = Encoding.ASCII.GetBytes("12345");
            byte[]             expected     = Encoding.ASCII.GetBytes("1234512345");
            MemoryStream       stream1      = new MemoryStream(buffer);
            NoSeekMemoryStream stream2      = new NoSeekMemoryStream(buffer);
            ConcatStream       streamToTest = new ConcatStream(stream1, stream2);

            // Act
            int bytesRead = streamToTest.Read(result, 0, expected.Length + 5);

            //Assert
            Assert.AreEqual(expected.Length, bytesRead);
            for (int i = 0; i < expected.Length; i++)
            {
                Assert.AreEqual(expected[i], result[i]);
            }
            Assert.AreEqual(expected.Length, bytesRead);
        }
        public void SeekTest()
        {
            NoSeekMemoryStream str = new NoSeekMemoryStream(Encoding.ASCII.GetBytes("newstream"));

            try
            {
                str.Position = 6;
                Assert.Fail();
            }
            catch (NotSupportedException)
            { }
            catch (Exception)
            {
                Assert.Fail();
            }

            try
            {
                str.Seek(4, System.IO.SeekOrigin.Begin);
                Assert.Fail();
            }
            catch (NotSupportedException)
            { }
            catch (Exception)
            {
                Assert.Fail();
            }

            try
            {
                long len = str.Length;
                Assert.Fail();
            }
            catch (NotSupportedException)
            { }
            catch (Exception)
            {
                Assert.Fail();
            }
        }
示例#21
0
        public void WritePastEndOfConcatStreamThatDoesNotSupportLengthShouldExpandStream()
        {
            // Arrange
            byte[]             result        = new byte[100];
            byte[]             bufferToWrite = Encoding.ASCII.GetBytes("12345");
            MemoryStream       stream1       = new MemoryStream();
            NoSeekMemoryStream stream2       = new NoSeekMemoryStream();
            ConcatStream       streamToTest  = new ConcatStream(stream1, stream2);

            // Act
            streamToTest.Write(bufferToWrite, 0, bufferToWrite.Length);
            streamToTest.Position = 0;

            int bytesRead = streamToTest.Read(result, 0, bufferToWrite.Length);

            //Assert
            Assert.AreEqual(bufferToWrite.Length, bytesRead);
            for (int i = 0; i < bufferToWrite.Length; i++)
            {
                Assert.AreEqual(bufferToWrite[i], result[i]);
            }
        }
示例#22
0
        public void basicNoSeekConcatStreamRead()
        {
            byte[] writeBuffer  = new byte[14];
            byte[] writeBuffer2 = new byte[8];
            byte[] readBuffer   = new byte[14];

            MemoryStream s1 = new MemoryStream();



            for (int i = 0; i < 14; i++)
            {
                writeBuffer[i] = Convert.ToByte(i);
            }

            s1.Write(writeBuffer, 0, 6);

            //s2.Write (writeBuffer, 6, 8);
            for (int i = 0; i < 8; i++)
            {
                writeBuffer2[i] = Convert.ToByte(i + 6);
            }

            NoSeekMemoryStream s2     = new NoSeekMemoryStream(writeBuffer2);
            ConcatStream       testCS = new ConcatStream(s1, s2);

            s1.Seek(0, SeekOrigin.Begin);
            //s2.Seek (0, SeekOrigin.Begin);

            testCS.Read(readBuffer, 0, 14);

            s1.Seek(0, SeekOrigin.Begin);

            for (int i = 0; i < readBuffer.Length; i++)
            {
                Assert.AreEqual(readBuffer[i], writeBuffer [i]);
            }
        }
示例#23
0
        public void ReadAllBytesFromConcatStreamThatHasNoSeekAsSecondStream()
        {
            // Arrange
            byte[] buffer         = new byte[1046];
            byte[] buffer1        = Encoding.ASCII.GetBytes("123");
            byte[] buffer2        = Encoding.ASCII.GetBytes("456");
            byte[] expectedBuffer = Encoding.ASCII.GetBytes("123456");;

            MemoryStream       stream1      = new MemoryStream(buffer1);
            NoSeekMemoryStream stream2      = new NoSeekMemoryStream(buffer2);
            ConcatStream       streamToTest = new ConcatStream(stream1, stream2);

            // Act
            int numberOfBytesRead = streamToTest.Read(buffer, 0, expectedBuffer.Length);

            //Assert
            Assert.IsFalse(streamToTest.CanSeek);
            Assert.AreEqual(expectedBuffer.Length, numberOfBytesRead);

            for (int i = 0; i < expectedBuffer.Length; i++)
            {
                Assert.AreEqual(expectedBuffer[i], buffer[i]);
            }
        }