コード例 #1
0
        public void AppendBlobWorks(bool useFile)
        {
            IBlobManager blobManager = useFile ? new FileBlobManager() : new InMemoryBlobManager();
            string       path        = GetPathForIndexAndBlobs(useFile);

            if (path == null)
            {
                return;
            }
            if (blobManager.Exists(path))
            {
                blobManager.Delete(path);
            }

            blobManager.OpenForWriting(path);
            var data = new byte[] { 1, 2, 3, 4, 5, 6 };

            blobManager.Append(path, data.Take(3).ToArray());
            blobManager.Append(path, data.Skip(3).ToArray());
            blobManager.CloseAfterWriting(path);
            long length = blobManager.GetLength(path);
            var  result = blobManager.Read(path, 0, (int)length);

            result.ToArray().SequenceEqual(data).Should().BeTrue();

            blobManager.Delete(path);
            data = new byte[] { 1, 2, 3, 4, 5, 6 };
            blobManager.Append(path, data.Take(3).ToArray());
            blobManager.Append(path, data.Skip(3).ToArray());
            length = blobManager.GetLength(path);
            result = blobManager.Read(path, 0, (int)length);
            result.ToArray().SequenceEqual(data).Should().BeTrue();
        }
コード例 #2
0
        public void WriteBlobWorks(bool useFile)
        {
            IBlobManager blobManager = useFile ? new FileBlobManager() : new InMemoryBlobManager();
            string       path        = GetPathForIndexAndBlobs(useFile);

            if (path == null)
            {
                return;
            }
            if (blobManager.Exists(path))
            {
                blobManager.Delete(path);
            }

            var data = new byte[] { 1, 2, 3 };

            blobManager.Write(path, data);
            long length = blobManager.GetLength(path);
            var  result = blobManager.Read(path, 0, (int)length);

            result.ToArray().SequenceEqual(data).Should().BeTrue();

            data = new byte[] { 4, 5, 6 };
            blobManager.Write(path, data);
            length = blobManager.GetLength(path);
            result = blobManager.Read(path, 0, (int)length);
            result.ToArray().SequenceEqual(data).Should().BeTrue();
            result = blobManager.ReadAll(path);
            result.ToArray().SequenceEqual(data).Should().BeTrue();
        }
コード例 #3
0
 public override bool RemoveBlobStream(Guid blobId, CallContext context)
 {
     if (_configured)
     {
         _blobManager.Delete(blobId);
     }
     return(base.RemoveBlobStream(blobId, context));
 }
コード例 #4
0
 public void Delete(string path)
 {
     Debug.WriteLine($"Deleting {path}");
     firstStorageType.Delete(path);
     secondStorageType.Delete(path);
 }