public async Task ShouldGetCategory()
        {
            var options = new ConnectionOption
            {
                Identifier  = Identifier,
                Secret      = Secret,
                BaseAddress = BaseAddress
            };

            HttpResponseWithBody result = await(dynamic) VismaSign.CategoriesGet(options, new CancellationToken());

            Assert.Equal(200, result.StatusCode);
        }
        public async Task ShouldSearchDocuments()
        {
            var settings = new DocumentSearchInput()
            {
                Query = "status=cancelled"
            };

            var options = new ConnectionOption
            {
                Identifier  = Identifier,
                Secret      = Secret,
                BaseAddress = BaseAddress
            };

            HttpResponseWithBody result = await(dynamic) VismaSign.DocumentSearch(settings, options, new CancellationToken());

            Assert.StartsWith("{\"total\":", result.Body);
        }
Example #3
0
        public async Task PostToken_AuthCodeGrantWithAdditionalPropertyInBody_Return200()
        {
            // Arrange
            var ssoToken = await GetUserAccessToken();

            var client = _defaultFactory.CreateDefaultClient(new RetryHandler(new HttpClientHandler()));

            client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", ssoToken);

            // Act
            HttpResponseWithBody <PostTokenResponse> result = null;
            int maxRetries = 5;

            for (int i = 0; i < maxRetries; i++)
            {
                var requestBody = new Dictionary <string, object>()
                {
                    ["scope"]               = DefaultGraphScope,
                    ["redirect_uri"]        = _settings.RedirectUri,
                    ["grant_type"]          = PostTokenGrantType.AuthorizationCode,
                    ["code"]                = Utilities.GetAuthorizationCode(_settings, _configuration),
                    ["code_verifier"]       = _settings.CodeVerifier,
                    ["additional_property"] = "some_value"
                };
                result = await PostToAuthTokenApi <PostTokenResponse>(client, requestBody);

                if (result.Response.IsSuccessStatusCode)
                {
                    break;
                }

                await Task.Delay(1000);
            }

            // Assert
            Assert.AreEqual(HttpStatusCode.OK, result.Response.StatusCode);
            Assert.AreEqual("application/json; charset=utf-8", result.Response.Content.Headers.ContentType.ToString());
            Assert.NotNull(result.Body.scope);
            Assert.IsTrue(result.Body.scope.Contains(DefaultGraphScope));
            Assert.AreNotEqual(DateTimeOffset.MinValue, result.Body.expires_on);
            Assert.NotNull(result.Body.access_token);
        }
Example #4
0
        public async Task PostToken_AuthCodeGrantWithCorrectBody_Return200()
        {
            // Arrange
            var ssoToken = await GetUserAccessToken();

            var client = _defaultFactory.CreateDefaultClient(new RetryHandler(new HttpClientHandler()));

            client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", ssoToken);

            // Act
            HttpResponseWithBody <PostTokenResponse> result = null;
            int maxRetries = 5;

            for (int i = 0; i < maxRetries; i++)
            {
                var requestBody = new PostTokenRequestBody
                {
                    scope         = DefaultGraphScope,
                    redirect_uri  = _settings.RedirectUri,
                    grant_type    = PostTokenGrantType.AuthorizationCode,
                    code          = Utilities.GetAuthorizationCode(_settings, _configuration), // Reusing same auth code will result in error, so cannot use the retry handler
                    code_verifier = _settings.CodeVerifier
                };
                result = await PostToAuthTokenApi <PostTokenResponse>(client, requestBody);

                if (result.Response.IsSuccessStatusCode)
                {
                    break;
                }

                await Task.Delay(1000);
            }

            // Assert
            Assert.AreEqual(HttpStatusCode.OK, result.Response.StatusCode);
            Assert.AreEqual("application/json; charset=utf-8", result.Response.Content.Headers.ContentType.ToString());
            Assert.NotNull(result.Body.scope);
            Assert.IsTrue(result.Body.scope.Contains(DefaultGraphScope));
            Assert.AreNotEqual(DateTimeOffset.MinValue, result.Body.expires_on);
            Assert.NotNull(result.Body.access_token);
        }