From 3490f8678923d850c416b396aee88c1dec69fe66 Mon Sep 17 00:00:00 2001 From: David Martin Date: Mon, 2 Mar 2015 18:19:59 +0000 Subject: [PATCH 1/7] added payload to activity, implemented commit_comment type, and updated json serializer strategy (with test) --- Octokit.Tests/Clients/EventsClientTests.cs | 35 +++++++++++++++++++ Octokit.Tests/OctoKit.Tests-NetCore45.csproj | 4 +++ Octokit.Tests/Octokit.Tests-Portable.csproj | 4 +++ Octokit/Http/SimpleJsonSerializer.cs | 28 +++++++++++++++ Octokit/Models/Response/Activity.cs | 6 ++++ .../ActivityPayloads/ActivityPayload.cs | 7 ++++ .../ActivityPayloads/CommitCommentPayload.cs | 9 +++++ Octokit/Octokit-Mono.csproj | 2 ++ Octokit/Octokit-Portable.csproj | 4 ++- Octokit/Octokit-netcore45.csproj | 2 ++ Octokit/Octokit.csproj | 2 ++ 11 files changed, 102 insertions(+), 1 deletion(-) create mode 100644 Octokit/Models/Response/ActivityPayloads/ActivityPayload.cs create mode 100644 Octokit/Models/Response/ActivityPayloads/CommitCommentPayload.cs diff --git a/Octokit.Tests/Clients/EventsClientTests.cs b/Octokit.Tests/Clients/EventsClientTests.cs index cbe84e0c..11b190a0 100644 --- a/Octokit.Tests/Clients/EventsClientTests.cs +++ b/Octokit.Tests/Clients/EventsClientTests.cs @@ -1,6 +1,12 @@ using System; +using System.Collections.Generic; +using System.Linq; +using System.Net; +using System.Threading; using System.Threading.Tasks; using NSubstitute; +using Octokit.Internal; +using Octokit.Models.Response.ActivityPayloads; using Octokit.Tests.Helpers; using Xunit; @@ -219,5 +225,34 @@ namespace Octokit.Tests.Clients await AssertEx.Throws(async () => await client.GetForAnOrganization("fake", "")); } } + + private Dictionary _activityTypes = new Dictionary + { + {"commit_comment", typeof(CommitCommentPayload)}, + {"create", typeof(ActivityPayload)} + }; + + [Fact] + public async void DeserializesPayloadCorrectly() + { + _activityTypes.ToList().ForEach(async kvp => + { + var jsonObj = new JsonObject {{ "type", kvp.Key }, { "repo", new object() }, {"payload", new + { + repository = new Repository() + }} }; + var responseString = String.Format("[{0}]", jsonObj); + + var httpClientMock = Substitute.For(); + httpClientMock.Send(Arg.Is((IRequest r) => r.Endpoint.ToString().Contains("events")), Arg.Any()).Returns(Task.FromResult( + new Response(HttpStatusCode.Accepted, responseString, new Dictionary(), "application/json") as IResponse)); + + var client = new EventsClient(new ApiConnection(new Connection(new ProductHeaderValue("mock"), httpClientMock))); + var activities = await client.GetAll(); + Assert.Equal(1, activities.Count); + Assert.Equal(kvp.Value, activities.FirstOrDefault().Payload.GetType()); + Assert.NotNull(activities.FirstOrDefault().Payload.Repository); + }); + } } } diff --git a/Octokit.Tests/OctoKit.Tests-NetCore45.csproj b/Octokit.Tests/OctoKit.Tests-NetCore45.csproj index 304e2083..2a3b65c9 100644 --- a/Octokit.Tests/OctoKit.Tests-NetCore45.csproj +++ b/Octokit.Tests/OctoKit.Tests-NetCore45.csproj @@ -167,6 +167,10 @@ {c8bc13b6-3fa3-4716-827d-e7706f976fe1} Octokit-NetCore45 + + {08DD4305-7787-4823-A53F-4D0F725A07F3} + Octokit + diff --git a/Octokit.Tests/Octokit.Tests-Portable.csproj b/Octokit.Tests/Octokit.Tests-Portable.csproj index 9042716f..3299ae38 100644 --- a/Octokit.Tests/Octokit.Tests-Portable.csproj +++ b/Octokit.Tests/Octokit.Tests-Portable.csproj @@ -170,6 +170,10 @@ {ddb20481-e17d-4e0a-b2c0-ffff78d4ed71} Octokit-Portable + + {08DD4305-7787-4823-A53F-4D0F725A07F3} + Octokit + diff --git a/Octokit/Http/SimpleJsonSerializer.cs b/Octokit/Http/SimpleJsonSerializer.cs index e0eb8524..f67ea194 100644 --- a/Octokit/Http/SimpleJsonSerializer.cs +++ b/Octokit/Http/SimpleJsonSerializer.cs @@ -3,6 +3,8 @@ using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using System.Linq; using System.Reflection; +using System.Text.RegularExpressions; +using Octokit.Models.Response.ActivityPayloads; using Octokit.Reflection; namespace Octokit.Internal @@ -81,10 +83,13 @@ namespace Octokit.Internal return p.ToString().ToLowerInvariant(); } + private string _type = null; + // Overridden to handle enums. public override object DeserializeObject(object value, Type type) { var stringValue = value as string; + var jsonValue = value as JsonObject; if (stringValue != null) { stringValue = stringValue.Replace("-", ""); @@ -116,6 +121,19 @@ namespace Octokit.Internal } } } + else if (jsonValue != null) + { + if (type == typeof(Activity)) + { + _type = jsonValue["type"].ToString(); + } + } + + if (type == typeof(ActivityPayload)) + { + var payloadType = GetPayloadType(_type); + return base.DeserializeObject(value, payloadType); + } return base.DeserializeObject(value, type); } @@ -137,6 +155,16 @@ namespace Octokit.Internal p => p.JsonFieldName, p => new KeyValuePair(p.Type, p.SetDelegate)); } + + private static Type GetPayloadType(string activityType) + { + switch (activityType) + { + case "commit_comment": + return typeof(CommitCommentPayload); + } + return typeof(ActivityPayload); + } } } } diff --git a/Octokit/Models/Response/Activity.cs b/Octokit/Models/Response/Activity.cs index b0887f63..2378d80d 100644 --- a/Octokit/Models/Response/Activity.cs +++ b/Octokit/Models/Response/Activity.cs @@ -2,6 +2,7 @@ using System.Diagnostics; using System.Diagnostics.CodeAnalysis; using System.Globalization; +using Octokit.Models.Response.ActivityPayloads; namespace Octokit { @@ -60,6 +61,11 @@ namespace Octokit /// public string Id { get; protected set; } + /// + /// The payload associated with the activity event. + /// + public ActivityPayload Payload { get; set; } + internal string DebuggerDisplay { get diff --git a/Octokit/Models/Response/ActivityPayloads/ActivityPayload.cs b/Octokit/Models/Response/ActivityPayloads/ActivityPayload.cs new file mode 100644 index 00000000..d5f08795 --- /dev/null +++ b/Octokit/Models/Response/ActivityPayloads/ActivityPayload.cs @@ -0,0 +1,7 @@ +namespace Octokit.Models.Response.ActivityPayloads +{ + public class ActivityPayload + { + public Repository Repository { get; set; } + } +} diff --git a/Octokit/Models/Response/ActivityPayloads/CommitCommentPayload.cs b/Octokit/Models/Response/ActivityPayloads/CommitCommentPayload.cs new file mode 100644 index 00000000..94f5cc76 --- /dev/null +++ b/Octokit/Models/Response/ActivityPayloads/CommitCommentPayload.cs @@ -0,0 +1,9 @@ +namespace Octokit.Models.Response.ActivityPayloads +{ + public class CommitCommentPayload : ActivityPayload + { + public CommitComment Comment { get; set; } + + public User Sender { get; set; } + } +} diff --git a/Octokit/Octokit-Mono.csproj b/Octokit/Octokit-Mono.csproj index 61556f1e..14f906b7 100644 --- a/Octokit/Octokit-Mono.csproj +++ b/Octokit/Octokit-Mono.csproj @@ -120,6 +120,8 @@ + + diff --git a/Octokit/Octokit-Portable.csproj b/Octokit/Octokit-Portable.csproj index 6162c449..6675ecb3 100644 --- a/Octokit/Octokit-Portable.csproj +++ b/Octokit/Octokit-Portable.csproj @@ -210,6 +210,8 @@ + + @@ -396,4 +398,4 @@ --> - + \ No newline at end of file diff --git a/Octokit/Octokit-netcore45.csproj b/Octokit/Octokit-netcore45.csproj index bbe7548e..946ff067 100644 --- a/Octokit/Octokit-netcore45.csproj +++ b/Octokit/Octokit-netcore45.csproj @@ -215,6 +215,8 @@ + + diff --git a/Octokit/Octokit.csproj b/Octokit/Octokit.csproj index f1a90016..f4e73008 100644 --- a/Octokit/Octokit.csproj +++ b/Octokit/Octokit.csproj @@ -92,6 +92,8 @@ + + From ecc3aeec6242a6bfbd9125acf30d7c0d2530fb6a Mon Sep 17 00:00:00 2001 From: David Martin Date: Mon, 2 Mar 2015 22:15:13 +0000 Subject: [PATCH 2/7] added more payload types and tests --- Octokit.Tests/Clients/EventsClientTests.cs | 288 +++++++++++++++++- Octokit/Http/SimpleJsonSerializer.cs | 14 + .../ActivityPayloads/ActivityPayload.cs | 1 + .../ActivityPayloads/CommitCommentPayload.cs | 2 - .../ActivityPayloads/ForkEventPayload.cs | 14 + .../ActivityPayloads/IssueCommentPayload.cs | 11 + .../ActivityPayloads/IssueEventPayload.cs | 16 + .../PullRequestCommentPayload.cs | 15 + .../PullRequestEventPayload.cs | 16 + .../ActivityPayloads/PushEventPayload.cs | 16 + .../ActivityPayloads/StarredEventPayload.cs | 7 + Octokit/Octokit-Mono.csproj | 7 + Octokit/Octokit-Portable.csproj | 7 + Octokit/Octokit-netcore45.csproj | 7 + Octokit/Octokit.csproj | 7 + 15 files changed, 413 insertions(+), 15 deletions(-) create mode 100644 Octokit/Models/Response/ActivityPayloads/ForkEventPayload.cs create mode 100644 Octokit/Models/Response/ActivityPayloads/IssueCommentPayload.cs create mode 100644 Octokit/Models/Response/ActivityPayloads/IssueEventPayload.cs create mode 100644 Octokit/Models/Response/ActivityPayloads/PullRequestCommentPayload.cs create mode 100644 Octokit/Models/Response/ActivityPayloads/PullRequestEventPayload.cs create mode 100644 Octokit/Models/Response/ActivityPayloads/PushEventPayload.cs create mode 100644 Octokit/Models/Response/ActivityPayloads/StarredEventPayload.cs diff --git a/Octokit.Tests/Clients/EventsClientTests.cs b/Octokit.Tests/Clients/EventsClientTests.cs index 11b190a0..e62a292d 100644 --- a/Octokit.Tests/Clients/EventsClientTests.cs +++ b/Octokit.Tests/Clients/EventsClientTests.cs @@ -226,33 +226,295 @@ namespace Octokit.Tests.Clients } } - private Dictionary _activityTypes = new Dictionary + private readonly Dictionary _activityTypes = new Dictionary { {"commit_comment", typeof(CommitCommentPayload)}, - {"create", typeof(ActivityPayload)} + {"fork", typeof(ForkEventPayload)}, + {"issue_comment", typeof(IssueCommentPayload)}, + {"issues", typeof(IssueEventPayload)}, + {"pull_request", typeof(PullRequestEventPayload)}, + {"pull_request_review_comment", typeof(PullRequestCommentPayload)}, + {"push", typeof(PushEventPayload)}, + {"watch", typeof(StarredEventPayload)}, + {"unknown", typeof(ActivityPayload)} }; [Fact] - public async void DeserializesPayloadCorrectly() + public async void DeserializesPayloadToCorrectType() { _activityTypes.ToList().ForEach(async kvp => { - var jsonObj = new JsonObject {{ "type", kvp.Key }, { "repo", new object() }, {"payload", new + var jsonObj = new JsonObject {{ "type", kvp.Key }, {"payload", new { - repository = new Repository() - }} }; - var responseString = String.Format("[{0}]", jsonObj); + repository = new + { + id = 1337 + }, + sender = new + { + id = 1337 + } + }}}; - var httpClientMock = Substitute.For(); - httpClientMock.Send(Arg.Is((IRequest r) => r.Endpoint.ToString().Contains("events")), Arg.Any()).Returns(Task.FromResult( - new Response(HttpStatusCode.Accepted, responseString, new Dictionary(), "application/json") as IResponse)); + var client = GetTestingEventsClient(jsonObj); - var client = new EventsClient(new ApiConnection(new Connection(new ProductHeaderValue("mock"), httpClientMock))); var activities = await client.GetAll(); Assert.Equal(1, activities.Count); - Assert.Equal(kvp.Value, activities.FirstOrDefault().Payload.GetType()); - Assert.NotNull(activities.FirstOrDefault().Payload.Repository); + var activity = activities.FirstOrDefault(); + Assert.Equal(kvp.Value, activity.Payload.GetType()); + Assert.NotNull(activity.Payload.Repository); + Assert.NotNull(activity.Payload.Sender); + Assert.Equal(1337, activity.Payload.Repository.Id); + Assert.Equal(1337, activity.Payload.Sender.Id); }); } + + [Fact] + public async void DeserializesCommitCommentEventCorrectly() + { + var jsonObj = new JsonObject + { + { "type", "commit_comment" }, + { + "payload", new + { + comment = new + { + id = 1337 + } + } + } + }; + + var client = GetTestingEventsClient(jsonObj); + var activities = await client.GetAll(); + Assert.Equal(1, activities.Count); + + var payload = activities.FirstOrDefault().Payload as CommitCommentPayload; + Assert.Equal(1337, payload.Comment.Id); + } + + [Fact] + public async void DeserializesForkEventCorrectly() + { + var jsonObj = new JsonObject + { + { "type", "fork" }, + { + "payload", new + { + forkee = new + { + id = 1337 + } + } + } + }; + + var client = GetTestingEventsClient(jsonObj); + var activities = await client.GetAll(); + Assert.Equal(1, activities.Count); + + var payload = activities.FirstOrDefault().Payload as ForkEventPayload; + Assert.Equal(1337, payload.Forkee.Id); + } + + [Fact] + public async void DeserializesIssueCommentEventCorrectly() + { + var jsonObj = new JsonObject + { + { "type", "issue_comment" }, + { + "payload", new + { + action = "created", + issue = new + { + number = 1337 + }, + comment = new + { + id = 1337 + } + } + } + }; + + var client = GetTestingEventsClient(jsonObj); + var activities = await client.GetAll(); + Assert.Equal(1, activities.Count); + + var payload = activities.FirstOrDefault().Payload as IssueCommentPayload; + Assert.Equal("created", payload.Action); + Assert.Equal(1337, payload.Comment.Id); + Assert.Equal(1337, payload.Issue.Number); + } + + [Fact] + public async void DeserializesIssueEventCorrectly() + { + var jsonObj = new JsonObject + { + { "type", "issues" }, + { + "payload", new + { + action = "assigned", + issue = new + { + number = 1337 + }, + assignee = new + { + id = 1337 + }, + label = new + { + name = "bug" + } + } + } + }; + + var client = GetTestingEventsClient(jsonObj); + var activities = await client.GetAll(); + Assert.Equal(1, activities.Count); + + var payload = activities.FirstOrDefault().Payload as IssueEventPayload; + Assert.Equal("assigned", payload.Action); + Assert.Equal(1337, payload.Issue.Number); + Assert.Equal(1337, payload.Assignee.Id); + Assert.Equal("bug", payload.Label.Name); + } + + [Fact] + public async void DeserializesPullRequestEventCorrectly() + { + var jsonObj = new JsonObject + { + { "type", "pull_request" }, + { + "payload", new + { + action = "assigned", + number = 1337, + pull_request = new + { + title = "PR Title" + } + } + } + }; + + var client = GetTestingEventsClient(jsonObj); + var activities = await client.GetAll(); + Assert.Equal(1, activities.Count); + + var payload = activities.FirstOrDefault().Payload as PullRequestEventPayload; + Assert.Equal("assigned", payload.Action); + Assert.Equal(1337, payload.Number); + Assert.Equal("PR Title", payload.PullRequest.Title); + } + + [Fact] + public async void DeserializesPullRequestCommentEventCorrectly() + { + var jsonObj = new JsonObject + { + { "type", "pull_request_review_comment" }, + { + "payload", new + { + action = "assigned", + pull_request = new + { + title = "PR Title" + }, + comment = new + { + id = 1337 + } + } + } + }; + + var client = GetTestingEventsClient(jsonObj); + var activities = await client.GetAll(); + Assert.Equal(1, activities.Count); + + var payload = activities.FirstOrDefault().Payload as PullRequestCommentPayload; + Assert.Equal("assigned", payload.Action); + Assert.Equal("PR Title", payload.PullRequest.Title); + Assert.Equal(1337, payload.Comment.Id); + } + + [Fact] + public async void DeserializesPushEventCorrectly() + { + var jsonObj = new JsonObject + { + { "type", "push" }, + { + "payload", new + { + head = "head", + @ref = "ref", + size = 1337, + commits = new [] + { + new + { + message = "message" + } + } + } + } + }; + + var client = GetTestingEventsClient(jsonObj); + var activities = await client.GetAll(); + Assert.Equal(1, activities.Count); + + var payload = activities.FirstOrDefault().Payload as PushEventPayload; + Assert.Equal("head", payload.Head); + Assert.Equal("ref", payload.Ref); + Assert.Equal(1337, payload.Size); + Assert.NotNull(payload.Commits); + Assert.Equal(1, payload.Commits.Count); + Assert.Equal("message", payload.Commits.FirstOrDefault().Message); + } + + [Fact] + public async void DeserializesStarredEventCorrectly() + { + var jsonObj = new JsonObject + { + { "type", "watch" }, + { + "payload", new + { + action = "started" + } + } + }; + + var client = GetTestingEventsClient(jsonObj); + var activities = await client.GetAll(); + Assert.Equal(1, activities.Count); + + var payload = activities.FirstOrDefault().Payload as StarredEventPayload; + Assert.Equal("started", payload.Action); + } + + private EventsClient GetTestingEventsClient(JsonObject response) + { + var responseString = response.ToString(); + var httpClientMock = Substitute.For(); + httpClientMock.Send(Arg.Is((IRequest r) => r.Endpoint.ToString().Contains("events")), Arg.Any()).Returns(Task.FromResult( + new Response(HttpStatusCode.Accepted, responseString, new Dictionary(), "application/json") as IResponse)); + + return new EventsClient(new ApiConnection(new Connection(new ProductHeaderValue("mock"), httpClientMock))); + } } } diff --git a/Octokit/Http/SimpleJsonSerializer.cs b/Octokit/Http/SimpleJsonSerializer.cs index f67ea194..3c9cfb5d 100644 --- a/Octokit/Http/SimpleJsonSerializer.cs +++ b/Octokit/Http/SimpleJsonSerializer.cs @@ -162,6 +162,20 @@ namespace Octokit.Internal { case "commit_comment": return typeof(CommitCommentPayload); + case "fork": + return typeof(ForkEventPayload); + case "issue_comment": + return typeof(IssueCommentPayload); + case "issues": + return typeof(IssueEventPayload); + case "pull_request": + return typeof(PullRequestEventPayload); + case "pull_request_review_comment": + return typeof(PullRequestCommentPayload); + case "push": + return typeof(PushEventPayload); + case "watch": + return typeof(StarredEventPayload); } return typeof(ActivityPayload); } diff --git a/Octokit/Models/Response/ActivityPayloads/ActivityPayload.cs b/Octokit/Models/Response/ActivityPayloads/ActivityPayload.cs index d5f08795..cacc89cf 100644 --- a/Octokit/Models/Response/ActivityPayloads/ActivityPayload.cs +++ b/Octokit/Models/Response/ActivityPayloads/ActivityPayload.cs @@ -3,5 +3,6 @@ public class ActivityPayload { public Repository Repository { get; set; } + public User Sender { get; set; } } } diff --git a/Octokit/Models/Response/ActivityPayloads/CommitCommentPayload.cs b/Octokit/Models/Response/ActivityPayloads/CommitCommentPayload.cs index 94f5cc76..346a08b3 100644 --- a/Octokit/Models/Response/ActivityPayloads/CommitCommentPayload.cs +++ b/Octokit/Models/Response/ActivityPayloads/CommitCommentPayload.cs @@ -3,7 +3,5 @@ public class CommitCommentPayload : ActivityPayload { public CommitComment Comment { get; set; } - - public User Sender { get; set; } } } diff --git a/Octokit/Models/Response/ActivityPayloads/ForkEventPayload.cs b/Octokit/Models/Response/ActivityPayloads/ForkEventPayload.cs new file mode 100644 index 00000000..1efd373d --- /dev/null +++ b/Octokit/Models/Response/ActivityPayloads/ForkEventPayload.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Octokit.Models.Response.ActivityPayloads +{ + public class ForkEventPayload : ActivityPayload + { + [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Forkee")] + public Repository Forkee { get; set; } + } +} diff --git a/Octokit/Models/Response/ActivityPayloads/IssueCommentPayload.cs b/Octokit/Models/Response/ActivityPayloads/IssueCommentPayload.cs new file mode 100644 index 00000000..4b82b579 --- /dev/null +++ b/Octokit/Models/Response/ActivityPayloads/IssueCommentPayload.cs @@ -0,0 +1,11 @@ +namespace Octokit.Models.Response.ActivityPayloads +{ + public class IssueCommentPayload : ActivityPayload + { + // should always be "created" according to github api docs + public string Action { get; set; } + public Issue Issue { get; set; } + public IssueComment Comment { get; set; } + + } +} diff --git a/Octokit/Models/Response/ActivityPayloads/IssueEventPayload.cs b/Octokit/Models/Response/ActivityPayloads/IssueEventPayload.cs new file mode 100644 index 00000000..dfca8389 --- /dev/null +++ b/Octokit/Models/Response/ActivityPayloads/IssueEventPayload.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Octokit.Models.Response.ActivityPayloads +{ + public class IssueEventPayload : ActivityPayload + { + public string Action { get; set; } + public Issue Issue { get; set; } + public User Assignee { get; set; } + public Label Label { get; set; } + } +} diff --git a/Octokit/Models/Response/ActivityPayloads/PullRequestCommentPayload.cs b/Octokit/Models/Response/ActivityPayloads/PullRequestCommentPayload.cs new file mode 100644 index 00000000..ac5fac17 --- /dev/null +++ b/Octokit/Models/Response/ActivityPayloads/PullRequestCommentPayload.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Octokit.Models.Response.ActivityPayloads +{ + public class PullRequestCommentPayload : ActivityPayload + { + public string Action { get; set; } + public PullRequest PullRequest { get; set; } + public PullRequestReviewComment Comment { get; set; } + } +} diff --git a/Octokit/Models/Response/ActivityPayloads/PullRequestEventPayload.cs b/Octokit/Models/Response/ActivityPayloads/PullRequestEventPayload.cs new file mode 100644 index 00000000..8e2a3a8c --- /dev/null +++ b/Octokit/Models/Response/ActivityPayloads/PullRequestEventPayload.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Octokit.Models.Response.ActivityPayloads +{ + public class PullRequestEventPayload : ActivityPayload + { + public string Action { get; set; } + public int Number { get; set; } + + public PullRequest PullRequest { get; set; } + } +} diff --git a/Octokit/Models/Response/ActivityPayloads/PushEventPayload.cs b/Octokit/Models/Response/ActivityPayloads/PushEventPayload.cs new file mode 100644 index 00000000..8c39bacd --- /dev/null +++ b/Octokit/Models/Response/ActivityPayloads/PushEventPayload.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Octokit.Models.Response.ActivityPayloads +{ + public class PushEventPayload : ActivityPayload + { + public string Head { get; set; } + public string Ref { get; set; } + public int Size { get; set; } + public IReadOnlyList Commits { get; set; } + } +} diff --git a/Octokit/Models/Response/ActivityPayloads/StarredEventPayload.cs b/Octokit/Models/Response/ActivityPayloads/StarredEventPayload.cs new file mode 100644 index 00000000..80fe4860 --- /dev/null +++ b/Octokit/Models/Response/ActivityPayloads/StarredEventPayload.cs @@ -0,0 +1,7 @@ +namespace Octokit.Models.Response.ActivityPayloads +{ + public class StarredEventPayload : ActivityPayload + { + public string Action { get; set; } + } +} diff --git a/Octokit/Octokit-Mono.csproj b/Octokit/Octokit-Mono.csproj index 14f906b7..0449ac82 100644 --- a/Octokit/Octokit-Mono.csproj +++ b/Octokit/Octokit-Mono.csproj @@ -122,6 +122,13 @@ + + + + + + + diff --git a/Octokit/Octokit-Portable.csproj b/Octokit/Octokit-Portable.csproj index 6675ecb3..76f51507 100644 --- a/Octokit/Octokit-Portable.csproj +++ b/Octokit/Octokit-Portable.csproj @@ -212,6 +212,13 @@ + + + + + + + diff --git a/Octokit/Octokit-netcore45.csproj b/Octokit/Octokit-netcore45.csproj index 946ff067..3db4afb0 100644 --- a/Octokit/Octokit-netcore45.csproj +++ b/Octokit/Octokit-netcore45.csproj @@ -217,6 +217,13 @@ + + + + + + + diff --git a/Octokit/Octokit.csproj b/Octokit/Octokit.csproj index f4e73008..5805669b 100644 --- a/Octokit/Octokit.csproj +++ b/Octokit/Octokit.csproj @@ -94,6 +94,13 @@ + + + + + + + From bea3a5dbbdcc2b6e4c3b3da8229730d5bb46bd46 Mon Sep 17 00:00:00 2001 From: David Martin Date: Mon, 2 Mar 2015 22:51:15 +0000 Subject: [PATCH 3/7] fixed monoandroid and monotouch projects, got convention tests working --- Octokit.Tests/Clients/EventsClientTests.cs | 18 +++++++++--------- Octokit/Models/Response/Activity.cs | 2 +- .../ActivityPayloads/ActivityPayload.cs | 14 +++++++++++--- .../ActivityPayloads/CommitCommentPayload.cs | 7 +++++-- .../ActivityPayloads/ForkEventPayload.cs | 12 +++++------- .../ActivityPayloads/IssueCommentPayload.cs | 11 +++++++---- .../ActivityPayloads/IssueEventPayload.cs | 15 ++++++--------- .../PullRequestCommentPayload.cs | 13 +++++-------- .../PullRequestEventPayload.cs | 13 +++++-------- .../ActivityPayloads/PushEventPayload.cs | 16 +++++++--------- .../ActivityPayloads/StarredEventPayload.cs | 7 +++++-- Octokit/Octokit-MonoAndroid.csproj | 9 +++++++++ Octokit/Octokit-Monotouch.csproj | 9 +++++++++ 13 files changed, 84 insertions(+), 62 deletions(-) diff --git a/Octokit.Tests/Clients/EventsClientTests.cs b/Octokit.Tests/Clients/EventsClientTests.cs index e62a292d..dbbf6436 100644 --- a/Octokit.Tests/Clients/EventsClientTests.cs +++ b/Octokit.Tests/Clients/EventsClientTests.cs @@ -240,7 +240,7 @@ namespace Octokit.Tests.Clients }; [Fact] - public async void DeserializesPayloadToCorrectType() + public async Task DeserializesPayloadToCorrectType() { _activityTypes.ToList().ForEach(async kvp => { @@ -270,7 +270,7 @@ namespace Octokit.Tests.Clients } [Fact] - public async void DeserializesCommitCommentEventCorrectly() + public async Task DeserializesCommitCommentEventCorrectly() { var jsonObj = new JsonObject { @@ -295,7 +295,7 @@ namespace Octokit.Tests.Clients } [Fact] - public async void DeserializesForkEventCorrectly() + public async Task DeserializesForkEventCorrectly() { var jsonObj = new JsonObject { @@ -320,7 +320,7 @@ namespace Octokit.Tests.Clients } [Fact] - public async void DeserializesIssueCommentEventCorrectly() + public async Task DeserializesIssueCommentEventCorrectly() { var jsonObj = new JsonObject { @@ -352,7 +352,7 @@ namespace Octokit.Tests.Clients } [Fact] - public async void DeserializesIssueEventCorrectly() + public async Task DeserializesIssueEventCorrectly() { var jsonObj = new JsonObject { @@ -389,7 +389,7 @@ namespace Octokit.Tests.Clients } [Fact] - public async void DeserializesPullRequestEventCorrectly() + public async Task DeserializesPullRequestEventCorrectly() { var jsonObj = new JsonObject { @@ -418,7 +418,7 @@ namespace Octokit.Tests.Clients } [Fact] - public async void DeserializesPullRequestCommentEventCorrectly() + public async Task DeserializesPullRequestCommentEventCorrectly() { var jsonObj = new JsonObject { @@ -450,7 +450,7 @@ namespace Octokit.Tests.Clients } [Fact] - public async void DeserializesPushEventCorrectly() + public async Task DeserializesPushEventCorrectly() { var jsonObj = new JsonObject { @@ -486,7 +486,7 @@ namespace Octokit.Tests.Clients } [Fact] - public async void DeserializesStarredEventCorrectly() + public async Task DeserializesStarredEventCorrectly() { var jsonObj = new JsonObject { diff --git a/Octokit/Models/Response/Activity.cs b/Octokit/Models/Response/Activity.cs index 2378d80d..5f0da164 100644 --- a/Octokit/Models/Response/Activity.cs +++ b/Octokit/Models/Response/Activity.cs @@ -64,7 +64,7 @@ namespace Octokit /// /// The payload associated with the activity event. /// - public ActivityPayload Payload { get; set; } + public ActivityPayload Payload { get; protected set; } internal string DebuggerDisplay { diff --git a/Octokit/Models/Response/ActivityPayloads/ActivityPayload.cs b/Octokit/Models/Response/ActivityPayloads/ActivityPayload.cs index cacc89cf..ad5aa1fa 100644 --- a/Octokit/Models/Response/ActivityPayloads/ActivityPayload.cs +++ b/Octokit/Models/Response/ActivityPayloads/ActivityPayload.cs @@ -1,8 +1,16 @@ -namespace Octokit.Models.Response.ActivityPayloads +using System.Diagnostics; + +namespace Octokit.Models.Response.ActivityPayloads { + [DebuggerDisplay("{DebuggerDisplay,nq}")] public class ActivityPayload { - public Repository Repository { get; set; } - public User Sender { get; set; } + public Repository Repository { get; protected set; } + public User Sender { get; protected set; } + + internal string DebuggerDisplay + { + get { return this.Repository.FullName; } + } } } diff --git a/Octokit/Models/Response/ActivityPayloads/CommitCommentPayload.cs b/Octokit/Models/Response/ActivityPayloads/CommitCommentPayload.cs index 346a08b3..3e4988ff 100644 --- a/Octokit/Models/Response/ActivityPayloads/CommitCommentPayload.cs +++ b/Octokit/Models/Response/ActivityPayloads/CommitCommentPayload.cs @@ -1,7 +1,10 @@ -namespace Octokit.Models.Response.ActivityPayloads +using System.Diagnostics; + +namespace Octokit.Models.Response.ActivityPayloads { + [DebuggerDisplay("{DebuggerDisplay,nq}")] public class CommitCommentPayload : ActivityPayload { - public CommitComment Comment { get; set; } + public CommitComment Comment { get; protected set; } } } diff --git a/Octokit/Models/Response/ActivityPayloads/ForkEventPayload.cs b/Octokit/Models/Response/ActivityPayloads/ForkEventPayload.cs index 1efd373d..07a19a13 100644 --- a/Octokit/Models/Response/ActivityPayloads/ForkEventPayload.cs +++ b/Octokit/Models/Response/ActivityPayloads/ForkEventPayload.cs @@ -1,14 +1,12 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; +using System.Diagnostics; +using System.Diagnostics.CodeAnalysis; namespace Octokit.Models.Response.ActivityPayloads { + [DebuggerDisplay("{DebuggerDisplay,nq}")] public class ForkEventPayload : ActivityPayload { - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Forkee")] - public Repository Forkee { get; set; } + [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Forkee")] + public Repository Forkee { get; protected set; } } } diff --git a/Octokit/Models/Response/ActivityPayloads/IssueCommentPayload.cs b/Octokit/Models/Response/ActivityPayloads/IssueCommentPayload.cs index 4b82b579..6ebdc538 100644 --- a/Octokit/Models/Response/ActivityPayloads/IssueCommentPayload.cs +++ b/Octokit/Models/Response/ActivityPayloads/IssueCommentPayload.cs @@ -1,11 +1,14 @@ -namespace Octokit.Models.Response.ActivityPayloads +using System.Diagnostics; + +namespace Octokit.Models.Response.ActivityPayloads { + [DebuggerDisplay("{DebuggerDisplay,nq}")] public class IssueCommentPayload : ActivityPayload { // should always be "created" according to github api docs - public string Action { get; set; } - public Issue Issue { get; set; } - public IssueComment Comment { get; set; } + public string Action { get; protected set; } + public Issue Issue { get; protected set; } + public IssueComment Comment { get; protected set; } } } diff --git a/Octokit/Models/Response/ActivityPayloads/IssueEventPayload.cs b/Octokit/Models/Response/ActivityPayloads/IssueEventPayload.cs index dfca8389..e49dff89 100644 --- a/Octokit/Models/Response/ActivityPayloads/IssueEventPayload.cs +++ b/Octokit/Models/Response/ActivityPayloads/IssueEventPayload.cs @@ -1,16 +1,13 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; +using System.Diagnostics; namespace Octokit.Models.Response.ActivityPayloads { + [DebuggerDisplay("{DebuggerDisplay,nq}")] public class IssueEventPayload : ActivityPayload { - public string Action { get; set; } - public Issue Issue { get; set; } - public User Assignee { get; set; } - public Label Label { get; set; } + public string Action { get; protected set; } + public Issue Issue { get; protected set; } + public User Assignee { get; protected set; } + public Label Label { get; protected set; } } } diff --git a/Octokit/Models/Response/ActivityPayloads/PullRequestCommentPayload.cs b/Octokit/Models/Response/ActivityPayloads/PullRequestCommentPayload.cs index ac5fac17..23603b7f 100644 --- a/Octokit/Models/Response/ActivityPayloads/PullRequestCommentPayload.cs +++ b/Octokit/Models/Response/ActivityPayloads/PullRequestCommentPayload.cs @@ -1,15 +1,12 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; +using System.Diagnostics; namespace Octokit.Models.Response.ActivityPayloads { + [DebuggerDisplay("{DebuggerDisplay,nq}")] public class PullRequestCommentPayload : ActivityPayload { - public string Action { get; set; } - public PullRequest PullRequest { get; set; } - public PullRequestReviewComment Comment { get; set; } + public string Action { get; protected set; } + public PullRequest PullRequest { get; protected set; } + public PullRequestReviewComment Comment { get; protected set; } } } diff --git a/Octokit/Models/Response/ActivityPayloads/PullRequestEventPayload.cs b/Octokit/Models/Response/ActivityPayloads/PullRequestEventPayload.cs index 8e2a3a8c..cc900dd1 100644 --- a/Octokit/Models/Response/ActivityPayloads/PullRequestEventPayload.cs +++ b/Octokit/Models/Response/ActivityPayloads/PullRequestEventPayload.cs @@ -1,16 +1,13 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; +using System.Diagnostics; namespace Octokit.Models.Response.ActivityPayloads { + [DebuggerDisplay("{DebuggerDisplay,nq}")] public class PullRequestEventPayload : ActivityPayload { - public string Action { get; set; } - public int Number { get; set; } + public string Action { get; protected set; } + public int Number { get; protected set; } - public PullRequest PullRequest { get; set; } + public PullRequest PullRequest { get; protected set; } } } diff --git a/Octokit/Models/Response/ActivityPayloads/PushEventPayload.cs b/Octokit/Models/Response/ActivityPayloads/PushEventPayload.cs index 8c39bacd..5a5ccc49 100644 --- a/Octokit/Models/Response/ActivityPayloads/PushEventPayload.cs +++ b/Octokit/Models/Response/ActivityPayloads/PushEventPayload.cs @@ -1,16 +1,14 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; +using System.Collections.Generic; +using System.Diagnostics; namespace Octokit.Models.Response.ActivityPayloads { + [DebuggerDisplay("{DebuggerDisplay,nq}")] public class PushEventPayload : ActivityPayload { - public string Head { get; set; } - public string Ref { get; set; } - public int Size { get; set; } - public IReadOnlyList Commits { get; set; } + public string Head { get; protected set; } + public string Ref { get; protected set; } + public int Size { get; protected set; } + public IReadOnlyList Commits { get; protected set; } } } diff --git a/Octokit/Models/Response/ActivityPayloads/StarredEventPayload.cs b/Octokit/Models/Response/ActivityPayloads/StarredEventPayload.cs index 80fe4860..50aa884c 100644 --- a/Octokit/Models/Response/ActivityPayloads/StarredEventPayload.cs +++ b/Octokit/Models/Response/ActivityPayloads/StarredEventPayload.cs @@ -1,7 +1,10 @@ -namespace Octokit.Models.Response.ActivityPayloads +using System.Diagnostics; + +namespace Octokit.Models.Response.ActivityPayloads { + [DebuggerDisplay("{DebuggerDisplay,nq}")] public class StarredEventPayload : ActivityPayload { - public string Action { get; set; } + public string Action { get; protected set; } } } diff --git a/Octokit/Octokit-MonoAndroid.csproj b/Octokit/Octokit-MonoAndroid.csproj index aa58c2a9..46ce84bf 100644 --- a/Octokit/Octokit-MonoAndroid.csproj +++ b/Octokit/Octokit-MonoAndroid.csproj @@ -102,6 +102,15 @@ + + + + + + + + + diff --git a/Octokit/Octokit-Monotouch.csproj b/Octokit/Octokit-Monotouch.csproj index a7bd1580..7ee228d3 100644 --- a/Octokit/Octokit-Monotouch.csproj +++ b/Octokit/Octokit-Monotouch.csproj @@ -99,6 +99,15 @@ + + + + + + + + + From 2ee42b553fce5ac4ca85143edd39d020bebaeb2e Mon Sep 17 00:00:00 2001 From: David Martin Date: Wed, 4 Mar 2015 23:29:21 +0000 Subject: [PATCH 4/7] removed unused references, fixed namespaces, added 'forkee' to customdictionary.xml --- CustomDictionary.xml | 1 + Octokit.Tests/Clients/EventsClientTests.cs | 2 +- Octokit.Tests/OctoKit.Tests-NetCore45.csproj | 4 ---- Octokit.Tests/Octokit.Tests-Portable.csproj | 4 ---- Octokit/Http/SimpleJsonSerializer.cs | 3 +-- Octokit/Models/Response/Activity.cs | 2 +- Octokit/Models/Response/ActivityPayloads/ActivityPayload.cs | 2 +- .../Models/Response/ActivityPayloads/CommitCommentPayload.cs | 2 +- Octokit/Models/Response/ActivityPayloads/ForkEventPayload.cs | 4 +--- .../Models/Response/ActivityPayloads/IssueCommentPayload.cs | 2 +- Octokit/Models/Response/ActivityPayloads/IssueEventPayload.cs | 2 +- .../Response/ActivityPayloads/PullRequestCommentPayload.cs | 2 +- .../Response/ActivityPayloads/PullRequestEventPayload.cs | 2 +- Octokit/Models/Response/ActivityPayloads/PushEventPayload.cs | 2 +- .../Models/Response/ActivityPayloads/StarredEventPayload.cs | 2 +- 15 files changed, 13 insertions(+), 23 deletions(-) diff --git a/CustomDictionary.xml b/CustomDictionary.xml index a9c1edd1..8cd1d26f 100644 --- a/CustomDictionary.xml +++ b/CustomDictionary.xml @@ -21,6 +21,7 @@ Mergeable Symlink Submodule + Forkee diff --git a/Octokit.Tests/Clients/EventsClientTests.cs b/Octokit.Tests/Clients/EventsClientTests.cs index dbbf6436..7dc221ab 100644 --- a/Octokit.Tests/Clients/EventsClientTests.cs +++ b/Octokit.Tests/Clients/EventsClientTests.cs @@ -6,7 +6,7 @@ using System.Threading; using System.Threading.Tasks; using NSubstitute; using Octokit.Internal; -using Octokit.Models.Response.ActivityPayloads; +using Octokit; using Octokit.Tests.Helpers; using Xunit; diff --git a/Octokit.Tests/OctoKit.Tests-NetCore45.csproj b/Octokit.Tests/OctoKit.Tests-NetCore45.csproj index 2a3b65c9..304e2083 100644 --- a/Octokit.Tests/OctoKit.Tests-NetCore45.csproj +++ b/Octokit.Tests/OctoKit.Tests-NetCore45.csproj @@ -167,10 +167,6 @@ {c8bc13b6-3fa3-4716-827d-e7706f976fe1} Octokit-NetCore45 - - {08DD4305-7787-4823-A53F-4D0F725A07F3} - Octokit - diff --git a/Octokit.Tests/Octokit.Tests-Portable.csproj b/Octokit.Tests/Octokit.Tests-Portable.csproj index 3299ae38..9042716f 100644 --- a/Octokit.Tests/Octokit.Tests-Portable.csproj +++ b/Octokit.Tests/Octokit.Tests-Portable.csproj @@ -170,10 +170,6 @@ {ddb20481-e17d-4e0a-b2c0-ffff78d4ed71} Octokit-Portable - - {08DD4305-7787-4823-A53F-4D0F725A07F3} - Octokit - diff --git a/Octokit/Http/SimpleJsonSerializer.cs b/Octokit/Http/SimpleJsonSerializer.cs index 3c9cfb5d..7faf5278 100644 --- a/Octokit/Http/SimpleJsonSerializer.cs +++ b/Octokit/Http/SimpleJsonSerializer.cs @@ -3,8 +3,7 @@ using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using System.Linq; using System.Reflection; -using System.Text.RegularExpressions; -using Octokit.Models.Response.ActivityPayloads; +using Octokit; using Octokit.Reflection; namespace Octokit.Internal diff --git a/Octokit/Models/Response/Activity.cs b/Octokit/Models/Response/Activity.cs index 5f0da164..7c3146e6 100644 --- a/Octokit/Models/Response/Activity.cs +++ b/Octokit/Models/Response/Activity.cs @@ -2,7 +2,7 @@ using System.Diagnostics; using System.Diagnostics.CodeAnalysis; using System.Globalization; -using Octokit.Models.Response.ActivityPayloads; +using Octokit; namespace Octokit { diff --git a/Octokit/Models/Response/ActivityPayloads/ActivityPayload.cs b/Octokit/Models/Response/ActivityPayloads/ActivityPayload.cs index ad5aa1fa..9e2cdfd1 100644 --- a/Octokit/Models/Response/ActivityPayloads/ActivityPayload.cs +++ b/Octokit/Models/Response/ActivityPayloads/ActivityPayload.cs @@ -1,6 +1,6 @@ using System.Diagnostics; -namespace Octokit.Models.Response.ActivityPayloads +namespace Octokit { [DebuggerDisplay("{DebuggerDisplay,nq}")] public class ActivityPayload diff --git a/Octokit/Models/Response/ActivityPayloads/CommitCommentPayload.cs b/Octokit/Models/Response/ActivityPayloads/CommitCommentPayload.cs index 3e4988ff..9e35c994 100644 --- a/Octokit/Models/Response/ActivityPayloads/CommitCommentPayload.cs +++ b/Octokit/Models/Response/ActivityPayloads/CommitCommentPayload.cs @@ -1,6 +1,6 @@ using System.Diagnostics; -namespace Octokit.Models.Response.ActivityPayloads +namespace Octokit { [DebuggerDisplay("{DebuggerDisplay,nq}")] public class CommitCommentPayload : ActivityPayload diff --git a/Octokit/Models/Response/ActivityPayloads/ForkEventPayload.cs b/Octokit/Models/Response/ActivityPayloads/ForkEventPayload.cs index 07a19a13..f48d01c0 100644 --- a/Octokit/Models/Response/ActivityPayloads/ForkEventPayload.cs +++ b/Octokit/Models/Response/ActivityPayloads/ForkEventPayload.cs @@ -1,12 +1,10 @@ using System.Diagnostics; -using System.Diagnostics.CodeAnalysis; -namespace Octokit.Models.Response.ActivityPayloads +namespace Octokit { [DebuggerDisplay("{DebuggerDisplay,nq}")] public class ForkEventPayload : ActivityPayload { - [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Forkee")] public Repository Forkee { get; protected set; } } } diff --git a/Octokit/Models/Response/ActivityPayloads/IssueCommentPayload.cs b/Octokit/Models/Response/ActivityPayloads/IssueCommentPayload.cs index 6ebdc538..581add5c 100644 --- a/Octokit/Models/Response/ActivityPayloads/IssueCommentPayload.cs +++ b/Octokit/Models/Response/ActivityPayloads/IssueCommentPayload.cs @@ -1,6 +1,6 @@ using System.Diagnostics; -namespace Octokit.Models.Response.ActivityPayloads +namespace Octokit { [DebuggerDisplay("{DebuggerDisplay,nq}")] public class IssueCommentPayload : ActivityPayload diff --git a/Octokit/Models/Response/ActivityPayloads/IssueEventPayload.cs b/Octokit/Models/Response/ActivityPayloads/IssueEventPayload.cs index e49dff89..04f18177 100644 --- a/Octokit/Models/Response/ActivityPayloads/IssueEventPayload.cs +++ b/Octokit/Models/Response/ActivityPayloads/IssueEventPayload.cs @@ -1,6 +1,6 @@ using System.Diagnostics; -namespace Octokit.Models.Response.ActivityPayloads +namespace Octokit { [DebuggerDisplay("{DebuggerDisplay,nq}")] public class IssueEventPayload : ActivityPayload diff --git a/Octokit/Models/Response/ActivityPayloads/PullRequestCommentPayload.cs b/Octokit/Models/Response/ActivityPayloads/PullRequestCommentPayload.cs index 23603b7f..026935e0 100644 --- a/Octokit/Models/Response/ActivityPayloads/PullRequestCommentPayload.cs +++ b/Octokit/Models/Response/ActivityPayloads/PullRequestCommentPayload.cs @@ -1,6 +1,6 @@ using System.Diagnostics; -namespace Octokit.Models.Response.ActivityPayloads +namespace Octokit { [DebuggerDisplay("{DebuggerDisplay,nq}")] public class PullRequestCommentPayload : ActivityPayload diff --git a/Octokit/Models/Response/ActivityPayloads/PullRequestEventPayload.cs b/Octokit/Models/Response/ActivityPayloads/PullRequestEventPayload.cs index cc900dd1..ebaf48de 100644 --- a/Octokit/Models/Response/ActivityPayloads/PullRequestEventPayload.cs +++ b/Octokit/Models/Response/ActivityPayloads/PullRequestEventPayload.cs @@ -1,6 +1,6 @@ using System.Diagnostics; -namespace Octokit.Models.Response.ActivityPayloads +namespace Octokit { [DebuggerDisplay("{DebuggerDisplay,nq}")] public class PullRequestEventPayload : ActivityPayload diff --git a/Octokit/Models/Response/ActivityPayloads/PushEventPayload.cs b/Octokit/Models/Response/ActivityPayloads/PushEventPayload.cs index 5a5ccc49..ad6cdf73 100644 --- a/Octokit/Models/Response/ActivityPayloads/PushEventPayload.cs +++ b/Octokit/Models/Response/ActivityPayloads/PushEventPayload.cs @@ -1,7 +1,7 @@ using System.Collections.Generic; using System.Diagnostics; -namespace Octokit.Models.Response.ActivityPayloads +namespace Octokit { [DebuggerDisplay("{DebuggerDisplay,nq}")] public class PushEventPayload : ActivityPayload diff --git a/Octokit/Models/Response/ActivityPayloads/StarredEventPayload.cs b/Octokit/Models/Response/ActivityPayloads/StarredEventPayload.cs index 50aa884c..7bc43a2a 100644 --- a/Octokit/Models/Response/ActivityPayloads/StarredEventPayload.cs +++ b/Octokit/Models/Response/ActivityPayloads/StarredEventPayload.cs @@ -1,6 +1,6 @@ using System.Diagnostics; -namespace Octokit.Models.Response.ActivityPayloads +namespace Octokit { [DebuggerDisplay("{DebuggerDisplay,nq}")] public class StarredEventPayload : ActivityPayload From c55c70f2847b22bb7fbd6b84bff47011b6125fbb Mon Sep 17 00:00:00 2001 From: David Martin Date: Sat, 7 Mar 2015 18:00:22 +0000 Subject: [PATCH 5/7] updated event type names --- Octokit.Tests/Clients/EventsClientTests.cs | 32 +++++++++++----------- Octokit/Http/SimpleJsonSerializer.cs | 16 +++++------ 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/Octokit.Tests/Clients/EventsClientTests.cs b/Octokit.Tests/Clients/EventsClientTests.cs index 7dc221ab..c94c375f 100644 --- a/Octokit.Tests/Clients/EventsClientTests.cs +++ b/Octokit.Tests/Clients/EventsClientTests.cs @@ -228,14 +228,14 @@ namespace Octokit.Tests.Clients private readonly Dictionary _activityTypes = new Dictionary { - {"commit_comment", typeof(CommitCommentPayload)}, - {"fork", typeof(ForkEventPayload)}, - {"issue_comment", typeof(IssueCommentPayload)}, - {"issues", typeof(IssueEventPayload)}, - {"pull_request", typeof(PullRequestEventPayload)}, - {"pull_request_review_comment", typeof(PullRequestCommentPayload)}, - {"push", typeof(PushEventPayload)}, - {"watch", typeof(StarredEventPayload)}, + {"CommitCommentEvent", typeof(CommitCommentPayload)}, + {"ForkEvent", typeof(ForkEventPayload)}, + {"IssueCommentEvent", typeof(IssueCommentPayload)}, + {"IssuesEvent", typeof(IssueEventPayload)}, + {"PullRequestEvent", typeof(PullRequestEventPayload)}, + {"PullRequestReviewCommentEvent", typeof(PullRequestCommentPayload)}, + {"PushEvent", typeof(PushEventPayload)}, + {"WatchEvent", typeof(StarredEventPayload)}, {"unknown", typeof(ActivityPayload)} }; @@ -274,7 +274,7 @@ namespace Octokit.Tests.Clients { var jsonObj = new JsonObject { - { "type", "commit_comment" }, + { "type", "CommitCommentEvent" }, { "payload", new { @@ -299,7 +299,7 @@ namespace Octokit.Tests.Clients { var jsonObj = new JsonObject { - { "type", "fork" }, + { "type", "ForkEvent" }, { "payload", new { @@ -324,7 +324,7 @@ namespace Octokit.Tests.Clients { var jsonObj = new JsonObject { - { "type", "issue_comment" }, + { "type", "IssueCommentEvent" }, { "payload", new { @@ -356,7 +356,7 @@ namespace Octokit.Tests.Clients { var jsonObj = new JsonObject { - { "type", "issues" }, + { "type", "IssuesEvent" }, { "payload", new { @@ -393,7 +393,7 @@ namespace Octokit.Tests.Clients { var jsonObj = new JsonObject { - { "type", "pull_request" }, + { "type", "PullRequestEvent" }, { "payload", new { @@ -422,7 +422,7 @@ namespace Octokit.Tests.Clients { var jsonObj = new JsonObject { - { "type", "pull_request_review_comment" }, + { "type", "PullRequestReviewCommentEvent" }, { "payload", new { @@ -454,7 +454,7 @@ namespace Octokit.Tests.Clients { var jsonObj = new JsonObject { - { "type", "push" }, + { "type", "PushEvent" }, { "payload", new { @@ -490,7 +490,7 @@ namespace Octokit.Tests.Clients { var jsonObj = new JsonObject { - { "type", "watch" }, + { "type", "WatchEvent" }, { "payload", new { diff --git a/Octokit/Http/SimpleJsonSerializer.cs b/Octokit/Http/SimpleJsonSerializer.cs index 7faf5278..bad16ccf 100644 --- a/Octokit/Http/SimpleJsonSerializer.cs +++ b/Octokit/Http/SimpleJsonSerializer.cs @@ -159,21 +159,21 @@ namespace Octokit.Internal { switch (activityType) { - case "commit_comment": + case "CommitCommentEvent": return typeof(CommitCommentPayload); - case "fork": + case "ForkEvent": return typeof(ForkEventPayload); - case "issue_comment": + case "IssueCommentEvent": return typeof(IssueCommentPayload); - case "issues": + case "IssuesEvent": return typeof(IssueEventPayload); - case "pull_request": + case "PullRequestEvent": return typeof(PullRequestEventPayload); - case "pull_request_review_comment": + case "PullRequestReviewCommentEvent": return typeof(PullRequestCommentPayload); - case "push": + case "PushEvent": return typeof(PushEventPayload); - case "watch": + case "WatchEvent": return typeof(StarredEventPayload); } return typeof(ActivityPayload); From ce5848838d8934418b82091c868ee23c117a3fa7 Mon Sep 17 00:00:00 2001 From: David Martin Date: Sun, 8 Mar 2015 00:33:22 +0000 Subject: [PATCH 6/7] added integration test for event payloads --- .../Clients/EventsClientTests.cs | 83 ++++++++++++++++++- 1 file changed, 81 insertions(+), 2 deletions(-) diff --git a/Octokit.Tests.Integration/Clients/EventsClientTests.cs b/Octokit.Tests.Integration/Clients/EventsClientTests.cs index e503da2f..7de94a1c 100644 --- a/Octokit.Tests.Integration/Clients/EventsClientTests.cs +++ b/Octokit.Tests.Integration/Clients/EventsClientTests.cs @@ -1,4 +1,7 @@ -using System.Threading.Tasks; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; using Xunit; namespace Octokit.Tests.Integration.Clients @@ -13,7 +16,83 @@ namespace Octokit.Tests.Integration.Clients var github = Helper.GetAuthenticatedClient(); var events = await github.Activity.Events.GetUserPerformed("shiftkey"); Assert.NotEmpty(events); - } + } + } + + public class EventPayloads + { + readonly IEnumerable _events; + public EventPayloads() + { + var github = Helper.GetAuthenticatedClient(); + _events = github.Activity.Events.GetUserPerformed("shiftkey").Result; + } + + [Fact] + public void AllEventsHavePayloads() + { + Assert.True(_events.All(e => e.Payload != null)); + } + + [Fact] + 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); + } + + [Fact] + 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.Equal(1, pushPayload.Commits.Count); + 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); + } + + [Fact] + 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); + } + + [Fact] + 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); + } } } } From d8f7147451430e3b58bdd6a1cf2527e807051ac7 Mon Sep 17 00:00:00 2001 From: David Martin Date: Mon, 9 Mar 2015 10:25:39 +0000 Subject: [PATCH 7/7] Changed [Fact] to [IntegrationTest] in events integration tests --- .../Clients/EventsClientTests.cs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Octokit.Tests.Integration/Clients/EventsClientTests.cs b/Octokit.Tests.Integration/Clients/EventsClientTests.cs index 7de94a1c..f1d57979 100644 --- a/Octokit.Tests.Integration/Clients/EventsClientTests.cs +++ b/Octokit.Tests.Integration/Clients/EventsClientTests.cs @@ -10,7 +10,7 @@ namespace Octokit.Tests.Integration.Clients { public class TheGetUserPerformedMethod { - [Fact] + [IntegrationTest] public async Task ReturnsACollection() { var github = Helper.GetAuthenticatedClient(); @@ -28,13 +28,13 @@ namespace Octokit.Tests.Integration.Clients _events = github.Activity.Events.GetUserPerformed("shiftkey").Result; } - [Fact] + [IntegrationTest] public void AllEventsHavePayloads() { Assert.True(_events.All(e => e.Payload != null)); } - [Fact] + [IntegrationTest] public void IssueCommentPayloadEventDeserializesCorrectly() { var commentEvent = _events.FirstOrDefault(e => e.Id == "2628548686"); @@ -49,7 +49,7 @@ namespace Octokit.Tests.Integration.Clients Assert.Equal(742, commentPayload.Issue.Number); } - [Fact] + [IntegrationTest] public void PushEventPayloadDeserializesCorrectly() { var pushEvent = _events.FirstOrDefault(e => e.Id == "2628858765"); @@ -65,7 +65,7 @@ namespace Octokit.Tests.Integration.Clients Assert.Equal(1, pushPayload.Size); } - [Fact] + [IntegrationTest] public void PREventPayloadDeserializesCorrectly() { var prEvent = _events.FirstOrDefault(e => e.Id == "2628718313"); @@ -79,7 +79,7 @@ namespace Octokit.Tests.Integration.Clients Assert.Equal(743, prPayload.PullRequest.Number); } - [Fact] + [IntegrationTest] public void PRReviewCommentEventPayloadDeserializesCorrectly() { var prrcEvent = _events.First(e => e.Id == "2623246246");