private static NameResponse GetRandomNameResponse(string name, string surname, string gender, string region, HttpStatusCode statusCode = HttpStatusCode.OK) { var handlerMock = CreateMessageHandlerMock(statusCode, MakeJson(name, surname, gender, region), ExpectedUri); var feed = new RandomNameJsonFeed(handlerMock.Object); return(feed.GetRandomNameResponse()); }
public void GetRandomNameWorksAgainstLiveApi() { var feed = new RandomNameJsonFeed(); var name = feed.GetRandomFullName(); Assert.IsNotNull(name, "Returned name was null."); // Since we don't know what the live server will return, just do a very simple test. StringAssert.IsMatch(@"^(\w*) (\w*)$", name, "Valid name was not returned"); }
public void GetHttpClientWorksWithoutProvidedHandler() { // This can also be proven working properly by manually running the integration tests for this feed. var feed = new RandomNameJsonFeed(); Assert.IsNull(feed.Handler); feed.GetHttpClient(); Assert.Pass("No exception was thrown, so HttpClient was constructed successfully."); }
public void GetRandomNameResponseWorksThrowsWhenJson() { var handlerMock = CreateMessageHandlerMock(HttpStatusCode.OK, "This is not { valid json ].", ExpectedUri); var feed = new RandomNameJsonFeed(handlerMock.Object); var exception = Assert.Throws <JsonFeedException>(() => feed.GetRandomNameResponse()); StringAssert.Contains($"Failed to deserialize response ({ExpectedUri}) due to error", exception.Message); StringAssert.Contains("Unexpected character", exception.Message); // This snippet is from Newtonsoft, so it could potentially change in future versions. }
public void GetRandomNameResponseWorksAgainstLiveApi() { var feed = new RandomNameJsonFeed(); var nameDto = feed.GetRandomNameResponse(); Assert.IsNotNull(nameDto, "Returned DTO was null."); // Since we don't know what the live server will return, just do a very simple test. Assert.IsFalse(string.IsNullOrWhiteSpace(nameDto.FirstName), "No FirstName was returned."); Assert.IsFalse(string.IsNullOrWhiteSpace(nameDto.Surname), "No Surname was returned."); }
public void GetRandomNameWorksHandlesValidResponse() { const string firstName = "Grace"; const string surName = "Hopper"; var handlerMock = CreateMessageHandlerMock(HttpStatusCode.OK, MakeJson(firstName, surName, "female", "USA"), ExpectedUri); var feed = new RandomNameJsonFeed(handlerMock.Object); var name = feed.GetRandomFullName(); Assert.AreEqual($"{firstName} {surName}", name, "Name was wrong."); }