public void EdgeCase_ApiErrorDoesntChangeUrl() { var expectedLink = "fakeurl"; yourlsApiMock.Setup(a => a.ShortenUrl(It.IsAny <string>())).Throws <Exception>(); var episode = fixture.Create <List <Episode> >(); sut = fixture.Create <YourlsLinkShortener>(); var actualEpisode = sut.ShortenAllLinks(episode); Assert.That(actualEpisode.Count, Is.EqualTo(episode.Count)); Assert.That(actualEpisode[0].Articles.Count, Is.EqualTo(episode[0].Articles.Count)); Assert.That(actualEpisode.SelectMany(ae => ae.Articles).All(a => a.Link != expectedLink)); }
public void HappyPath_EpisodesAreChanged() { var expectedLink = "fakeurl"; yourlsApiMock.Setup(a => a.ShortenUrl(It.IsAny <string>())).Returns(expectedLink); var episode = fixture.Create <List <Episode> >(); sut = fixture.Create <YourlsLinkShortener>(); var actualEpisode = sut.ShortenAllLinks(episode); Assert.That(actualEpisode.Count, Is.EqualTo(episode.Count)); //todo i need to add better comparer Assert.That(actualEpisode[0].Articles.Count, Is.EqualTo(episode[0].Articles.Count)); Assert.That(actualEpisode.SelectMany(ae => ae.Articles).All(a => a.Link == expectedLink)); }
public void EdgeCase_ApiAuthorizationError_SkipsChaingOtherUrls() { var expectedLink = "fakeurl"; yourlsApiMock.Setup(a => a.ShortenUrl(It.IsAny <string>())).Throws <UnauthorizedAccessException>(); var episode = fixture.Create <List <Episode> >(); sut = fixture.Create <YourlsLinkShortener>(); var actualEpisode = sut.ShortenAllLinks(episode); Assert.That(actualEpisode.Count, Is.EqualTo(episode.Count)); Assert.That(actualEpisode[0].Articles.Count, Is.EqualTo(episode[0].Articles.Count)); Assert.That(actualEpisode.SelectMany(ae => ae.Articles).All(a => a.Link != expectedLink)); yourlsApiMock.Verify(ya => ya.ShortenUrl(It.IsAny <string>()), Times.Once); }