Ejemplo n.º 1
0
        /// <exception cref="System.IO.IOException"/>
        public virtual void TestBoundedStream()
        {
            BoundedByteArrayOutputStream stream = new BoundedByteArrayOutputStream(Size);

            // Write to the stream, get the data back and check for contents
            stream.Write(Input, 0, Size);
            Assert.True("Array Contents Mismatch", Arrays.Equals(Input, stream
                                                                 .GetBuffer()));
            // Try writing beyond end of buffer. Should throw an exception
            bool caughtException = false;

            try
            {
                stream.Write(Input[0]);
            }
            catch (Exception)
            {
                caughtException = true;
            }
            Assert.True("Writing beyond limit did not throw an exception",
                        caughtException);
            //Reset the stream and try, should succeed
            stream.Reset();
            Assert.True("Limit did not get reset correctly", (stream.GetLimit
                                                                  () == Size));
            stream.Write(Input, 0, Size);
            Assert.True("Array Contents Mismatch", Arrays.Equals(Input, stream
                                                                 .GetBuffer()));
            // Try writing one more byte, should fail
            caughtException = false;
            try
            {
                stream.Write(Input[0]);
            }
            catch (Exception)
            {
                caughtException = true;
            }
            // Reset the stream, but set a lower limit. Writing beyond
            // the limit should throw an exception
            stream.Reset(Size - 1);
            Assert.True("Limit did not get reset correctly", (stream.GetLimit
                                                                  () == Size - 1));
            caughtException = false;
            try
            {
                stream.Write(Input, 0, Size);
            }
            catch (Exception)
            {
                caughtException = true;
            }
            Assert.True("Writing beyond limit did not throw an exception",
                        caughtException);
        }
Ejemplo n.º 2
0
        /// <exception cref="System.IO.IOException"/>
        private void FillOutput(InMemoryMapOutput <Text, Text> output)
        {
            BoundedByteArrayOutputStream stream = output.GetArrayStream();
            int count = stream.GetLimit();

            for (int i = 0; i < count; ++i)
            {
                stream.Write(i);
            }
        }