public virtual void TestMaxObjectSizeDeltaResultSize()
        {
            TestRepository d = new TestRepository <FileRepository>(db);
            RevBlob        a = d.Blob("0123456789");

            TemporaryBuffer.Heap pack = new TemporaryBuffer.Heap(1024);
            PackHeader(pack, 1);
            pack.Write((Constants.OBJ_REF_DELTA) << 4 | 4);
            a.CopyRawTo(pack);
            Deflate(pack, new byte[] { 10, 11, 1, (byte)('a') });
            Digest(pack);
            PackParser p = Index(new ByteArrayInputStream(pack.ToByteArray()));

            p.SetAllowThin(true);
            p.SetMaxObjectSizeLimit(11);
            p.Parse(NullProgressMonitor.INSTANCE);
            p = Index(new ByteArrayInputStream(pack.ToByteArray()));
            p.SetAllowThin(true);
            p.SetMaxObjectSizeLimit(10);
            try
            {
                p.Parse(NullProgressMonitor.INSTANCE);
                NUnit.Framework.Assert.Fail("PackParser should have failed");
            }
            catch (TooLargeObjectInPackException e)
            {
                NUnit.Framework.Assert.IsTrue(e.Message.Contains("11"));
                // result obj size
                NUnit.Framework.Assert.IsTrue(e.Message.Contains("10"));
            }
        }
        public virtual void TestMaxObjectSizeFullBlob()
        {
            TestRepository d = new TestRepository <FileRepository>(db);

            byte[] data = Constants.Encode("0123456789");
            d.Blob(data);
            TemporaryBuffer.Heap pack = new TemporaryBuffer.Heap(1024);
            PackHeader(pack, 1);
            pack.Write((Constants.OBJ_BLOB) << 4 | 10);
            Deflate(pack, data);
            Digest(pack);
            PackParser p = Index(new ByteArrayInputStream(pack.ToByteArray()));

            p.SetMaxObjectSizeLimit(11);
            p.Parse(NullProgressMonitor.INSTANCE);
            p = Index(new ByteArrayInputStream(pack.ToByteArray()));
            p.SetMaxObjectSizeLimit(10);
            p.Parse(NullProgressMonitor.INSTANCE);
            p = Index(new ByteArrayInputStream(pack.ToByteArray()));
            p.SetMaxObjectSizeLimit(9);
            try
            {
                p.Parse(NullProgressMonitor.INSTANCE);
                NUnit.Framework.Assert.Fail("PackParser should have failed");
            }
            catch (TooLargeObjectInPackException e)
            {
                NUnit.Framework.Assert.IsTrue(e.Message.Contains("10"));
                // obj size
                NUnit.Framework.Assert.IsTrue(e.Message.Contains("9"));
            }
        }