public async Task ReturnsAdminPermissionForOwnerWithRepositoryId()
        {
            var github   = Helper.GetAuthenticatedClient();
            var repoName = Helper.MakeNameWithTimestamp("public-repo");

            using (var context = await github.CreateRepositoryContext(new NewRepository(repoName)))
            {
                var fixture = new ObservableRepoCollaboratorsClient(github);

                var permission = await fixture.ReviewPermission(context.RepositoryId, context.RepositoryOwner);

                Assert.Equal(PermissionLevel.Admin, permission.Permission);
            }
        }
        public async Task ReturnsWritePermissionForCollaborator()
        {
            var github   = Helper.GetAuthenticatedClient();
            var repoName = Helper.MakeNameWithTimestamp("public-repo");

            using (var context = await github.CreateRepositoryContext(new NewRepository(repoName)))
            {
                var fixture = new ObservableRepoCollaboratorsClient(github);

                // add a collaborator
                await fixture.Add(context.RepositoryOwner, context.RepositoryName, "alfhenrik-test-2");

                var permission = await fixture.ReviewPermission(context.RepositoryOwner, context.RepositoryName, "alfhenrik-test-2");

                Assert.Equal(PermissionLevel.Write, permission.Permission);
            }
        }
        public async Task ReturnsNonePermissionForPrivateRepositoryWithRepositoryId()
        {
            var github      = Helper.GetAuthenticatedClient();
            var userDetails = await github.User.Current();

            if (userDetails.Plan.PrivateRepos == 0)
            {
                throw new Exception("Test cannot complete, account is on free plan");
            }

            var repoName = Helper.MakeNameWithTimestamp("private-repo");

            using (var context = await github.CreateRepositoryContext(new NewRepository(repoName)
            {
                Private = true
            }))
            {
                var fixture = new ObservableRepoCollaboratorsClient(github);

                var permission = await fixture.ReviewPermission(context.RepositoryId, "alfhenrik-test-2");

                Assert.Equal(PermissionLevel.None, permission.Permission);
            }
        }