public async Task Post_ShouldReturn_SameCount() { //Arrange var urlMapInput = new UrlMapInput() { Id = Guid.NewGuid().ToString(), Title = "Test", Description = "Test", RawUrl = "http://test1.com" }; var urlMapOutputsBeforeInsert = await _controller.Get(new UrlMapFilterInput() { Take = Int32.MaxValue }); //Act var urlMapOutput = await _controller.Post(urlMapInput); var urlMapOutputsAfterInsert = await _controller.Get(new UrlMapFilterInput() { Take = Int32.MaxValue }); //Assert Assert.Equal(urlMapOutputsBeforeInsert.Items.Count, urlMapOutputsAfterInsert.Items.Count); }
public async Task <UrlMapOutput> Create(UrlMapInput input) { var existingUrlMap = await _urlMapRepository.GetAll().AsNoTracking() .FirstOrDefaultAsync(x => x.RawUrl == input.RawUrl); if (existingUrlMap != null) { //throw new Exception($"An existing item with same url already exist"); return(new UrlMapOutput(existingUrlMap)); } var urlMap = await _urlMapRepository.CreateAsync(new UrlMap() { Id = Guid.NewGuid().ToString(), Title = input.Title, Description = input.Description, RawUrl = input.RawUrl, DeviceInfo = UserAgent }); urlMap.ShortenUrl = ShortenUrlHelper.Encode(urlMap.Identity); urlMap = await _urlMapRepository.UpdateAsync(urlMap); return(new UrlMapOutput(urlMap)); }
public async Task <UrlMapOutput> Update(UrlMapInput input) { var existingUrlMap = await _urlMapRepository.GetAll() .FirstOrDefaultAsync(x => x.RawUrl == input.RawUrl); if (existingUrlMap != null) { existingUrlMap.Title = input.Title; existingUrlMap.Description = input.Description; existingUrlMap = await _urlMapRepository.UpdateAsync(existingUrlMap); return(new UrlMapOutput(existingUrlMap)); } var urlMap = await _urlMapRepository.GetAsync(input.Id); urlMap.Title = input.Title; urlMap.Description = input.Description; urlMap.DeviceInfo = UserAgent; urlMap.ShortenUrl = ShortenUrlHelper.Encode(urlMap.Identity); urlMap = await _urlMapRepository.UpdateAsync(urlMap); return(new UrlMapOutput(urlMap)); }
public async Task <UrlMapOutput> Put(string id, [FromBody] UrlMapInput input) { if (id != input.Id) { throw new Exception("Item does not exist!"); } return(await _tinyUrlService.Update(input)); }
public async Task <IActionResult> OnGetAsync(string id) { if (id == null) { return(NotFound()); } var urlMapOutput = await _tinyUrlService.Get(id); UrlMap = new UrlMapInput() { Id = urlMapOutput.Id, Title = urlMapOutput.Title, Description = urlMapOutput.Description, RawUrl = urlMapOutput.RawUrl, }; if (UrlMap == null) { return(NotFound()); } return(Page()); }
public async Task GetAll_ShouldReturn_CreatedItem() { //Arrange var urlMapInput = new UrlMapInput() { Id = Guid.NewGuid().ToString(), Title = "Test", Description = "Test", RawUrl = "http://test.co.com.bd" }; var urlMapPageOutputBefore = await _tinyUrlService.GetAll(new UrlMapFilterInput()); //Act var urlMapOutput = await _tinyUrlService.Create(urlMapInput); var urlMapPageOutputAfter = await _tinyUrlService.GetAll(new UrlMapFilterInput()); //Assert Assert.NotNull(urlMapOutput); Assert.NotNull(urlMapOutput.ShortenUrl); Assert.Equal(urlMapPageOutputBefore.TotalCount + 1, urlMapPageOutputAfter.TotalCount); Assert.NotEqual(0, urlMapOutput.Identity); }
public async Task <UrlMapOutput> OnPostAsync(UrlMapInput input) { return(await _tinyUrlService.Create(input)); }
public async Task <UrlMapOutput> Post([FromBody] UrlMapInput input) { return(await _tinyUrlService.Create(input)); }