public void CreateFileOnDiskFromAsset_CheckProperDehydration()
{
fileHelper.Setup(fh => fh.Write(It.IsAny<string>(), "asset content"))
.Verifiable();
fileHelper.Setup(fh => fh.Write(It.IsAny<string>(), "[{\"AssetReferenceType\":1,\"LineNumber\":1,\"Path\":\"~/file2\"}]"))
.Verifiable();
fileHelper.Setup(fh => fh.Write(It.IsAny<string>(), "[]"))
.Verifiable();
fileHelper.Setup(fh => fh.Exists(It.IsAny<string>()))
.Returns(true);
fileHelper.Setup(fh => fh.GetLastAccessTime(It.IsAny<string>()))
.Returns(DateTime.Today);
uncachedToCachedFiles.Setup(d => d.ContainsKey(It.IsAny<string>()))
.Returns(false);
uncachedToCachedFiles.Setup(d => d.Add(It.IsAny<string>(), It.IsAny<string>()));
unprocessedAssetPaths.Add("~/a");
var stubFileCreation = typeof(Asset_Tests).GetMethod("StubFile", BindingFlags.NonPublic | BindingFlags.Instance);
var fileAssetChild = new FileAsset((IFile)stubFileCreation.Invoke(new Asset_Tests(), new object[] { "asset content", "~/file2" }), fileBundle);
fileAsset.AddReference(fileAssetChild.SourceFile.FullPath, 1);
fileBundle.Assets.Add(fileAssetChild);
AddToDisk(fileHelper.Object, uncachedToCachedFiles.Object, fileBundle, unprocessedAssetPaths);
fileBundle.Assets.First().References.First().Path.Equals(fileAssetChild.SourceFile.FullPath);
fileHelper.Verify();
fileHelper.Verify(fh => fh.Write(It.IsAny<string>(), "[{\"AssetReferenceType\":1,\"LineNumber\":1,\"Path\":\"~/file2\"}]"), Times.Once());
fileHelper.Verify(fh => fh.Write(It.IsAny<string>(), "[]"), Times.Exactly(3));
fileHelper.Verify(fh => fh.Write(It.IsAny<string>(), "asset content"), Times.Exactly(2));
}