/// <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); }
public void ConfigureServices(IServiceCollection services) { DependencyInjections.Add(services); Swagger.Add(services); ControllersAndNewtonsoftJson.Add(services); HealthCheck.Add(services); HttpClient.Add(services, Configuration); }
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")); }