public async Task EnsuresNonNullArguments()
            {
                var client = new ObservableOrganizationMembersClient(Substitute.For <IGitHubClient>());

                await Assert.ThrowsAsync <ArgumentNullException>(() => client.GetOrganizationMembership(null, "username").ToTask());

                await Assert.ThrowsAsync <ArgumentException>(() => client.GetOrganizationMembership("", "username").ToTask());

                await Assert.ThrowsAsync <ArgumentNullException>(() => client.GetOrganizationMembership("org", null).ToTask());

                await Assert.ThrowsAsync <ArgumentException>(() => client.GetOrganizationMembership("org", "").ToTask());
            }
            public async Task RemovesOrganizationMembership()
            {
                await _client.AddOrUpdateOrganizationMembership(Helper.Organization, "alfhenrik-test-2", new OrganizationMembershipUpdate());

                await _client.RemoveOrganizationMembership(Helper.Organization, "alfhenrik-test-2");

                await Assert.ThrowsAsync <NotFoundException>(() => _client.GetOrganizationMembership(Helper.Organization, "alfhenrik-test-2").ToTask());
            }
            public void RequestsTheCorrectUrl()
            {
                var gitHubClient = Substitute.For <IGitHubClient>();
                var client       = new ObservableOrganizationMembersClient(gitHubClient);

                client.GetOrganizationMembership("org", "username");

                gitHubClient.Organization.Member.Received().GetOrganizationMembership("org", "username");
            }
            public async Task ReturnsUsersMembershipOrganizationMembership()
            {
                using (var teamContext = await _gitHub.CreateTeamContext(Helper.Organization, new NewTeam(Helper.MakeNameWithTimestamp("team"))))
                {
                    teamContext.InviteMember("alfhenrik-test-2");

                    var organizationMemberhip = await _client.GetOrganizationMembership(Helper.Organization, "alfhenrik-test-2");

                    Assert.Equal(MembershipState.Pending, organizationMemberhip.State);
                    Assert.Equal(MembershipRole.Member, organizationMemberhip.Role);
                    await _client.RemoveOrganizationMembership(Helper.Organization, "alfhenrik-test-2");
                }
            }