protected internal Uri createUri(int i) { var uri = CreateUrl.ToString(); uri += $"&switchOfCreate={i}"; return(new Uri(uri, UriKind.Relative)); }
public Result Validate(CreateUrl commandFixture) { var validationResult = Validator.Validate(commandFixture); return(validationResult.Succeeded ? Result.Ok() : Result.Fail(string.Join(Environment.NewLine, validationResult.ErrorMessages))); }
public void Validate_CorrectUrlPath_ReturnsOk(string path) { var commandFixture = new CreateUrl(path); var sut = new CreateUrlValidator(); var result = sut.Validate(commandFixture); result.IsSuccess.Should().BeTrue(); }
public void Validate_InCorrectUrlPath_ReturnsFail(string path) { var commandFixture = new CreateUrl(path); var sut = new CreateUrlValidator(); var result = sut.Validate(commandFixture); result.IsFailure.Should().BeTrue(); result.Error.Should().NotBeNullOrEmpty(); }
public async Task <IActionResult> ShortenUrl([FromBody] CreateUrl model) { var result = await this.urlService.ShortenUrl(model.LongUrl, model.ExpireDate); var response = this.mapper.Map <ResponseUrl>(result); response.ShortUrl = this.FormatShortUrlResponse(response.ShortUrl); return(this.Ok(response)); }
public Task <Result <string> > Handle( CreateUrl request, CancellationToken cancellationToken) { var url = new Url(request.Id, request.Path); return(_createUrlValidator .Validate(request) .OnSuccess(() => _urlDao .Save(url) .OnSuccess(() => url.ShortPath), false)); }
public async Task Handle_ValidatorReturnsFailure_ReturnsFailure(CreateUrl commandFixture, string errorMessageFixture) { var urlDaoMock = A.Fake <IUrlDao>(); var createUrlValidatorMock = A.Fake <ICreateUrlValidator>(); A.CallTo(() => createUrlValidatorMock .Validate(commandFixture)) .Returns(Result.Fail <CreateUrl>(errorMessageFixture)); var sut = new CreateUrlHandler(urlDaoMock, createUrlValidatorMock); var result = await sut.Handle(commandFixture, CancellationToken.None); result.IsFailure.Should().BeTrue(); result.Error.Should().Be(errorMessageFixture); }
/// <summary> /// Returns a new url that will replace, or add a parameter /// to the one that is currently being used. /// </summary> /// <param name="absoluteUrl">The root url to add parameters too.</param> /// <param name="parameters">Existing list of parameters to be altered.</param> /// <param name="key">A parameter key not to be removed from the list of parameters.</param> /// <returns>A new url containing the parameters provided and the new key and value.</returns> protected virtual string GetNewUrl(string absoluteUrl, NameValueCollection parameters, string key) { List <string> list = new List <string>(); // keys beginning with an _ will not be added to links, unless it was in the parameter. if (parameters != null) { foreach (string index in parameters.Keys) { if (index != null && (index.StartsWith("_") == false || index.Equals(key))) { if (parameters[index] != null) { list.Add(String.Format("{0}={1}", index, HttpUtility.UrlEncode(parameters[index]))); } else { list.Add(index); } } } } if (CreateUrl != null) { try { // This is an external method. Trap for exceptions and // use default behavior if there is a failure. return(CreateUrl(list)); } catch (Exception ex) { EventLog.Debug(ex); EventLog.Warn("Exception calling CreateUrl method '{0}' with list '{1}'.", CreateUrl.ToString(), String.Join(", ", list)); } } return(String.Format("{0}?{1}", absoluteUrl, String.Join("&", list.ToArray()))); }
public async Task Handle_DaoReturnsFailure_ReturnsFailure(CreateUrl commandFixture, string errorMessageFixture) { var urlDaoMock = A.Fake <IUrlDao>(); A.CallTo(() => urlDaoMock .Save(A <Url> .That .Matches(url => url.Path.Equals(commandFixture.Path) && url.Id.Equals(commandFixture.Id)))) .Returns(Task.FromResult(Result.Fail(errorMessageFixture))); var createUrlValidatorMock = A.Fake <ICreateUrlValidator>(); A.CallTo(() => createUrlValidatorMock .Validate(commandFixture)) .Returns(Result.Ok(commandFixture)); var sut = new CreateUrlHandler(urlDaoMock, createUrlValidatorMock); var result = await sut.Handle(commandFixture, CancellationToken.None); result.IsFailure.Should().BeTrue(); result.Error.Should().Be(errorMessageFixture); }
public async Task Handle_DaoReturnsOk_ReturnOk(CreateUrl commandFixture) { var urlDaoMock = A.Fake <IUrlDao>(); A.CallTo(() => urlDaoMock .Save(A <Url> .That .Matches(url => url.Path.Equals(commandFixture.Path) && url.Id.Equals(commandFixture.Id)))) .Returns(Task.FromResult(Result.Ok())); var createUrlValidatorMock = A.Fake <ICreateUrlValidator>(); A.CallTo(() => createUrlValidatorMock .Validate(commandFixture)) .Returns(Result.Ok(commandFixture)); var sut = new CreateUrlHandler(urlDaoMock, createUrlValidatorMock); var result = await sut.Handle(commandFixture, CancellationToken.None); result.IsSuccess.Should().BeTrue(); string expectedValue = commandFixture.Id.ToString("N"); result.Value.Should().Be(expectedValue); }
private static HttpResponseMessage HttpResponseMessage(PlatformLoyaltyServiceRequestType requestType, PlatformLoyaltyServiceRequest request, string method) { UriBuilder uri; StringContent content = null; switch (requestType) { case PlatformLoyaltyServiceRequestType.AllLoyalties: uri = CreateUrl.GetUrl(requestType); break; case PlatformLoyaltyServiceRequestType.GetLoyaltyById: uri = CreateUrl.GetUrl(requestType, request.Loyalty.Id); break; case PlatformLoyaltyServiceRequestType.CreateLoyalty: uri = CreateUrl.GetUrl(requestType); content = HttpClientFactory.JsonContentFactory.CreateJsonContent(request.Loyalty); break; case PlatformLoyaltyServiceRequestType.UpdateLoyaltyById: uri = CreateUrl.GetUrl(requestType, request.Loyalty.Id); content = HttpClientFactory.JsonContentFactory.CreateJsonContent(request.Loyalty); break; case PlatformLoyaltyServiceRequestType.AllTiers: uri = CreateUrl.GetUrl(requestType, request.Loyalty.Id); break; case PlatformLoyaltyServiceRequestType.GetTierById: uri = CreateUrl.GetUrl(requestType, request.Tier.ProgramId, request.Tier.Id); break; case PlatformLoyaltyServiceRequestType.CreateTier: uri = CreateUrl.GetUrl(requestType, request.Tier.ProgramId); content = HttpClientFactory.JsonContentFactory.CreateJsonContent(request.Tier); break; case PlatformLoyaltyServiceRequestType.UpdateTierById: uri = CreateUrl.GetUrl(requestType, request.Tier.ProgramId, request.Tier.Id); content = HttpClientFactory.JsonContentFactory.CreateJsonContent(request.Tier); break; case PlatformLoyaltyServiceRequestType.AllRewards: uri = CreateUrl.GetUrl(requestType, request.Loyalty.Id); break; case PlatformLoyaltyServiceRequestType.GetRewardById: uri = CreateUrl.GetUrl(requestType, request.Reward.ProgramId, request.Reward.Id); break; case PlatformLoyaltyServiceRequestType.CreateReward: uri = CreateUrl.GetUrl(requestType, request.Reward.ProgramId); content = HttpClientFactory.JsonContentFactory.CreateJsonContent(request.Reward); break; case PlatformLoyaltyServiceRequestType.UpdateRewardById: uri = CreateUrl.GetUrl(requestType, request.Reward.ProgramId, request.Reward.Id); content = HttpClientFactory.JsonContentFactory.CreateJsonContent(request.Reward); break; case PlatformLoyaltyServiceRequestType.AllUsers: uri = CreateUrl.GetUrl(requestType); break; default: throw new ArgumentOutOfRangeException(nameof(requestType), requestType, null); } var responseMessage = HttpClientFactory.PerformRequest(method, uri, content, GetHttpClient()); return(responseMessage); }