From 782dde9c3f4e8f7c0cbcdc227e4fb23f9dda0c7b Mon Sep 17 00:00:00 2001 From: Haroon Date: Thu, 7 Nov 2013 09:27:43 +0000 Subject: [PATCH] test for create team --- Octokit.Tests/Clients/TeamsClientTests.cs | 28 +++++++++++++++++++++++ Octokit/Clients/TeamsClient.cs | 7 +++++- Octokit/Models/Request/NewTeam.cs | 7 ++++++ 3 files changed, 41 insertions(+), 1 deletion(-) diff --git a/Octokit.Tests/Clients/TeamsClientTests.cs b/Octokit.Tests/Clients/TeamsClientTests.cs index 7824d72f..dd351fb7 100644 --- a/Octokit.Tests/Clients/TeamsClientTests.cs +++ b/Octokit.Tests/Clients/TeamsClientTests.cs @@ -42,5 +42,33 @@ namespace Octokit.Tests.Clients AssertEx.Throws(async () => await teams.GetAllTeams(null)); } } + + public class TheCreateTeamMethod + { + [Fact] + public void RequestsTheCorrectUrl() + { + var connection = Substitute.For(); + var client = new TeamsClient(connection); + var team = new NewTeam("Octokittens"); + + client.CreateTeam("orgName", team); + + connection.Received().Post(Arg.Is(u => u.ToString() == "orgs/orgName/teams"), team); + } + + [Fact] + public async Task EnsuresNonNullArguments() + { + var connection = Substitute.For(); + var client = new TeamsClient(connection); + + AssertEx.Throws(async () => await + client.CreateTeam("", new NewTeam("superstars"))); + AssertEx.Throws(async () => await + client.CreateTeam("name", null)); + } + } + } } diff --git a/Octokit/Clients/TeamsClient.cs b/Octokit/Clients/TeamsClient.cs index 8a1f6965..1887ca23 100644 --- a/Octokit/Clients/TeamsClient.cs +++ b/Octokit/Clients/TeamsClient.cs @@ -61,7 +61,12 @@ namespace Octokit /// Updated public Task UpdateTeam(string org, int id, UpdateTeam team) { - throw new System.NotImplementedException(); + Ensure.ArgumentNotNullOrEmptyString(org, "org"); + Ensure.ArgumentNotNull(team, "team"); + + var endpoint = "orgs/{0}/teams/{1}".FormatUri(org,id); + + return ApiConnection.Put(endpoint, team); } } } diff --git a/Octokit/Models/Request/NewTeam.cs b/Octokit/Models/Request/NewTeam.cs index afaef248..e6087f63 100644 --- a/Octokit/Models/Request/NewTeam.cs +++ b/Octokit/Models/Request/NewTeam.cs @@ -1,3 +1,4 @@ +using Octokit.Internal; using System; using System.Collections.Generic; using System.Diagnostics; @@ -7,6 +8,11 @@ namespace Octokit { public class NewTeam { + public NewTeam(string name) + { + Name = name; + } + /// /// team name /// @@ -21,6 +27,7 @@ namespace Octokit /// array of repo_names this team has permissions to /// [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays")] + //[Parameter(Key="repo_names")] public string[] RepoNames { get; set; } } } \ No newline at end of file