提交 63bd8be8 编写于 作者: N nulltoken

Tests related to invalid repository now pass.

上级 1fd2af87
......@@ -10,21 +10,17 @@ public class InstanciatingARepository
const string PathToRepository = "../../Resources/testrepo.git";
[Test]
[Ignore("https://github.com/libgit2/libgit2/issues/issue/28")]
public void ShouldThrowIfPassedANonValidGitDirectory()
{
var notAValidRepo = Path.GetTempPath();
var exception = Assert.Throws<Exception>(() => new Repository(notAValidRepo));
Assert.Fail("To be finalized.");
Assert.Throws<NotAValidRepositoryException>(() => new Repository(notAValidRepo));
}
[Test]
[Ignore("https://github.com/libgit2/libgit2/issues/issue/28")]
public void ShouldThrowIfPassedANonExistingFolder()
{
var notAValidRepo = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, Guid.NewGuid().ToString());
var exception = Assert.Throws<Exception>(() => new Repository(notAValidRepo));
Assert.Fail("To be finalized.");
Assert.Throws<NotAValidRepositoryException>(() => new Repository(notAValidRepo));
}
[Test]
......
using System;
namespace libgit2sharp
{
public class NotAValidRepositoryException : Exception
{
}
}
\ No newline at end of file
......@@ -62,14 +62,23 @@ private void OpenRepository(Func<OperationResult> opener)
{
OperationResult result = opener();
if (result != OperationResult.GIT_SUCCESS)
if (result == OperationResult.GIT_SUCCESS)
{
_repositoryPtr = IntPtr.Zero;
throw new Exception(Enum.GetName(typeof(OperationResult), result));
_resolver = new ObjectResolver(_repositoryPtr, this);
_details = BuildRepositoryDetails(_repositoryPtr);
return;
}
_resolver = new ObjectResolver(_repositoryPtr, this);
_details = BuildRepositoryDetails(_repositoryPtr);
_repositoryPtr = IntPtr.Zero;
switch (result)
{
case OperationResult.GIT_ENOTAREPO:
throw new NotAValidRepositoryException();
default:
throw new Exception(Enum.GetName(typeof(OperationResult), result));
}
}
public Header ReadHeader(string objectId)
......
......@@ -46,6 +46,7 @@
<Compile Include="GitDate.cs" />
<Compile Include="IObjectHeaderReader.cs" />
<Compile Include="IResolver.cs" />
<Compile Include="NotAValidRepositoryException.cs" />
<Compile Include="ObjectId.cs" />
<Compile Include="ObjectResolver.cs" />
<Compile Include="Signature.cs" />
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册