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 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."); }