public void ConfigureServices(IServiceCollection services) { services.AddCors(options => { options.AddPolicy(name: "DefaultPolicy", builder => { builder.AllowAnyHeader() .AllowAnyMethod() .AllowAnyOrigin() .WithExposedHeaders("*"); }); }); services.AddControllers(options => { options.InputFormatters.Add(new EmptyBodyFormatter()); }); services.AddControllersWithViews(); services.AddRazorPages(); var singletonRecordingHandler = new RecordingHandler( TargetLocation, store: DefaultStore, storeResolver: Resolver ); services.AddSingleton <RecordingHandler>(singletonRecordingHandler); }
public async Task Reset() { await DebugLogger.LogRequestDetailsAsync(_logger, Request); var recordingId = RecordingHandler.GetHeader(Request, "x-recording-id", allowNulls: true); _recordingHandler.SetDefaultExtensions(recordingId); }
public void Stop() { string id = RecordingHandler.GetHeader(Request, "x-recording-id"); bool.TryParse(RecordingHandler.GetHeader(Request, "x-purge-inmemory-recording", true), out var shouldPurgeRecording); _recordingHandler.StopPlayback(id, purgeMemoryStore: shouldPurgeRecording); }
public async Task SetRecordingOptions([FromBody()] IDictionary <string, object> options = null) { await DebugLogger.LogRequestDetailsAsync(_logger, Request); var recordingId = RecordingHandler.GetHeader(Request, "x-recording-id", allowNulls: true); _recordingHandler.SetRecordingOptions(options, recordingId); }
public async Task AddTransform() { await DebugLogger.LogRequestDetailsAsync(_logger, Request); var tName = RecordingHandler.GetHeader(Request, "x-abstraction-identifier"); var recordingId = RecordingHandler.GetHeader(Request, "x-recording-id", allowNulls: true); ResponseTransform t = (ResponseTransform)GetTransform(tName, await HttpRequestInteractions.GetBody(Request)); if (recordingId != null) { _recordingHandler.AddTransformToRecording(recordingId, t); } else { _recordingHandler.Transforms.Add(t); } }
public async Task SetMatcher() { await DebugLogger.LogRequestDetailsAsync(_logger, Request); var mName = RecordingHandler.GetHeader(Request, "x-abstraction-identifier"); var recordingId = RecordingHandler.GetHeader(Request, "x-recording-id", allowNulls: true); RecordMatcher m = (RecordMatcher)GetMatcher(mName, await HttpRequestInteractions.GetBody(Request)); if (recordingId != null) { _recordingHandler.SetMatcherForRecording(recordingId, m); } else { _recordingHandler.Matcher = m; } }
public void Stop([FromBody()] IDictionary <string, string> variables = null) { string id = RecordingHandler.GetHeader(Request, "x-recording-id"); bool save = true; EntryRecordMode mode = RecordingHandler.GetRecordMode(Request); if (mode != EntryRecordMode.Record && mode != EntryRecordMode.DontRecord) { throw new HttpException(HttpStatusCode.BadRequest, "When stopping a recording and providing a \"x-recording-skip\" value, only value \"request-response\" is accepted."); } if (mode == EntryRecordMode.DontRecord) { save = false; } _recordingHandler.StopRecording(id, variables: variables, saveRecording: save); }
public async Task AddSanitizer() { await DebugLogger.LogRequestDetailsAsync(_logger, Request); var sName = RecordingHandler.GetHeader(Request, "x-abstraction-identifier"); var recordingId = RecordingHandler.GetHeader(Request, "x-recording-id", allowNulls: true); RecordedTestSanitizer s = (RecordedTestSanitizer)GetSanitizer(sName, await HttpRequestInteractions.GetBody(Request)); if (recordingId != null) { _recordingHandler.AddSanitizerToRecording(recordingId, s); } else { _recordingHandler.Sanitizers.Add(s); } }
public async Task Start() { string file = await HttpRequestInteractions.GetBodyKey(Request, "x-recording-file", true); string recordingId = RecordingHandler.GetHeader(Request, "x-recording-id", true); if (String.IsNullOrEmpty(file) && !String.IsNullOrEmpty(recordingId)) { await _recordingHandler.StartPlaybackAsync(recordingId, Response, RecordingType.InMemory); } else if (!String.IsNullOrEmpty(file)) { await _recordingHandler.StartPlaybackAsync(file, Response, RecordingType.FilePersisted); } else { throw new HttpException(HttpStatusCode.BadRequest, "At least one of either JSON body key 'x-recording-file' or header 'x-recording-id' must be populated when starting playback."); } }
public Record(RecordingHandler recordingHandler) => _recordingHandler = recordingHandler;
public Info(RecordingHandler recordingHandler) => _recordingHandler = recordingHandler;
public Admin(RecordingHandler recordingHandler) => _recordingHandler = recordingHandler;
public Playback(RecordingHandler recordingHandler) => _recordingHandler = recordingHandler;
public async Task HandleRequest() { string id = RecordingHandler.GetHeader(Request, "x-recording-id"); await _recordingHandler.HandleRecordRequestAsync(id, Request, Response); }
public Record(RecordingHandler recordingHandler, ILoggerFactory loggerFactory) { _recordingHandler = recordingHandler; _logger = loggerFactory.CreateLogger <Record>(); }
public Admin(RecordingHandler recordingHandler, ILoggerFactory loggingFactory) { _recordingHandler = recordingHandler; _logger = loggingFactory.CreateLogger <Admin>(); }
public Playback(RecordingHandler recordingHandler, ILoggerFactory loggerFactory) { _recordingHandler = recordingHandler; _logger = loggerFactory.CreateLogger <Playback>(); }