public void Test_StoreThrowsErrorAfterDisposed()
 {
     var xBuff = new byte[2];
     var xSeg = new ArraySegment<byte>(xBuff);
     var xBlock = new SimpleStreamBlockStore(new MemoryStream(new byte[2]), 2);
     using (xBlock)
     {
         xBlock.Retrieve(0, xSeg);
     }
     xBlock.Retrieve(0, xSeg);
 }
Пример #2
0
 public void TestSingleBlock()
 {
     using (var xMemStream = new MemoryStream())
     {
         xMemStream.SetLength(2048);
         // 4 blocks of 512 bytes
         using (var xRawBlockStore = new SimpleStreamBlockStore(xMemStream, 512))
         {
             ODBFSImpl.Format(xRawBlockStore, 512);
             using (var xOdbfs = new ODBFSImpl(xRawBlockStore))
             {
                 Assert.AreEqual(0, xOdbfs.GetVirtualBlocks().Count());
                 var xBlockId = Guid.NewGuid();
                 xOdbfs.CreateNewBlock(xBlockId, 2);
                 var xBuff1 = new byte[512];
                 var xBuff1Seg = new ArraySegment<byte>(xBuff1);
                 var xBuff2 = new byte[512];
                 var xBuff2Seg = new ArraySegment<byte>(xBuff2);
                 using (var xBlock = xOdbfs.OpenBlock(xBlockId))
                 {
                     for (int i = 0; i < xBuff1.Length; i++)
                     {
                         xBuff1[i] = 0xFF;
                     }
                     xBlock.Store(0, xBuff1Seg);
                     xBlock.Store(1, xBuff1Seg);
                     xRawBlockStore.Retrieve(1, xBuff2Seg);
                     Assert.IsTrue(DeduplicatingBlockStore.CompareBlocks(xBuff1, xBuff2,0, 0, 512));
                     xRawBlockStore.Retrieve(2, xBuff2Seg);
                     Assert.IsTrue(DeduplicatingBlockStore.CompareBlocks(xBuff1, xBuff2, 0, 0, 512));
                     xBuff1 = new byte[512];
                     xRawBlockStore.Retrieve(3, xBuff2Seg);
                     Assert.IsTrue(DeduplicatingBlockStore.CompareBlocks(xBuff1, xBuff2, 0, 0, 512));
                 }
             }
         }
     }
 }
        public void DoTest()
        {
            using (var xBackend = new MemoryStream())
            {
                xBackend.SetLength(2);
                var xStore = new SimpleStreamBlockStore(xBackend, 1);
                Assert.AreEqual(1u, xStore.BlockSize);
                Assert.AreEqual(2u, xStore.BlockCount);
                var xBuff = new byte[1];
                xBuff[0] = 1;
                var xArraySegment = new ArraySegment<byte>(xBuff);
                xStore.Retrieve(0, xArraySegment);
                Assert.AreEqual(0, xBuff[0]);
                // now store a byte in block 0, and read back both 0 and 1
                xBuff[0] = 2;
                xStore.Store(1, xArraySegment);

                xStore.Retrieve(0, xArraySegment);
                Assert.AreEqual(0, xBuff[0]);

                xStore.Retrieve(1, xArraySegment);
                Assert.AreEqual(2, xBuff[0]);
            }
        }
 public void Test_StoreThrowsErrorWithWrongBufferSizeInRetrieve()
 {
     using (var xMS = new MemoryStream(new byte[2]))
     {
         IBlockStore xStore = new SimpleStreamBlockStore(xMS, 2);
         var xBuff = new byte[1];
         var xSeg = new ArraySegment<byte>(xBuff);
         xStore.Retrieve(0, xSeg);
     }
 }