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 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()); }