public async Task StoreAnEntry() { //arrange const string longUrl = "a long url"; const string shortUrlKey = "a short url key"; var expireOn = new DateTime(2019, 7, 1, 8, 13, 10); int epochSeconds = AWSSDKUtils.ConvertToUnixEpochSeconds(expireOn); var dynamoDBContextMock = new Mock <IDynamoDBContext>(); var sut = new FromShortUrlRepository(dynamoDBContextMock.Object); //act await sut.Store(longUrl, shortUrlKey, expireOn); //assert dynamoDBContextMock .Verify( m => m.SaveAsync( It.Is <FromShortUrl>(u => u.ShortUrlKey == shortUrlKey && u.LongUrl == longUrl && u.ExpireOn == epochSeconds.ToString()), It.IsAny <CancellationToken>()), Times.Once);; }
public async Task FetchNonExistingLongUrl() { //arrange const string shortUrlKey = "a short url key"; var dynamoDBContextMock = new Mock <IDynamoDBContext>(); dynamoDBContextMock .Setup(m => m.LoadAsync <FromShortUrl>(shortUrlKey, It.IsAny <CancellationToken>())) .ReturnsAsync(null as FromShortUrl); var sut = new FromShortUrlRepository(dynamoDBContextMock.Object); //act var actual = await sut.FetchLongUrl(shortUrlKey); //assert actual.Should().BeNull(); }