public void RestoreWorks()
{
cache.Store(T, fingerprint.Object,
new[]
{
new TargetRelativePath(String.Empty, "a"),
new TargetRelativePath(String.Empty, "b"),
new TargetRelativePath(String.Empty, "c")
}, root);
var target = new Mock<IFileSystemDirectory>();
var a = new MemoryStream();
var b = new MemoryStream();
var c = new MemoryStream();
target.Setup(t => t.CreateBinaryFile("a")).Returns(a);
target.Setup(t => t.CreateBinaryFile("b")).Returns(b);
target.Setup(t => t.CreateBinaryFile("c")).Returns(c);
var paths = cache.Restore(T, target.Object, false);
paths.Should().HaveCount(3).And.Contain(
new[]
{
new TargetRelativePath(String.Empty, "a"),
new TargetRelativePath(String.Empty, "b"),
new TargetRelativePath(String.Empty, "c")
});
target.Verify(t => t.CreateBinaryFile("a"), Times.Once());
target.Verify(t => t.CreateBinaryFile("b"), Times.Once());
target.Verify(t => t.CreateBinaryFile("c"), Times.Once());
Encoding.UTF8.GetString(a.ToArray()).Should().Be("a");
Encoding.UTF8.GetString(b.ToArray()).Should().Be("b");
Encoding.UTF8.GetString(c.ToArray()).Should().Be("c");
}