Exemple #1
0
        public async void CreateUrlTest_WhenEntryAlreadyExistsForSameLongUrl(string longUrl, string shortUrlCode, string userId)
        {
            var mockRepo   = new Mock <IUrlRepository>();
            var mockLogger = new Mock <ILogger <UrlShorteningService> >();

            mockRepo.Setup(r => r.GetRedirectOptimizedUrl(It.IsAny <string>(), It.IsAny <string>()))
            .Returns(Task.FromResult(new Url("", "", longUrl)));

            var service = new UrlShorteningService(_settings, mockRepo.Object, new Mock <ICacheService>().Object, mockLogger.Object);
            var result  = await service.CreateUrl(longUrl, userId);

            Assert.Equal(shortUrlCode, result?.Data);
        }
Exemple #2
0
        public async void CreateUrlTest_ThrowsException(string longUrl, string shortUrlCode, string userId)
        {
            string exMsg      = "Test Exception";
            var    mockRepo   = new Mock <IUrlRepository>();
            var    mockLogger = new Mock <ILogger <UrlShorteningService> >();

            mockRepo.Setup(r => r.GetRedirectOptimizedUrl(It.IsAny <string>(), It.IsAny <string>()))
            .Throws(new Exception(exMsg));

            var service = new UrlShorteningService(_settings, mockRepo.Object, new Mock <ICacheService>().Object, mockLogger.Object);
            var result  = await service.CreateUrl(longUrl, userId);

            Assert.Equal(exMsg, result?.Error);
        }
Exemple #3
0
        public async void CreateUrlTest_WhenEntryAlreadyExistsForAnotherLongUrl_AndAllReTriesFail(string longUrl, string errorMessage, string userId)
        {
            var mockRepo   = new Mock <IUrlRepository>();
            var mockLogger = new Mock <ILogger <UrlShorteningService> >();

            mockRepo.SetupSequence(r => r.GetRedirectOptimizedUrl(It.IsAny <string>(), It.IsAny <string>()))
            .Returns(Task.FromResult(new Url("", "", Guid.NewGuid().ToString())))
            .Returns(Task.FromResult(new Url("", "", Guid.NewGuid().ToString())))
            .Returns(Task.FromResult(new Url("", "", Guid.NewGuid().ToString())))
            .Returns(Task.FromResult(new Url("", "", Guid.NewGuid().ToString())))
            .Returns(Task.FromResult(new Url("", "", Guid.NewGuid().ToString())))
            .Returns(Task.FromResult(new Url("", "", Guid.NewGuid().ToString())))
            .Returns(Task.FromResult(new Url("", "", Guid.NewGuid().ToString())))
            .Returns(Task.FromResult(new Url("", "", Guid.NewGuid().ToString())));

            var service = new UrlShorteningService(_settings, mockRepo.Object, new Mock <ICacheService>().Object, mockLogger.Object);
            var result  = await service.CreateUrl(longUrl, userId);

            Assert.Equal(false, result?.Success);
            Assert.Equal(errorMessage, result?.Error);
        }