Ejemplo n.º 1
0
        public async Task GetAnonApplicationTokenShouldWorkWithNullLoggingContext()
        {
            // Given
            var input = new AnonymousApplicationTokenInput();

            // When
            AnonymousApplicationTokenResource token = await m_application.GetAnonApplicationTokenAsync(null, input).ConfigureAwait(false);

            // Then
            Assert.IsNotNull(token);
        }
Ejemplo n.º 2
0
        public async Task GetAnonApplicationTokenShouldThrowIfInputNull()
        {
            // Given
            AnonymousApplicationTokenInput input = null;

            // When
            await m_application.GetAnonApplicationTokenAsync(m_loggingContext, input).ConfigureAwait(false);

            // Then
            // Exception is thrown
        }
Ejemplo n.º 3
0
        public async Task GetAnonApplicationTokenShouldReturnToken()
        {
            // Given
            var input = new AnonymousApplicationTokenInput();

            // When
            AnonymousApplicationTokenResource token = await m_application.GetAnonApplicationTokenAsync(m_loggingContext, input);

            // Then
            Assert.IsNotNull(token);
        }
Ejemplo n.º 4
0
        public async Task GetAnonApplicationTokenShouldThrowIfServerResponseMalformed()
        {
            // Given
            m_restfulClient.OverrideResponse(new Uri(DataUrls.AnonToken), HttpMethod.Post, HttpStatusCode.OK, "AnonApplicationToken_Malformed.json");
            var input = new AnonymousApplicationTokenInput();

            // When
            await m_application.GetAnonApplicationTokenAsync(m_loggingContext, input).ConfigureAwait(false);

            // Then
            // Exception is thrown
        }
Ejemplo n.º 5
0
        public async Task GetAnonApplicationTokenShouldMakeHttpRequest()
        {
            // Given
            Assert.IsFalse(m_restfulClient.RequestsProcessed("POST " + DataUrls.AnonToken));
            var input = new AnonymousApplicationTokenInput();

            // When
            await m_application.GetAnonApplicationTokenAsync(m_loggingContext, input).ConfigureAwait(false);

            // Then
            Assert.IsTrue(m_restfulClient.RequestsProcessed("POST " + DataUrls.AnonToken));
        }
        public SkypeAnonTokenInfo GetAnonymousToken(AnonymousApplicationTokenInput tokenInput)
        {
            if (!_isInitialized)
            {
                InitializeEndpoint();
            }
            var anonToken = _applicationEndpoint.Application.GetAnonApplicationTokenAsync(_loggingContext, tokenInput).Result;

            return(new SkypeAnonTokenInfo
            {
                AnonToken = anonToken.AuthToken,
                DiscoverUrl = anonToken.AnonymousApplicationsDiscover.Href
            });
        }
Ejemplo n.º 7
0
        public async Task GetAnonApplicationTokenShouldThrowIfUrlNotAvailable()
        {
            // Given
            m_restfulClient.OverrideResponse(new Uri(DataUrls.Application), HttpMethod.Get, HttpStatusCode.OK, "Application_NoGetAnonApplicationToken.json");
            await m_application.RefreshAndInitializeAsync(m_loggingContext).ConfigureAwait(false);

            var input = new AnonymousApplicationTokenInput();

            // When
            await m_application.GetAnonApplicationTokenAsync(m_loggingContext, input).ConfigureAwait(false);

            // Then
            // Exception is thrown
        }
Ejemplo n.º 8
0
        private async Task <IAnonymousApplicationToken> GetAnonApplicationTokenAsync(LoggingContext loggingContext, string meetingUrl, string allowedOrigins, string applicationSessionId)
        {
            var input = new AnonymousApplicationTokenInput()
            {
                MeetingUrl           = meetingUrl,
                AllowedOrigins       = allowedOrigins,
                ApplicationSessionId = applicationSessionId
            };

            #pragma warning disable CS0618 // Type or member is obsolete
            AnonymousApplicationTokenResource anonymousApplicationToken = await GetAnonApplicationTokenAsync(loggingContext, input).ConfigureAwait(false);

            #pragma warning restore CS0618 // Type or member is obsolete

            return(new AnonymousApplicationToken(RestfulClient, anonymousApplicationToken, BaseUri, UriHelper.CreateAbsoluteUri(BaseUri, anonymousApplicationToken.SelfUri), this));
        }
Ejemplo n.º 9
0
        public override async Task <T> ExecuteCoreWithResultAsync <T>()
        {
            AnonymousToken result = null;

            Logger.Instance.Information(string.Format("[GetAnonTokenJob] stared: LoggingContext: {0}", LoggingContext.JobId));

            try
            {
                GetAnonTokenInput getAnonTokenInput = this.JobInput as GetAnonTokenInput;
                if (getAnonTokenInput == null)
                {
                    throw new InvalidOperationException("Failed to get valid GetAnonTokenInput intance");
                }

                AnonymousApplicationTokenInput anoninput = new AnonymousApplicationTokenInput()
                {
                    AllowedOrigins       = getAnonTokenInput.AllowedOrigins,
                    ApplicationSessionId = getAnonTokenInput.ApplicationSessionId,
                    MeetingUrl           = getAnonTokenInput.MeetingUrl
                };

                var tokenResources = await AzureApplication.ApplicationEndpoint.Application.GetAnonApplicationTokenAsync(LoggingContext, anoninput).ConfigureAwait(false);

                if (tokenResources != null)
                {
                    result = new AnonymousToken
                    {
                        DiscoverUri      = tokenResources.AnonymousApplicationsDiscover.Href,
                        ExpireTime       = tokenResources.AuthTokenExpiryTime,
                        Token            = tokenResources.AuthToken,
                        TenantEndpointId = AzureApplication.ApplicationEndpoint.ApplicationEndpointId.ToString()
                    };
                }
            }
            catch (CapabilityNotAvailableException ex)
            {
                Logger.Instance.Error("Failed to get anon token.", ex);
                throw;
            }
            catch (RemotePlatformServiceException ex)
            {
                Logger.Instance.Error("Failed to get anon token.", ex);
                throw;
            }

            return(result as T);
        }
Ejemplo n.º 10
0
        // All obsolete methods will be removed when releasing 1.0.0
        // We are keeping methods for prerelease as we don't want to break our partners every week :)
        public async Task <AnonymousApplicationTokenResource> GetAnonApplicationTokenAsync(LoggingContext loggingContext, AnonymousApplicationTokenInput input)
        {
            if (input == null)
            {
                throw new ArgumentNullException(nameof(input));
            }

            Logger.Instance.Information("Calling Application.RefreshAsync");
            await this.RefreshAsync(loggingContext).ConfigureAwait(false);

            Logger.Instance.Information("Start to fetching anonToken");

            string href = PlatformResource?.AnonymousApplicationTokens?.Href;

            if (href == null)
            {
                throw new CapabilityNotAvailableException("Link to get anonymous tokens is not available.");
            }

            Uri url = UriHelper.CreateAbsoluteUri(this.BaseUri, href);

            HttpResponseMessage httpResponse = await this.PostRelatedPlatformResourceAsync(url, input, new ResourceJsonMediaTypeFormatter(), loggingContext).ConfigureAwait(false);

            try
            {
                //Does it neccessary to create a helper class from Common layer to do deserialize?
                Stream platformResourceStream = await httpResponse.Content.ReadAsStreamAsync().ConfigureAwait(false);

                return(MediaTypeFormattersHelper.ReadContentWithType(typeof(AnonymousApplicationTokenResource), httpResponse.Content.Headers.ContentType, platformResourceStream) as AnonymousApplicationTokenResource);
            }
            catch (Exception ex)
            {
                Logger.Instance.Error("Failed to diserialize anon token ");
                throw new RemotePlatformServiceException("Not get valid anon token resource from server, deserialize failure.", ex);
            }
        }