public async Task RequestsTheCorrectUrl()
            {
                var github  = Substitute.For <IGitHubClient>();
                var client  = new ObservableTeamsClient(github);
                var request = new UpdateTeamMembership(TeamRole.Maintainer);

                client.AddOrEditMembership(1, "user", request);

                github.Organization.Team.Received().AddOrEditMembership(1, "user", request);
            }
            public async Task EnsuresNonNullOrEmptyArguments()
            {
                var github  = Substitute.For <IGitHubClient>();
                var client  = new ObservableTeamsClient(github);
                var request = new UpdateTeamMembership(TeamRole.Maintainer);

                Assert.Throws <ArgumentNullException>(() => client.AddOrEditMembership(1, null, request));
                Assert.Throws <ArgumentNullException>(() => client.AddOrEditMembership(1, "user", null));

                Assert.Throws <ArgumentException>(() => client.AddOrEditMembership(1, "", request));
            }
Exemple #3
0
            public async Task EnsuresNonNullOrEmptyArguments()
            {
                var connection = Substitute.For <IApiConnection>();
                var client     = new TeamsClient(connection);
                var request    = new UpdateTeamMembership(TeamRole.Maintainer);

                await Assert.ThrowsAsync <ArgumentNullException>(() => client.AddOrEditMembership(1, null, request));

                await Assert.ThrowsAsync <ArgumentNullException>(() => client.AddOrEditMembership(1, "user", null));

                await Assert.ThrowsAsync <ArgumentException>(() => client.AddOrEditMembership(1, "", request));
            }
Exemple #4
0
            public async Task RequestsTheCorrectUrl()
            {
                var connection = Substitute.For <IApiConnection>();
                var client     = new TeamsClient(connection);
                var request    = new UpdateTeamMembership(TeamRole.Maintainer);

                await client.AddOrEditMembership(1, "user", request);

                connection.Received().Put <TeamMembershipDetails>(
                    Arg.Is <Uri>(u => u.ToString() == "teams/1/memberships/user"),
                    Arg.Is <UpdateTeamMembership>(x => x.Role == TeamRole.Maintainer));
            }
        /// <summary>
        /// Adds a <see cref="User"/> to a <see cref="Team"/>.
        /// </summary>
        /// <remarks>
        /// See the <a href="https://developer.github.com/v3/orgs/teams/#add-or-update-team-membership">API documentation</a> for more information.
        /// </remarks>
        /// <param name="id">The team identifier.</param>
        /// <param name="login">The user to add to the team.</param>
        /// <param name="request">Additional parameters for the request</param>
        public IObservable <TeamMembershipDetails> AddOrEditMembership(int id, string login, UpdateTeamMembership request)
        {
            Ensure.ArgumentNotNullOrEmptyString(login, nameof(login));
            Ensure.ArgumentNotNull(request, nameof(request));

            return(_client.AddOrEditMembership(id, login, request).ToObservable());
        }