public void TestSelect_invalidLayerDigest() { CacheStorageFiles cacheStorageFiles = new CacheStorageFiles(temporaryFolder.NewFolder().ToPath()); CacheStorageReader cacheStorageReader = new CacheStorageReader(cacheStorageFiles); DescriptorDigest selector = layerDigest1; SystemPath selectorFile = cacheStorageFiles.GetSelectorFile(selector); Files.CreateDirectories(selectorFile.GetParent()); Files.Write(selectorFile, Encoding.UTF8.GetBytes("not a valid layer digest")); try { cacheStorageReader.Select(selector); Assert.Fail("Should have thrown CacheCorruptedException"); } catch (CacheCorruptedException ex) { Assert.That( ex.Message, Does.StartWith( "Expected valid layer digest as contents of selector file `" + selectorFile + "` for selector `aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`, but got: not a valid layer digest")); } }
public void TestGetSelectorFile() { DescriptorDigest selector = DescriptorDigest.FromHash( "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"); Assert.AreEqual( Paths.Get( "cache", "directory", "selectors", "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"), TEST_CACHE_STORAGE_FILES.GetSelectorFile(selector)); }
public void TestSelect() { CacheStorageFiles cacheStorageFiles = new CacheStorageFiles(temporaryFolder.NewFolder().ToPath()); CacheStorageReader cacheStorageReader = new CacheStorageReader(cacheStorageFiles); DescriptorDigest selector = layerDigest1; SystemPath selectorFile = cacheStorageFiles.GetSelectorFile(selector); Files.CreateDirectories(selectorFile.GetParent()); Files.Write(selectorFile, Encoding.UTF8.GetBytes(layerDigest2.GetHash())); Maybe <DescriptorDigest> selectedLayerDigest = cacheStorageReader.Select(selector); Assert.IsTrue(selectedLayerDigest.IsPresent()); Assert.AreEqual(layerDigest2, selectedLayerDigest.Get()); }
public async Task TestWrite_uncompressedAsync() { IBlob uncompressedLayerBlob = Blobs.From("uncompressedLayerBlob"); BlobDescriptor layerDigestDescriptor = await GetDigestAsync(Compress(uncompressedLayerBlob)).ConfigureAwait(false); DescriptorDigest layerDigest = layerDigestDescriptor.GetDigest(); BlobDescriptor selectorDescriptor = await GetDigestAsync(Blobs.From("selector")).ConfigureAwait(false); DescriptorDigest selector = selectorDescriptor.GetDigest(); CachedLayer cachedLayer = await new CacheStorageWriter(cacheStorageFiles) .WriteUncompressedAsync(uncompressedLayerBlob, selector).ConfigureAwait(false); await VerifyCachedLayerAsync(cachedLayer, uncompressedLayerBlob).ConfigureAwait(false); // Verifies that the files are present. SystemPath selectorFile = cacheStorageFiles.GetSelectorFile(selector); Assert.IsTrue(Files.Exists(selectorFile)); Assert.AreEqual(layerDigest.GetHash(), await Blobs.WriteToStringAsync(Blobs.From(selectorFile)).ConfigureAwait(false)); }