public async void TestAddTransformIndividualRecording() { RecordingHandler testRecordingHandler = new RecordingHandler(Directory.GetCurrentDirectory()); var httpContext = new DefaultHttpContext(); await testRecordingHandler.StartPlayback("Test.RecordEntries/oauth_request_with_variables.json", httpContext.Response); var recordingId = httpContext.Response.Headers["x-recording-id"]; var apiVersion = "2016-03-21"; httpContext.Request.Headers["x-api-version"] = apiVersion; httpContext.Request.Headers["x-abstraction-identifier"] = "ApiVersionTransform"; httpContext.Request.Headers["x-recording-id"] = recordingId; var controller = new Admin(testRecordingHandler) { ControllerContext = new ControllerContext() { HttpContext = httpContext } }; await controller.AddTransform(); var result = testRecordingHandler.PlaybackSessions[recordingId].AdditionalTransforms.First(); Assert.True(result is ApiVersionTransform); }
public async Task TestStartPlaybackWithoutVariables() { var startHttpContext = new DefaultHttpContext(); var recordingHandler = new RecordingHandler(Directory.GetCurrentDirectory()); await recordingHandler.StartPlayback("Test.RecordEntries/oauth_request.json", startHttpContext.Response); }
public async void TestAddSanitizerIndividualRecording() { RecordingHandler testRecordingHandler = new RecordingHandler(Directory.GetCurrentDirectory()); var httpContext = new DefaultHttpContext(); await testRecordingHandler.StartPlayback("Test.RecordEntries/oauth_request_with_variables.json", httpContext.Response); var recordingId = httpContext.Response.Headers["x-recording-id"]; httpContext.Request.Headers["x-recording-id"] = recordingId; httpContext.Request.Headers["x-abstraction-identifier"] = "HeaderRegexSanitizer"; httpContext.Request.Body = TestHelpers.GenerateStreamRequestBody("{ \"key\": \"Location\", \"value\": \"https://fakeazsdktestaccount.table.core.windows.net/Tables\" }"); httpContext.Request.ContentLength = 92; var controller = new Admin(testRecordingHandler) { ControllerContext = new ControllerContext() { HttpContext = httpContext } }; await controller.AddSanitizer(); var result = testRecordingHandler.PlaybackSessions[recordingId].AdditionalSanitizers.First(); Assert.True(result is HeaderRegexSanitizer); }
public async void TestSetMatcherIndividualRecording() { RecordingHandler testRecordingHandler = new RecordingHandler(Directory.GetCurrentDirectory()); var httpContext = new DefaultHttpContext(); await testRecordingHandler.StartPlayback("Test.RecordEntries/oauth_request_with_variables.json", httpContext.Response); var recordingId = httpContext.Response.Headers["x-recording-id"]; httpContext.Request.Headers["x-recording-id"] = recordingId; httpContext.Request.Headers["x-abstraction-identifier"] = "BodilessMatcher"; httpContext.Request.Body = TestHelpers.GenerateStreamRequestBody("{}"); var controller = new Admin(testRecordingHandler) { ControllerContext = new ControllerContext() { HttpContext = httpContext } }; await controller.SetMatcher(); var result = testRecordingHandler.PlaybackSessions[recordingId].CustomMatcher; Assert.True(result is BodilessMatcher); }
public async Task TestLoadNonexistentRelativeRecording() { var currentPath = Directory.GetCurrentDirectory(); var httpContext = new DefaultHttpContext(); var pathToRecording = "Test.RecordEntries/oauth_request_wrong.json"; var recordingHandler = new RecordingHandler(currentPath); var resultingException = await Assert.ThrowsAsync <TestRecordingMismatchException>( async() => await recordingHandler.StartPlayback(pathToRecording, httpContext.Response) ); Assert.Contains($"{pathToRecording} does not exist", resultingException.Message); }
public async Task TestLoadOfRelativeRecording() { var currentPath = Directory.GetCurrentDirectory(); var httpContext = new DefaultHttpContext(); var pathToRecording = "Test.RecordEntries/oauth_request.json"; var recordingHandler = new RecordingHandler(currentPath); await recordingHandler.StartPlayback(pathToRecording, httpContext.Response); var playbackSession = recordingHandler.PlaybackSessions.First(); var entry = playbackSession.Value.Session.Entries.First(); Assert.Equal("https://login.microsoftonline.com/12345678-1234-1234-1234-123456789012/oauth2/v2.0/token", entry.RequestUri); }
public async Task TestStartPlaybackWithVariables() { var httpContext = new DefaultHttpContext(); var recordingHandler = new RecordingHandler(Directory.GetCurrentDirectory()); httpContext.Response.Body = new MemoryStream(); await recordingHandler.StartPlayback("Test.RecordEntries/oauth_request_with_variables.json", httpContext.Response); Dictionary <string, string> results = JsonConvert.DeserializeObject <Dictionary <string, string> >( TestHelpers.GenerateStringFromStream(httpContext.Response.Body) ); Assert.Equal(2, results.Count); Assert.Equal("value1", results["key1"]); Assert.Equal("value2", results["key2"]); }