Esempio n. 1
0
        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);;
        }
Esempio n. 2
0
        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();
        }