Exemplo n.º 1
0
        public IHttpActionResult Minify([FromBody] JToken jsonBody)
        {
            var url = jsonBody.Value <string>("url");

            try
            {
                if (string.IsNullOrWhiteSpace(url))
                {
                    return(BadRequest("The parameter url is empty"));
                }

                var originalUri = new Uri(url);

                string miniUrl = EarlMiniProvider.MinifyUrl(originalUri);

                if (!string.IsNullOrWhiteSpace(miniUrl))
                {
                    return(Ok(new
                    {
                        miniUrl
                    }));
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex);

                return(InternalServerError( ));
            }

            return(InternalServerError());
        }
Exemplo n.º 2
0
        public void Can_Minify_Url(string originalUrl)
        {
            string miniUrl = EarlMiniProvider.MinifyUrl(originalUrl);

            Assert.IsNotNullOrEmpty(miniUrl);
            Assert.IsTrue(miniUrl.Length == ExpectedLenthOfUnsecureMiniUrl);
        }
Exemplo n.º 3
0
        public void Should_RetriveAlreadyExistingMiniUrl_WhenGivenAPreviouslyTriedUrl()
        {
            const string expectedAlreadyExistingUrl = "http://url.mini/abcd1234";

            //Arrange
            _repositoryMock.Setup(x => x.GetMiniUrl(It.IsAny <string>()))
            .Returns(expectedAlreadyExistingUrl);

            EarlMiniProvider.InitializeTestingConfiguration(_repositoryMock.Object);

            //Act
            string miniUrl = EarlMiniProvider.MinifyUrl("https://www.sometestingurl.com");

            //Assert
            Assert.AreEqual(expectedAlreadyExistingUrl, miniUrl);

            _repositoryMock.Verify(x => x.SaveMiniUrl(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>()), Times.Never);
            _repositoryMock.Verify(x => x.GetSqlBinaryCheckSum(It.IsAny <string>()), Times.Never);
        }
Exemplo n.º 4
0
        public void Can_MinifyUrl_UsingSecureTemplate(string url)
        {
            //Arrange
            _repositoryMock.Setup(x => x.GetSqlBinaryCheckSum(It.IsAny <string>()))
            .Returns(-123456);

            _repositoryMock.Setup(x => x.GetMiniUrl(It.IsAny <string>()))
            .Returns(string.Empty);

            _repositoryMock.Setup(x => x.SaveMiniUrl(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>()))
            .Returns(true);

            EarlMiniProvider.InitializeTestingConfiguration(_repositoryMock.Object);

            //Act
            string miniUrl = EarlMiniProvider.MinifyUrl(url, true);

            //Assert
            Assert.IsNotNullOrEmpty(miniUrl);
            Assert.IsTrue(miniUrl.Length == ExpectedLenthOfSecureMiniUrl);
        }
Exemplo n.º 5
0
        public void Should_TryConfiguredMaxTries_AtMost_WhenGeneratingUniqueFragment()
        {
            //Arrange
            _repositoryMock.Setup(x => x.GetSqlBinaryCheckSum(It.IsAny <string>()))
            .Returns(-123456);

            _repositoryMock.Setup(x => x.GetMiniUrl(It.IsAny <string>()))
            .Returns(string.Empty);

            _repositoryMock.Setup(x => x.SaveMiniUrl(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>()))
            .Returns(false);

            EarlMiniProvider.InitializeTestingConfiguration(_repositoryMock.Object);

            //Act
            string miniUrl = EarlMiniProvider.MinifyUrl("https://www.google.com");

            //Assert
            Assert.IsNullOrEmpty(miniUrl);

            _repositoryMock.Verify(x => x.GetMiniUrl(It.IsAny <string>()), Times.Exactly(EarlMiniProvider.MaxNumberOfTriesToGenerateUniqueFragment));
        }
Exemplo n.º 6
0
 public void When_ExpandingUrl_GivenAnEmptyMiniUrl_ThrowsException(string miniUrl)
 {
     EarlMiniProvider.MinifyUrl(string.Empty);
 }
Exemplo n.º 7
0
 public void When_MinifyingUrl_GivenAnEmptyUrl_ThrowsException(string url)
 {
     EarlMiniProvider.MinifyUrl(string.Empty);
 }