public void ResolveReferenceRequiresNonNullOrEmptyName()
        {
            GitReferenceDirectory dir = new GitReferenceDirectory(new InMemoryFileSystem());

            Assert.Throws <ArgumentException>(() => dir.ResolveReference(null))
            .WithParamName("referenceName");
            Assert.Throws <ArgumentException>(() => dir.ResolveReference(String.Empty))
            .WithParamName("referenceName");
        }
        public void ResolveReferenceSingleIndirection(string name, string actualFile)
        {
            // Arrange
            InMemoryFileSystem    fs   = new InMemoryFileSystem();
            GitReferenceDirectory refs = new GitReferenceDirectory(fs);

            fs.WriteTestFile(actualFile, "abcdefghij");

            // Act/Assert
            Assert.Equal("abcdefghij", refs.ResolveReference(name));
        }
        public void ResolveReferenceWithHash()
        {
            // Arrange
            InMemoryFileSystem    fs   = new InMemoryFileSystem();
            GitReferenceDirectory refs = new GitReferenceDirectory(fs);

            // Assume
            Assert.False(fs.Exists("abcdefghij"));

            // Act/Assert
            Assert.Equal("abcdefghij", refs.ResolveReference("abcdefghij"));
        }
        public void ResolveReferenceDoubleIndirection(string name, string actualFile)
        {
            // Arrange
            InMemoryFileSystem    fs   = new InMemoryFileSystem();
            GitReferenceDirectory refs = new GitReferenceDirectory(fs);

            fs.WriteTestFile(actualFile, "ref: refs/remotes/origin/master");
            fs.WriteTestFile(@"refs\remotes\origin\master", "abcdefghij");

            // Act/Assert
            Assert.Equal("abcdefghij", refs.ResolveReference(name));
        }