Files
octokit.net/Octokit.Tests.Integration/Clients/EventsClientTests.cs
Tom Longhurst cd1835326b Fix xUnit Warnings (#2906)
* Fix xUnit Warnings

* Fix

* Fix formatting in AsyncPaginationExtensionGenerator.cs

---------

Co-authored-by: Keegan Campbell <me@kfcampbell.com>
2024-04-15 13:19:26 -07:00

373 lines
13 KiB
C#

using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Xunit;
namespace Octokit.Tests.Integration.Clients
{
public class EventsClientTests
{
public class TheGetUserPerformedMethod
{
[IntegrationTest]
public async Task ReturnsACollection()
{
var github = Helper.GetAuthenticatedClient();
var events = await github.Activity.Events.GetAllUserPerformed("shiftkey");
Assert.NotEmpty(events);
}
}
public class TheGetAllForRepositoryMethod
{
[IntegrationTest]
public async Task CanListEvents()
{
var github = Helper.GetAuthenticatedClient();
var events = await github.Activity.Events.GetAllForRepository("octokit", "octokit.net");
Assert.NotEmpty(events);
}
[IntegrationTest]
public async Task CanListEventsWithRepositoryId()
{
var github = Helper.GetAuthenticatedClient();
var events = await github.Activity.Events.GetAllForRepository(7528679);
Assert.NotEmpty(events);
}
[IntegrationTest]
public async Task ReturnsCorrectCountOfEventsWithoutStart()
{
var github = Helper.GetAuthenticatedClient();
var options = new ApiOptions
{
PageSize = 3,
PageCount = 1
};
var eventInfos = await github.Activity.Events.GetAllForRepository("octokit", "octokit.net", options);
Assert.Equal(3, eventInfos.Count);
}
[IntegrationTest]
public async Task ReturnsCorrectCountOfEventsWithoutStartWitRepositoryId()
{
var github = Helper.GetAuthenticatedClient();
var options = new ApiOptions
{
PageSize = 3,
PageCount = 1
};
var eventInfos = await github.Activity.Events.GetAllForRepository(7528679, options);
Assert.Equal(3, eventInfos.Count);
}
[IntegrationTest]
public async Task ReturnsCorrectCountOfEventsWithStart()
{
var github = Helper.GetAuthenticatedClient();
var options = new ApiOptions
{
PageSize = 2,
PageCount = 1,
StartPage = 2
};
var eventInfos = await github.Activity.Events.GetAllForRepository("octokit", "octokit.net", options);
Assert.Equal(2, eventInfos.Count);
}
[IntegrationTest]
public async Task ReturnsCorrectCountOfEventsWithStartWithRepositoryId()
{
var github = Helper.GetAuthenticatedClient();
var options = new ApiOptions
{
PageSize = 2,
PageCount = 1,
StartPage = 2
};
var eventInfos = await github.Activity.Events.GetAllForRepository(7528679, options);
Assert.Equal(2, eventInfos.Count);
}
[IntegrationTest]
public async Task ReturnsDistinctEventsBasedOnStartPage()
{
var github = Helper.GetAuthenticatedClient();
var startOptions = new ApiOptions
{
PageSize = 1,
PageCount = 1
};
var firstPage = await github.Activity.Events.GetAllForRepository("octokit", "octokit.net", startOptions);
var skipStartOptions = new ApiOptions
{
PageSize = 1,
PageCount = 1,
StartPage = 2
};
var secondPage = await github.Activity.Events.GetAllForRepository("octokit", "octokit.net", skipStartOptions);
Assert.NotEqual(firstPage[0].Id, secondPage[0].Id);
}
[IntegrationTest]
public async Task ReturnsDistinctEventsBasedOnStartPageWithRepositoryId()
{
var github = Helper.GetAuthenticatedClient();
var startOptions = new ApiOptions
{
PageSize = 1,
PageCount = 1
};
var firstPage = await github.Activity.Events.GetAllForRepository(7528679, startOptions);
var skipStartOptions = new ApiOptions
{
PageSize = 1,
PageCount = 1,
StartPage = 2
};
var secondPage = await github.Activity.Events.GetAllForRepository(7528679, skipStartOptions);
Assert.NotEqual(firstPage[0].Id, secondPage[0].Id);
}
}
public class TheGetAllIssuesForRepositoryMethod
{
[IntegrationTest]
public async Task CanListIssues()
{
var github = Helper.GetAuthenticatedClient();
var issues = await github.Activity.Events.GetAllIssuesForRepository("octokit", "octokit.net");
Assert.NotEmpty(issues);
}
[IntegrationTest]
public async Task CanListIssuesWithRepositoryId()
{
var github = Helper.GetAuthenticatedClient();
var issues = await github.Activity.Events.GetAllIssuesForRepository(7528679);
Assert.NotEmpty(issues);
}
[IntegrationTest]
public async Task ReturnsCorrectCountOfEventsWithoutStart()
{
var github = Helper.GetAuthenticatedClient();
var options = new ApiOptions
{
PageSize = 3,
PageCount = 1
};
var eventInfos = await github.Activity.Events.GetAllIssuesForRepository("octokit", "octokit.net", options);
Assert.Equal(3, eventInfos.Count);
}
[IntegrationTest]
public async Task ReturnsCorrectCountOfEventsWithoutStartWitRepositoryId()
{
var github = Helper.GetAuthenticatedClient();
var options = new ApiOptions
{
PageSize = 3,
PageCount = 1
};
var eventInfos = await github.Activity.Events.GetAllIssuesForRepository(7528679, options);
Assert.Equal(3, eventInfos.Count);
}
[IntegrationTest]
public async Task ReturnsCorrectCountOfEventsWithStart()
{
var github = Helper.GetAuthenticatedClient();
var options = new ApiOptions
{
PageSize = 2,
PageCount = 1,
StartPage = 2
};
var eventInfos = await github.Activity.Events.GetAllIssuesForRepository("octokit", "octokit.net", options);
Assert.Equal(2, eventInfos.Count);
}
[IntegrationTest]
public async Task ReturnsCorrectCountOfEventsWithStartWithRepositoryId()
{
var github = Helper.GetAuthenticatedClient();
var options = new ApiOptions
{
PageSize = 2,
PageCount = 1,
StartPage = 2
};
var eventInfos = await github.Activity.Events.GetAllIssuesForRepository(7528679, options);
Assert.Equal(2, eventInfos.Count);
}
[IntegrationTest]
public async Task ReturnsDistinctEventsBasedOnStartPage()
{
var github = Helper.GetAuthenticatedClient();
var startOptions = new ApiOptions
{
PageSize = 1,
PageCount = 1
};
var firstPage = await github.Activity.Events.GetAllIssuesForRepository("octokit", "octokit.net", startOptions);
var skipStartOptions = new ApiOptions
{
PageSize = 1,
PageCount = 1,
StartPage = 2
};
var secondPage = await github.Activity.Events.GetAllIssuesForRepository("octokit", "octokit.net", skipStartOptions);
Assert.NotEqual(firstPage[0].Id, secondPage[0].Id);
}
[IntegrationTest]
public async Task ReturnsDistinctEventsBasedOnStartPageWithRepositoryId()
{
var github = Helper.GetAuthenticatedClient();
var startOptions = new ApiOptions
{
PageSize = 1,
PageCount = 1
};
var firstPage = await github.Activity.Events.GetAllIssuesForRepository(7528679, startOptions);
var skipStartOptions = new ApiOptions
{
PageSize = 1,
PageCount = 1,
StartPage = 2
};
var secondPage = await github.Activity.Events.GetAllIssuesForRepository(7528679, skipStartOptions);
Assert.NotEqual(firstPage[0].Id, secondPage[0].Id);
}
}
public class EventPayloads
{
readonly IEnumerable<Activity> _events;
public EventPayloads()
{
var github = Helper.GetAuthenticatedClient();
_events = github.Activity.Events.GetAllUserPerformed("shiftkey").Result;
}
[IntegrationTest]
public void AllEventsHavePayloads()
{
Assert.True(_events.All(e => e.Payload != null));
}
[IntegrationTest(Skip = "no longer able to access this event")]
public void IssueCommentPayloadEventDeserializesCorrectly()
{
var commentEvent = _events.FirstOrDefault(e => e.Id == "2628548686");
Assert.NotNull(commentEvent);
Assert.Equal("IssueCommentEvent", commentEvent.Type);
var commentPayload = commentEvent.Payload as IssueCommentPayload;
Assert.NotNull(commentPayload);
Assert.Equal("created", commentPayload.Action);
Assert.NotNull(commentPayload.Comment);
Assert.Equal("@joshvera just going to give this a once-over to ensure it matches up with our other conventions before merging", commentPayload.Comment.Body);
Assert.NotNull(commentPayload.Issue);
Assert.Equal(742, commentPayload.Issue.Number);
}
[IntegrationTest(Skip = "no longer able to access this event")]
public void PushEventPayloadDeserializesCorrectly()
{
var pushEvent = _events.FirstOrDefault(e => e.Id == "2628858765");
Assert.NotNull(pushEvent);
Assert.Equal("PushEvent", pushEvent.Type);
var pushPayload = pushEvent.Payload as PushEventPayload;
Assert.NotNull(pushPayload);
Assert.NotNull(pushPayload.Commits);
Assert.Single(pushPayload.Commits);
Assert.Equal("3cdcba0ccbea0e6d13ae94249fbb294d71648321", pushPayload.Commits.FirstOrDefault().Sha);
Assert.Equal("3cdcba0ccbea0e6d13ae94249fbb294d71648321", pushPayload.Head);
Assert.Equal("refs/heads/release-candidate", pushPayload.Ref);
Assert.Equal(1, pushPayload.Size);
}
[IntegrationTest(Skip = "no longer able to access this event")]
public void PREventPayloadDeserializesCorrectly()
{
var prEvent = _events.FirstOrDefault(e => e.Id == "2628718313");
Assert.NotNull(prEvent);
Assert.Equal("PullRequestEvent", prEvent.Type);
var prPayload = prEvent.Payload as PullRequestEventPayload;
Assert.NotNull(prPayload);
Assert.Equal("opened", prPayload.Action);
Assert.Equal(743, prPayload.Number);
Assert.NotNull(prPayload.PullRequest);
Assert.Equal(743, prPayload.PullRequest.Number);
}
[IntegrationTest(Skip = "no longer able to access this event")]
public void PRReviewCommentEventPayloadDeserializesCorrectly()
{
var prrcEvent = _events.First(e => e.Id == "2623246246");
Assert.NotNull(prrcEvent);
Assert.Equal("PullRequestReviewCommentEvent", prrcEvent.Type);
var prrcPayload = prrcEvent.Payload as PullRequestCommentPayload;
Assert.NotNull(prrcPayload);
Assert.Equal("created", prrcPayload.Action);
Assert.NotNull(prrcPayload.Comment);
Assert.Equal("Suuuuuuuuure :P", prrcPayload.Comment.Body);
Assert.NotNull(prrcPayload.PullRequest);
Assert.Equal(737, prrcPayload.PullRequest.Number);
}
}
}
}