public void FailsGracefullyWhenIncorrect() { var ipMoq = new Mock <IpProvider>(); ipMoq.Setup(x => x.GetIp(It.IsAny <HttpRequestMessage>())) .Returns("192.168.0.1"); var authorizeRequestHandler = new AuthorizeRequestHandler { InnerHandler = new TestHandler((r, c) => TestHandler.Return200()), DocumentStore = InitDatabase(), IpProvider = ipMoq.Object, ApiKeyProvider = new ApiKeyProvider() }; var client = new HttpClient(authorizeRequestHandler); var response = client.GetAsync("http://api.mapserv.utah.gov/api/v1/Geocode/326 east south temple/84111?apiKey=ipIsWrong").Result; var result = response.Content.ReadAsAsync <ResultContainer>().Result; Assert.That(result.Status, Is.EqualTo((int)HttpStatusCode.BadRequest)); Assert.That(result.Message.StartsWith("Invalid API key.")); }
public int ProductionKey_IsValid(string pattern, string url) { //arrange const ApiKey.ApplicationType applicationType = ApiKey.ApplicationType.Browser; var data = new ApiKeyData { AppStatus = ApiKey.ApplicationStatus.Production, UrlPattern = pattern }; using (var s = DocumentStore.OpenSession()) { s.Store(new ApiKey("key") { AccountId = "testaccount", CreatedAtTicks = 634940675825121039, ApiKeyStatus = ApiKey.KeyStatus.Active, Type = applicationType, AppStatus = ApiKey.ApplicationStatus.Production, RegexPattern = CommandExecutor.ExecuteCommand(new FormatKeyPatternCommand(applicationType, data)), Pattern = null, IsMachineName = false, Deleted = false }, "testkey"); s.SaveChanges(); } var content = new ObjectContent <ResultContainer <GeocodeAddressResult> >(new ResultContainer <GeocodeAddressResult> { Result = new GeocodeAddressResult { InputAddress = "tESTING", Score = 100 } }, new JsonMediaTypeFormatter()); content.Headers.Add("X-Type", typeof(ResultContainer <GeocodeAddressResult>).ToString()); var contentMoq = new Mock <HttpContentProvider>(); contentMoq.Setup(x => x.GetResponseContent(It.IsAny <HttpResponseMessage>())) .Returns(content); var handler = new AuthorizeRequestHandler { DocumentStore = DocumentStore, InnerHandler = new TestHandler((r, c) => TestHandler.Return200()), ApiKeyProvider = new ApiKeyProvider() }; var client = new HttpClient(handler); client.DefaultRequestHeaders.Add("Referrer", new[] { url }); client.DefaultRequestHeaders.Add("Referer", new[] { url }); var result = client.GetAsync("http://webapi/v1/Geocode/326 east south temple/84111?apiKey=key") .Result; return((int)result.StatusCode); }