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()); }
public void Can_Minify_Url(string originalUrl) { string miniUrl = EarlMiniProvider.MinifyUrl(originalUrl); Assert.IsNotNullOrEmpty(miniUrl); Assert.IsTrue(miniUrl.Length == ExpectedLenthOfUnsecureMiniUrl); }
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); }
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); }
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)); }
public void When_ExpandingUrl_GivenAnEmptyMiniUrl_ThrowsException(string miniUrl) { EarlMiniProvider.MinifyUrl(string.Empty); }
public void When_MinifyingUrl_GivenAnEmptyUrl_ThrowsException(string url) { EarlMiniProvider.MinifyUrl(string.Empty); }