1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
using System.Collections.Generic;
using System.Linq;
using LibGit2Sharp.Core.Compat;
using LibGit2Sharp.Tests.TestHelpers;
using Xunit;
using Xunit.Extensions;
namespace LibGit2Sharp.Tests
{
public class NetworkFixture : BaseFixture
{
[Theory]
[InlineData("http://github.com/libgit2/TestGitRepository")]
[InlineData("https://github.com/libgit2/TestGitRepository")]
[InlineData("git://github.com/libgit2/TestGitRepository.git")]
public void CanListRemoteReferences(string url)
{
string remoteName = "testRemote";
var scd = BuildSelfCleaningDirectory();
using (var repo = Repository.Init(scd.RootedDirectoryPath))
{
Remote remote = repo.Network.Remotes.Add(remoteName, url);
IEnumerable<DirectReference> references = repo.Network.ListReferences(remote);
List<Tuple<string, string>> actualRefs = references.
Select(directRef => new Tuple<string, string>(directRef.CanonicalName, directRef.TargetIdentifier)).ToList();
Assert.Equal(ExpectedRemoteRefs.Count, actualRefs.Count);
for (int i = 0; i < ExpectedRemoteRefs.Count; i++)
{
Assert.Equal(ExpectedRemoteRefs[i].Item2, actualRefs[i].Item2);
Assert.Equal(ExpectedRemoteRefs[i].Item1, actualRefs[i].Item1);
}
}
}
[Fact]
public void CanListRemoteReferenceObjects()
{
string url = "http://github.com/libgit2/TestGitRepository";
string remoteName = "origin";
var scd = BuildSelfCleaningDirectory();
using (Repository repo = Repository.Clone(url, scd.RootedDirectoryPath))
{
Remote remote = repo.Network.Remotes[remoteName];
IEnumerable<DirectReference> references = repo.Network.ListReferences(remote);
List<Tuple<string, string>> actualRefs = new List<Tuple<string,string>>();
foreach(DirectReference reference in references)
{
Assert.NotNull(reference.CanonicalName);
Assert.NotNull(reference.Target);
actualRefs.Add(new Tuple<string, string>(reference.CanonicalName, reference.Target.Id.Sha));
}
Assert.Equal(ExpectedRemoteRefs.Count, actualRefs.Count);
for (int i = 0; i < ExpectedRemoteRefs.Count; i++)
{
Assert.Equal(ExpectedRemoteRefs[i].Item1, actualRefs[i].Item1);
Assert.Equal(ExpectedRemoteRefs[i].Item2, actualRefs[i].Item2);
}
}
}
/*
* git ls-remote http://github.com/libgit2/TestGitRepository
* 49322bb17d3acc9146f98c97d078513228bbf3c0 HEAD
* 0966a434eb1a025db6b71485ab63a3bfbea520b6 refs/heads/first-merge
* 49322bb17d3acc9146f98c97d078513228bbf3c0 refs/heads/master
* 42e4e7c5e507e113ebbb7801b16b52cf867b7ce1 refs/heads/no-parent
* d96c4e80345534eccee5ac7b07fc7603b56124cb refs/tags/annotated_tag
* c070ad8c08840c8116da865b2d65593a6bb9cd2a refs/tags/annotated_tag^{}
* 55a1a760df4b86a02094a904dfa511deb5655905 refs/tags/blob
* 8f50ba15d49353813cc6e20298002c0d17b0a9ee refs/tags/commit_tree
* 6e0c7bdb9b4ed93212491ee778ca1c65047cab4e refs/tags/nearly-dangling
*/
/// <summary>
/// Expected references on http://github.com/libgit2/TestGitRepository
/// </summary>
private static List<Tuple<string, string>> ExpectedRemoteRefs = new List<Tuple<string, string>>()
{
new Tuple<string, string>("HEAD", "49322bb17d3acc9146f98c97d078513228bbf3c0"),
new Tuple<string, string>("refs/heads/first-merge", "0966a434eb1a025db6b71485ab63a3bfbea520b6"),
new Tuple<string, string>("refs/heads/master", "49322bb17d3acc9146f98c97d078513228bbf3c0"),
new Tuple<string, string>("refs/heads/no-parent", "42e4e7c5e507e113ebbb7801b16b52cf867b7ce1"),
new Tuple<string, string>("refs/tags/annotated_tag", "d96c4e80345534eccee5ac7b07fc7603b56124cb"),
new Tuple<string, string>("refs/tags/annotated_tag^{}", "c070ad8c08840c8116da865b2d65593a6bb9cd2a"),
new Tuple<string, string>("refs/tags/blob", "55a1a760df4b86a02094a904dfa511deb5655905"),
new Tuple<string, string>("refs/tags/commit_tree", "8f50ba15d49353813cc6e20298002c0d17b0a9ee"),
new Tuple<string, string>("refs/tags/nearly-dangling", "6e0c7bdb9b4ed93212491ee778ca1c65047cab4e"),
};
}
}
|