Example #1
0
        /// <summary>
        /// Provide the status codes to set for each defined request string.
        /// </summary>
        /// <param name="mockResults"> A list of objects that define what to mock for a given request
        /// <returns>For status 200 and 204, a zip is returned. For other statuses, null is returned in the Data object</returns>
        public ExposureNotificationWebService MockedService(List <PullKeysMockData> mockResults)
        {
            Mock <ExposureNotificationWebService> mock = new Mock <ExposureNotificationWebService>();

            foreach (PullKeysMockData data in mockResults)
            {
                mock.Setup(service =>
                           service.GetDiagnosisKeys(data.RequestString, It.IsAny <CancellationToken>()))
                .Returns(
                    () =>
                {
                    var ms = new MemoryStream();
                    using (var zipFile = new ZipArchive(ms, ZipArchiveMode.Create, true))
                    {
                        // Copy the bin contents into the entry
                        var binEntry = zipFile.CreateEntry("mock", CompressionLevel.Optimal);
                        using (var binStream = binEntry.Open())
                        {
                            using (var mockContent = new MemoryStream())
                            {
                                mockContent.Write(Encoding.Default.GetBytes("mockdata"));
                                mockContent.CopyTo(binStream);
                            }
                        }
                    }

                    ms.Seek(0, SeekOrigin.Begin);

                    HttpHeaders headers = new HttpClient().DefaultRequestHeaders;
                    if (data.LastBatchReturned != null)
                    {
                        headers.Add(ZipDownloader.LastBatchReturnedHeader, ((int)data.LastBatchReturned).ToString());
                    }
                    if (data.MoreBatchesExistForDate != null)
                    {
                        headers.Add(ZipDownloader.MoreBatchesExistHeader, (data.MoreBatchesExistForDate).ToString());
                    }

                    if (data.StatusCode == 200 || data.StatusCode == 204)
                    {
                        //In messages, this time will be shown as "last updated", to show the user when we last checked for exposures.
                        LocalPreferencesHelper.UpdateLastUpdatedDate();
                    }

                    return(Task.Run(() =>
                                    new ApiResponse <Stream>(data.RequestString, HttpMethod.Get)
                    {
                        StatusCode = data.StatusCode,
                        Data = data.StatusCode == 200 ? ms : null,
                        Headers = headers
                    }));
                });
            }
            return(mock.Object);
        }
Example #2
0
 public void ConfigureServices(IServiceCollection services)
 {
     DependencyInjections.Add(services);
     Swagger.Add(services);
     ControllersAndNewtonsoftJson.Add(services);
     HealthCheck.Add(services);
     HttpClient.Add(services, Configuration);
 }
Example #3
0
        public void CanDecodeJWTFromHTTPHeaders()
        {
            var headers = new HttpClient().DefaultRequestHeaders;

            headers.Add("X-JWT-Assertion", ValidTPaaSUserJWT);

            var jwt = new TPaaSJWT(headers);

            Assert.Equal(_validTPaaSUserJWTUserUid, jwt.UserUid);
            Assert.True(jwt.IsApplicationUserToken);
            Assert.False(jwt.IsApplicationToken);
        }
        private static HttpRequestHeaders BuildHttpRequestHeaders(IDictionary <string, string> additionalHeaders = null, bool addDefaultTelemetryData = true)
        {
            var headers = new HttpClient().DefaultRequestHeaders;

            if (additionalHeaders != null)
            {
                foreach (var header in additionalHeaders)
                {
                    headers.Add(header.Key, header.Value);
                }
            }

            if (addDefaultTelemetryData)
            {
                foreach (var header in IdentityModelTelemetryUtil.telemetryData)
                {
                    headers.Add(header.Key, header.Value);
                }
            }

            return(headers);
        }
        public void AddIfNotSet_HeaderAlreadySet_ExpectKeepingOldValue()
        {
            // arrange
            HttpRequestHeaders headers = new HttpClient().DefaultRequestHeaders;

            headers.Add("X-Correlation-ID", "123");

            // act
            // (try to set correlation ID "999")
            headers = headers.AddHeaderIfNotSet("X-Correlation-ID", "999");

            // assert
            Assert.True(headers.Contains("X-Correlation-ID"));
            Assert.Contains("123", headers.GetValues("X-Correlation-ID"));
        }