public async Task EnsuresArgumentsNotNull()
            {
                var client = Substitute.For<IApiConnection>();
                var authEndpoint = new AuthorizationsClient(client);

                await Assert.ThrowsAsync<ArgumentNullException>(() => authEndpoint.GetAll(null));
            }
            public async Task EnsuresArgumentsNotNull()
            {
                var client       = Substitute.For <IApiConnection>();
                var authEndpoint = new AuthorizationsClient(client);

                await Assert.ThrowsAsync <ArgumentNullException>(() => authEndpoint.GetAll(null));
            }
Esempio n. 3
0
            public void GetsAListOfAuthorizations()
            {
                var client       = Substitute.For <IApiConnection>();
                var authEndpoint = new AuthorizationsClient(client);

                authEndpoint.GetAll();

                client.Received().GetAll <Authorization>(Arg.Is <Uri>(u => u.ToString() == "authorizations"));
            }
Esempio n. 4
0
            public void GetsAnAuthorization()
            {
                var client       = Substitute.For <IApiConnection>();
                var authEndpoint = new AuthorizationsClient(client);

                authEndpoint.Get(1);

                client.Received().Get <Authorization>(Arg.Is <Uri>(u => u.ToString() == "authorizations/1"), null);
            }
            public void GetsAnAuthorization()
            {
                var client = Substitute.For<IApiConnection>();
                var authEndpoint = new AuthorizationsClient(client);

                authEndpoint.Get(1);

                client.Received().Get<Authorization>(Arg.Is<Uri>(u => u.ToString() == "authorizations/1"), null);
            }
            public void DeletesCorrectUrl()
            {
                var client = Substitute.For<IApiConnection>();
                var authEndpoint = new AuthorizationsClient(client);

                authEndpoint.Delete(1);

                client.Received().Delete(Arg.Is<Uri>(u => u.ToString() == "authorizations/1"));
            }
            public void DeletesCorrectUrl()
            {
                var client       = Substitute.For <IApiConnection>();
                var authEndpoint = new AuthorizationsClient(client);

                authEndpoint.Delete(1);

                client.Received().Delete(Arg.Is <Uri>(u => u.ToString() == "authorizations/1"));
            }
Esempio n. 8
0
            public async Task EnsuresArgumentsNotNull()
            {
                var client       = Substitute.For <IApiConnection>();
                var authEndpoint = new AuthorizationsClient(client);

                await AssertEx.Throws <ArgumentNullException>(async() => await authEndpoint.RevokeAllApplicationAuthentications(null));

                await AssertEx.Throws <ArgumentException>(async() => await authEndpoint.RevokeAllApplicationAuthentications(""));
            }
            public void GetsAListOfAuthorizations()
            {
                var client = Substitute.For<IApiConnection>();
                var authEndpoint = new AuthorizationsClient(client);

                authEndpoint.GetAll();

                client.Received().GetAll<Authorization>(Arg.Is<Uri>(u => u.ToString() == "authorizations"));
            }
Esempio n. 10
0
            public void SendsCreateToCorrectUrl()
            {
                var client       = Substitute.For <IApiConnection>();
                var authEndpoint = new AuthorizationsClient(client);

                authEndpoint.Create(new NewAuthorization());

                client.Received().Post <Authorization>(Arg.Is <Uri>(u => u.ToString() == "authorizations")
                                                       , Args.NewAuthorization);
            }
            public void SendsUpdateToCorrectUrl()
            {
                var client = Substitute.For<IApiConnection>();
                var authEndpoint = new AuthorizationsClient(client);

                authEndpoint.Update(1, new AuthorizationUpdate());

                client.Received().Patch<Authorization>(Arg.Is<Uri>(u => u.ToString() == "authorizations/1"),
                    Args.AuthorizationUpdate);
            }
            public async Task RevokesAllApplicationAuthenticationsAtCorrectUrl()
            {
                var client       = Substitute.For <IApiConnection>();
                var authEndpoint = new AuthorizationsClient(client);

                authEndpoint.RevokeAllApplicationAuthentications("clientId");

                client.Received().Delete(
                    Arg.Is <Uri>(u => u.ToString() == "applications/clientId/tokens"));
            }
            public void SendsCreateToCorrectUrl()
            {
                var client = Substitute.For<IApiConnection>();
                var authEndpoint = new AuthorizationsClient(client);

                authEndpoint.Create(new NewAuthorization());

                client.Received().Post<Authorization>(Arg.Is<Uri>(u => u.ToString() == "authorizations")
                    , Args.NewAuthorization);
            }
            public void SendsUpdateToCorrectUrl()
            {
                var client       = Substitute.For <IApiConnection>();
                var authEndpoint = new AuthorizationsClient(client);

                authEndpoint.Update(1, new AuthorizationUpdate());

                client.Received().Patch <Authorization>(Arg.Is <Uri>(u => u.ToString() == "authorizations/1"),
                                                        Args.AuthorizationUpdate);
            }
            public void GetsOrCreatesAuthenticationAtCorrectUrl()
            {
                var data         = new NewAuthorization();
                var client       = Substitute.For <IApiConnection>();
                var authEndpoint = new AuthorizationsClient(client);

                authEndpoint.GetOrCreateApplicationAuthentication("clientId", "secret", data);

                client.Received().Put <ApplicationAuthorization>(Arg.Is <Uri>(u => u.ToString() == "authorizations/clients/clientId"),
                                                                 Args.Object);
            }
            public void RequestsCorrectUrl()
            {
                var client       = Substitute.For <IApiConnection>();
                var authEndpoint = new AuthorizationsClient(client);

                authEndpoint.GetAll();

                client.Received().GetAll <Authorization>(
                    Arg.Is <Uri>(u => u.ToString() == "authorizations"),
                    Args.ApiOptions);
            }
            public async Task ResetsApplicationAuthenticationAtCorrectUrl()
            {
                var client       = Substitute.For <IApiConnection>();
                var authEndpoint = new AuthorizationsClient(client);

                authEndpoint.ResetApplicationAuthentication("clientId", "accessToken");

                client.Received().Post <ApplicationAuthorization>(
                    Arg.Is <Uri>(u => u.ToString() == "applications/clientId/tokens/accessToken"),
                    Args.Object);
            }
            public void RequestsCorrectUrl()
            {
                var client = Substitute.For<IApiConnection>();
                var authEndpoint = new AuthorizationsClient(client);

                authEndpoint.GetAll();

                client.Received().GetAll<Authorization>(
                    Arg.Is<Uri>(u => u.ToString() == "authorizations"),
                    Args.ApiOptions);
            }
            public async Task RevokesApplicationAuthenticationAtCorrectUrl()
            {
                var client       = Substitute.For <IApiConnection>();
                var authEndpoint = new AuthorizationsClient(client);

                authEndpoint.RevokeApplicationAuthentication("clientId", "accessToken");

                client.Received().Delete(
                    Arg.Is <Uri>(u => u.ToString() == "applications/clientId/token"),
                    Arg.Is <Object>(o => o.GetType().GetProperty("access_token").GetValue(o).ToString() == "accessToken"));
            }
Esempio n. 20
0
            public async Task WrapsTwoFactorFailureWithTwoFactorException()
            {
                var data   = new NewAuthorization();
                var client = Substitute.For <IApiConnection>();

                client.Put <ApplicationAuthorization>(Args.Uri, Args.Object, Args.String)
                .ThrowsAsync <ApplicationAuthorization>(new AuthorizationException(CreateResponse(HttpStatusCode.Unauthorized)));
                var authEndpoint = new AuthorizationsClient(client);

                await Assert.ThrowsAsync <TwoFactorChallengeFailedException>(() =>
                                                                             authEndpoint.GetOrCreateApplicationAuthentication("clientId", "secret", data, "authenticationCode"));
            }
Esempio n. 21
0
            public async Task ChecksApplicationAuthenticateAtCorrectUrl()
            {
                var client       = Substitute.For <IApiConnection>();
                var authEndpoint = new AuthorizationsClient(client);

                authEndpoint.CheckApplicationAuthentication("clientId", "accessToken");

                client.Received().Get <ApplicationAuthorization>(
                    Arg.Is <Uri>(u => u.ToString() == "applications/clientId/tokens/accessToken"),
                    null,
                    Arg.Any <string>());
            }
Esempio n. 22
0
            public async Task ResetsApplicationAuthenticationAtCorrectUrl()
            {
                var client       = Substitute.For <IApiConnection>();
                var authEndpoint = new AuthorizationsClient(client);

                authEndpoint.ResetApplicationAuthentication("clientId", "accessToken");

                client.Received().Patch <ApplicationAuthorization>(
                    Arg.Is <Uri>(u => u.ToString() == "applications/clientId/token"),
                    Arg.Is <Object>(o => o.GetType().GetProperty("access_token").GetValue(o).ToString() == "accessToken"),
                    "application/vnd.github.doctor-strange-preview+json");
            }
            public async Task EnsuresArgumentsNotNull()
            {
                var client       = Substitute.For <IApiConnection>();
                var authEndpoint = new AuthorizationsClient(client);

                await Assert.ThrowsAsync <ArgumentNullException>(() => authEndpoint.RevokeApplicationAuthentication(null, "accessToken"));

                await Assert.ThrowsAsync <ArgumentException>(() => authEndpoint.RevokeApplicationAuthentication("", "accessToken"));

                await Assert.ThrowsAsync <ArgumentNullException>(() => authEndpoint.RevokeApplicationAuthentication("clientId", null));

                await Assert.ThrowsAsync <ArgumentException>(() => authEndpoint.RevokeApplicationAuthentication("clientId", ""));
            }
Esempio n. 24
0
            public void GetsOrCreatesAuthenticationAtCorrectUrlUsingTwoFactor()
            {
                var data         = new NewAuthorization();
                var client       = Substitute.For <IApiConnection>();
                var authEndpoint = new AuthorizationsClient(client);

                authEndpoint.GetOrCreateApplicationAuthentication("clientId", "secret", data, "two-factor");

                client.Received().Put <ApplicationAuthorization>(
                    Arg.Is <Uri>(u => u.ToString() == "authorizations/clients/clientId"),
                    Arg.Is <Object>(o => o.GetType().GetProperty("client_secret").GetValue(o).ToString() == "secret"),
                    "two-factor");
            }
Esempio n. 25
0
            public async Task GetsOrCreatesAuthenticationWithFingerprintAtCorrectUrl()
            {
                var data = new NewAuthorization {
                    Fingerprint = "ha-ha-fingerprint"
                };
                var client       = Substitute.For <IApiConnection>();
                var authEndpoint = new AuthorizationsClient(client);

                authEndpoint.GetOrCreateApplicationAuthentication("clientId", "secret", data);

                client.Received().Put <ApplicationAuthorization>(Arg.Is <Uri>(u => u.ToString() == "authorizations/clients/clientId/ha-ha-fingerprint"),
                                                                 Args.Object,
                                                                 Args.String,
                                                                 Args.String); // NOTE: preview API
            }
            public void RequestsCorrectUrlWithApiOptions()
            {
                var client       = Substitute.For <IApiConnection>();
                var authEndpoint = new AuthorizationsClient(client);

                var options = new ApiOptions
                {
                    StartPage = 1,
                    PageSize  = 1,
                    PageCount = 1
                };

                authEndpoint.GetAll(options);

                client.Received().GetAll <Authorization>(
                    Arg.Is <Uri>(u => u.ToString() == "authorizations"),
                    options);
            }
            public void RequestsCorrectUrlWithApiOptions()
            {
                var client = Substitute.For<IApiConnection>();
                var authEndpoint = new AuthorizationsClient(client);

                var options = new ApiOptions
                {
                    StartPage = 1,
                    PageSize = 1,
                    PageCount = 1
                };

                authEndpoint.GetAll(options);

                client.Received().GetAll<Authorization>(
                    Arg.Is<Uri>(u => u.ToString() == "authorizations"),
                    options);
            }
Esempio n. 28
0
            public async Task WrapsTwoFactorFailureWithTwoFactorException()
            {
                var data   = new NewAuthorization();
                var client = Substitute.For <IApiConnection>();

                client.Put <Authorization>(Args.Uri, Args.Object, Args.String)
                .Returns(_ =>
                {
                    throw new AuthorizationException(
                        new ApiResponse <object> {
                        StatusCode = HttpStatusCode.Unauthorized
                    });
                });
                var authEndpoint = new AuthorizationsClient(client);

                AssertEx.Throws <TwoFactorChallengeFailedException>(async() =>
                                                                    await authEndpoint.GetOrCreateApplicationAuthentication("clientId", "secret", data));
            }
            public async Task GetsOrCreatesAuthenticationWithFingerprintAtCorrectUrl()
            {
                var data = new NewAuthorization {
                    Fingerprint = "ha-ha-fingerprint"
                };
                var client       = Substitute.For <IApiConnection>();
                var authEndpoint = new AuthorizationsClient(client);

                Uri     calledUri  = null;
                dynamic calledBody = null;

                client.Put <ApplicationAuthorization>(Arg.Do <Uri>(u => calledUri = u), Arg.Do <object>(body => calledBody = body));

                authEndpoint.GetOrCreateApplicationAuthentication("clientId", "secret", data);

                Assert.NotNull(calledUri);
                Assert.Equal(calledUri.ToString(), "authorizations/clients/clientId");

                Assert.NotNull(calledBody);
                Assert.Equal(calledBody.fingerprint, "ha-ha-fingerprint");
            }
            public async Task GetsOrCreatesAuthenticationWithFingerprintAtCorrectUrl()
            {
                var data = new NewAuthorization {
                    Fingerprint = "ha-ha-fingerprint"
                };
                var client       = Substitute.For <IApiConnection>();
                var authEndpoint = new AuthorizationsClient(client);

                Uri     calledUri  = null;
                dynamic calledBody = null;

                client.Put <ApplicationAuthorization>(Arg.Do <Uri>(u => calledUri = u), Arg.Do <dynamic>(body => calledBody = body));

                authEndpoint.GetOrCreateApplicationAuthentication("clientId", "secret", data);

                Assert.NotNull(calledUri);
                Assert.Equal(calledUri.ToString(), "authorizations/clients/clientId");

                Assert.NotNull(calledBody);
                var fingerprintProperty = ((IEnumerable <PropertyInfo>)calledBody.GetType().DeclaredProperties).FirstOrDefault(x => x.Name == "fingerprint");

                Assert.NotNull(fingerprintProperty);
                Assert.Equal(fingerprintProperty.GetValue(calledBody), "ha-ha-fingerprint");
            }
            public async Task RevokesAllApplicationAuthenticationsAtCorrectUrl()
            {
                var client = Substitute.For<IApiConnection>();
                var authEndpoint = new AuthorizationsClient(client);

                authEndpoint.RevokeAllApplicationAuthentications("clientId");

                client.Received().Delete(
                    Arg.Is<Uri>(u => u.ToString() == "applications/clientId/tokens"));
            }
            public async Task EnsuresArgumentsNotNull()
            {
                var client = Substitute.For<IApiConnection>();
                var authEndpoint = new AuthorizationsClient(client);

                await Assert.ThrowsAsync<ArgumentNullException>(() => authEndpoint.RevokeApplicationAuthentication(null, "accessToken"));
                await Assert.ThrowsAsync<ArgumentException>(() => authEndpoint.RevokeApplicationAuthentication("", "accessToken"));
                await Assert.ThrowsAsync<ArgumentNullException>(() => authEndpoint.RevokeApplicationAuthentication("clientId", null));
                await Assert.ThrowsAsync<ArgumentException>(() => authEndpoint.RevokeApplicationAuthentication("clientId", ""));
            }
            public async Task ResetsApplicationAuthenticationAtCorrectUrl()
            {
                var client = Substitute.For<IApiConnection>();
                var authEndpoint = new AuthorizationsClient(client);

                authEndpoint.ResetApplicationAuthentication("clientId", "accessToken");

                client.Received().Post<ApplicationAuthorization>(
                    Arg.Is<Uri>(u => u.ToString() == "applications/clientId/tokens/accessToken"),
                    Args.Object);
            }
            public async Task GetsOrCreatesAuthenticationWithFingerprintAtCorrectUrl()
            {
                var data = new NewAuthorization { Fingerprint = "ha-ha-fingerprint" };
                var client = Substitute.For<IApiConnection>();
                var authEndpoint = new AuthorizationsClient(client);

                Uri calledUri = null;
                dynamic calledBody = null;

                client.Put<ApplicationAuthorization>(Arg.Do<Uri>(u => calledUri = u), Arg.Do<object>(body => calledBody = body));

                authEndpoint.GetOrCreateApplicationAuthentication("clientId", "secret", data);

                Assert.NotNull(calledUri);
                Assert.Equal(calledUri.ToString(), "authorizations/clients/clientId");

                Assert.NotNull(calledBody);
                Assert.Equal(calledBody.fingerprint, "ha-ha-fingerprint");
            }
            public async Task WrapsTwoFactorFailureWithTwoFactorException()
            {
                var data = new NewAuthorization();
                var client = Substitute.For<IApiConnection>();
                client.Put<ApplicationAuthorization>(Args.Uri, Args.Object, Args.String)
                    .ThrowsAsync<ApplicationAuthorization>(
                    new AuthorizationException(
                        new Response(HttpStatusCode.Unauthorized, null, new Dictionary<string, string>(), "application/json")));
                var authEndpoint = new AuthorizationsClient(client);

                await Assert.ThrowsAsync<TwoFactorChallengeFailedException>(() =>
                    authEndpoint.GetOrCreateApplicationAuthentication("clientId", "secret", data, "authenticationCode"));
            }
            public async Task WrapsTwoFactorFailureWithTwoFactorException()
            {
                var data = new NewAuthorization();
                var client = Substitute.For<IApiConnection>();
                client.Put<Authorization>(Args.Uri, Args.Object, Args.String)
                    .ThrowsAsync<Authorization>(
                    new AuthorizationException(
                        new ApiResponse<object> { StatusCode = HttpStatusCode.Unauthorized }));
                var authEndpoint = new AuthorizationsClient(client);

                await AssertEx.Throws<TwoFactorChallengeFailedException>(async () =>
                    await authEndpoint.GetOrCreateApplicationAuthentication("clientId", "secret", data, "authenticationCode"));
            }
            public async Task EnsuresArgumentsNotNull()
            {
                var client = Substitute.For<IApiConnection>();
                var authEndpoint = new AuthorizationsClient(client);

                await AssertEx.Throws<ArgumentNullException>(async () => await authEndpoint.RevokeAllApplicationAuthentications(null));
                await AssertEx.Throws<ArgumentException>(async () => await authEndpoint.RevokeAllApplicationAuthentications(""));
            }
            public async Task ChecksApplicationAuthenticateAtCorrectUrl()
            {
                var client = Substitute.For<IApiConnection>();
                var authEndpoint = new AuthorizationsClient(client);

                authEndpoint.CheckApplicationAuthentication("clientId", "accessToken");

                client.Received().Get<ApplicationAuthorization>(
                    Arg.Is<Uri>(u => u.ToString() == "applications/clientId/tokens/accessToken"),
                    null,
                    Arg.Any<string>());
           }
            public void GetsOrCreatesAuthenticationAtCorrectUrl()
            {
                var data = new NewAuthorization();
                var client = Substitute.For<IApiConnection>();
                var authEndpoint = new AuthorizationsClient(client);

                authEndpoint.GetOrCreateApplicationAuthentication("clientId", "secret", data);

                client.Received().Put<ApplicationAuthorization>(Arg.Is<Uri>(u => u.ToString() == "authorizations/clients/clientId"),
                    Args.Object);
            }
            public async Task GetsOrCreatesAuthenticationWithFingerprintAtCorrectUrl()
            {
                var data = new NewAuthorization { Fingerprint = "ha-ha-fingerprint"};
                var client = Substitute.For<IApiConnection>();
                var authEndpoint = new AuthorizationsClient(client);

                authEndpoint.GetOrCreateApplicationAuthentication("clientId", "secret", data);

                client.Received().Put<ApplicationAuthorization>(Arg.Is<Uri>(u => u.ToString() == "authorizations/clients/clientId/ha-ha-fingerprint"),
                    Args.Object,
                    Args.String,
                    Args.String); // NOTE: preview API
            }