public static void AssemblyInitialize(TestContext context) { // set the http message handler factory to the mode we want for the entire assmebly test execution MessageHandlerFactory.Mode = MessageHandlerMode.Fake; // folders where mock responses are stored and where captured response should be saved var mockFolder = context.DeploymentDirectory; // the folder where the unit tests are running var captureFolder = Path.Combine(context.TestRunDirectory, @"..\..\MockResponses\"); // kinda hacky but this should be the solution folder // here we don't want to serialize or include our api key in response lookups so // pass a lambda that will indicate to the serialzier to filter that param out var store = new FileSystemResponseStore(mockFolder, captureFolder, (name, value) => _ignoredParameterNames.Contains(name, StringComparer.InvariantCultureIgnoreCase)); Handler = MessageHandlerFactory.CreateMessageHandler(store); }
public static void AssemblyInitialize(TestContext context) { // set the http message handler factory to the mode we want for the entire assmebly test execution MessageHandlerFactory.Mode = MessageHandlerMode.Fake; // setup IOC so test classes can get the shared message handler ServiceLocator.SetLocatorProvider(() => SimpleIoc.Default); // folders where fake responses are stored and where captured response should be saved var fakeFolder = context.DeploymentDirectory; // the folder where the unit tests are running var captureFolder = Path.Combine(context.TestRunDirectory, @"..\..\FakeResponses\"); // kinda hacky but this should be the solution folder // here we don't want to serialize or include our api key in response lookups so // pass a lambda that will indicate to the serialzier to filter that param out var store = new FileSystemResponseStore(fakeFolder, captureFolder, (name, value) => name.Equals("key", StringComparison.InvariantCultureIgnoreCase)); SimpleIoc.Default.Register<HttpMessageHandler>(() => MessageHandlerFactory.CreateMessageHandler(store)); }
public async Task CanGetSimpleJsonResult() { var store = new FileSystemResponseStore(TestContext.DeploymentDirectory, Path.Combine(TestContext.TestRunDirectory, @"..\..\FakeResponses\")); var handler = MessageHandlerFactory.CreateMessageHandler(store); using (var client = new HttpClient(handler, true)) { client.BaseAddress = new Uri("http://openstates.org/api/v1/"); string key = CredentialStore.RetrieveObject("sunlight.key.json").Key; client.DefaultRequestHeaders.Add("X-APIKEY", key); var response = await client.GetAsync("metadata/mn"); response.EnsureSuccessStatusCode(); dynamic result = await response.Content.Deserialize<dynamic>(); Assert.IsNotNull(result); Assert.AreEqual("Minnesota", result.name); } }