public async Task Update_SupplyValidData_ReturnResponseDto() { #region Arrange var message = new CreateSubscriptionRequestDto { Email = "*****@*****.**", Details = new List <SubscriptionDetailDto> { new SubscriptionDetailDto { Catalogue = "catalogue", Key = "item", Operator = "=", Value = "BMW" } } }; var mockSubscriptionId = Guid.NewGuid().ToString(); var mocKSubscription = new Subscription { SubscriptionId = mockSubscriptionId }; _mockSubscriptionRepository.Setup(x => x.UpdateAsync(mocKSubscription, mockSubscriptionId)).ReturnsAsync(mocKSubscription); #endregion #region Act var result = await _subscriptionService.UpdateAsync(message, mockSubscriptionId, "100"); #endregion #region Assert Assert.NotNull(result); Assert.Equal(mockSubscriptionId, result.SubscriptionId); _mockCacheProvider.Verify(c => c.AddOrUpdateItem(It.IsAny <string>(), It.IsAny <object>()), Times.Once); #endregion }
public Task <CreateSubscriptionResponseDto> CreateAsync(CreateSubscriptionRequestDto request, string userId) { if (request is null) { throw new ArgumentNullException(nameof(request)); } if (request.Details == null || !request.Details.Any()) { throw new ArgumentException("Missing Details"); } return(CreateSubscriptionAsync(request, userId)); }
public async Task <IActionResult> PostAsync([Required] CreateSubscriptionRequestDto request, [Required][FromHeader(Name = "User-Id")] string userId) { if (!ModelState.IsValid) { return(BadRequest(ModelState.Values)); } var response = await _subscriptionService.CreateAsync(request, userId); response.Url = GetUrl(response.SubscriptionId); response.UserId = userId; return(Ok(response)); }
private async Task <CreateSubscriptionResponseDto> CreateSubscriptionAsync(CreateSubscriptionRequestDto request, string userId, string subscriptionId = null) { subscriptionId ??= Guid.NewGuid().ToString(); var subscription = new Subscription { Id = Guid.NewGuid().ToString(), CreatedOn = DateTime.Now, SubscriptionId = subscriptionId, UserId = userId, Email = request.Email, Details = request.Details.Select(x => new SubscriptionDetail { Catalogue = x.Catalogue, Key = x.Key, Operator = x.Operator, Value = x.Value }) }; var id = await _subscriptionRepository.CreateAsync(subscription); _cacheProvider.AddOrUpdateItem(subscriptionId, subscription); return(new CreateSubscriptionResponseDto { SubscriptionId = subscriptionId }); }
public async Task <CreateSubscriptionResponseDto> UpdateAsync(CreateSubscriptionRequestDto request, string subscriptionId, string userId) { if (request is null) { throw new ArgumentNullException(nameof(request)); } if (subscriptionId is null) { throw new ArgumentNullException(nameof(subscriptionId)); } if (userId is null) { throw new ArgumentNullException(nameof(userId)); } if (!await DeleteAsync(subscriptionId, userId)) { return(null); } return(await CreateSubscriptionAsync(request, userId, subscriptionId)); }