Exemplo n.º 1
0
        public async Task RetrieveOriginalUrl_HashIdIsMatchingRecords_ReturnOriginalUrl()
        {
            _shortLinkServiceMock.Setup(s => s.GetOriginalUrl("XUDH")).ReturnsAsync("https://dummy.com");

            var sut    = new ShortLinkController(_shortLinkServiceMock.Object);
            var result = await sut.RetrieveOriginalUrl("XUDH").ConfigureAwait(false);

            _shortLinkServiceMock.VerifyAll();
            Assert.Equal("https://dummy.com", result.Value);
        }
Exemplo n.º 2
0
        public async Task CreateShortLink_InvalidUrlFormat_ReturnBadRequestResponse()
        {
            var sut    = new ShortLinkController(_shortLinkServiceMock.Object);
            var result = await sut.CreateShortLink(new CreateShortLinkRequest { UrlString = "xyz" }).ConfigureAwait(false);

            var statusCodeResult = result.Result as StatusCodeResult;

            Assert.Equal(400, statusCodeResult.StatusCode);
            _shortLinkServiceMock.Verify(s => s.CreateShortLink(It.IsAny <string>()), Times.Never);
        }
Exemplo n.º 3
0
        public async Task CreateShortLink_ValidUrlFormat_CallShortLinkService(string actualUrl, string expectedUrl)
        {
            _shortLinkServiceMock.Setup(s => s.CreateShortLink(expectedUrl)).ReturnsAsync(expectedUrl);

            var sut    = new ShortLinkController(_shortLinkServiceMock.Object);
            var result = await sut.CreateShortLink(new CreateShortLinkRequest { UrlString = actualUrl }).ConfigureAwait(false);

            _shortLinkServiceMock.VerifyAll();
            Assert.Equal(expectedUrl, result.Value);
        }
Exemplo n.º 4
0
        public async Task GotoShortLinkOriginalAddress_HashIdIsNotMatchingRecords_ReturnBadRequest()
        {
            _shortLinkServiceMock.Setup(s => s.GetOriginalUrl(It.IsAny <string>())).ReturnsAsync((string)null);

            var sut    = new ShortLinkController(_shortLinkServiceMock.Object);
            var result = await sut.GotoShortLinkOriginalAddress("XUDH").ConfigureAwait(false);

            var statusCodeResult = result.Result as StatusCodeResult;

            Assert.Equal(400, statusCodeResult.StatusCode);
        }
Exemplo n.º 5
0
        public async Task GotoShortLinkOriginalAddress_HashIdIsMatchingRecords_RedirectToUrlAddress()
        {
            _shortLinkServiceMock.Setup(s => s.GetOriginalUrl("XUDH")).ReturnsAsync("https://dummy.com");

            var sut    = new ShortLinkController(_shortLinkServiceMock.Object);
            var result = await sut.GotoShortLinkOriginalAddress("XUDH").ConfigureAwait(false);

            _shortLinkServiceMock.VerifyAll();
            var redirectResult = result.Result as RedirectResult;

            Assert.NotNull(redirectResult);
            Assert.Equal("https://dummy.com", redirectResult.Url);
        }
Exemplo n.º 6
0
        public void TestShortLinkValidityError(string link)
        {
            using (var context = new ApiContext(options))
            {
                // Arrange
                var shortLinkController = new ShortLinkController(context);

                // Act
                var decodedShortLinkPair = shortLinkController.Decode(link);
                var badResult            = decodedShortLinkPair.Result as BadRequestObjectResult;

                // Assert
                Assert.Equal("This isn't a short link. Please check your spelling and try again.", badResult.Value);
            }
        }
Exemplo n.º 7
0
        public void TestDecode(string link)
        {
            using (var context = new ApiContext(options))
            {
                // Arrange
                var shortLinkController = new ShortLinkController(context);

                // Act
                var shortLinkPair        = shortLinkController.Encode(link);
                var decodedShortLinkPair = shortLinkController.Decode(shortLinkPair.Value.ShortenedLink);

                // Assert
                Assert.IsType <ShortLinkPair>(decodedShortLinkPair.Value);
                Assert.Equal("http://example.com/", decodedShortLinkPair.Value.LongLink);
            }
        }
Exemplo n.º 8
0
        public void TestEncode(string validLink, string invalidLink)
        {
            using (var context = new ApiContext(options))
            {
                // Arrange
                var shortLinkController = new ShortLinkController(context);

                // Act
                var validShortLinkPair   = shortLinkController.Encode(validLink);
                var invalidShortLinkPair = shortLinkController.Encode(invalidLink);

                // Assert
                Assert.IsType <ShortLinkPair>(validShortLinkPair.Value);
                Assert.Equal("http://example.com/", validShortLinkPair.Value.LongLink);
                Assert.Null(invalidShortLinkPair.Value);
            }
        }