public async Task UpdateSubscription_SubscriptionDoesNotExist_DatabaseFails() { var request = new UpdateClubSubscriptionRequest() { Name = "Supership++", Price = 50, }; Assert.ThrowsAsync <QueryException>(async() => await _mutations.UpdateClubSubscriptionAsync(Guid.Empty, request)); await _publish.Received(0).Publish(Arg.Any <ClubSubscriptionCreatedEvent>()); }
public async Task <ClubSubscription> UpdateClubSubscriptionAsync(Guid id, UpdateClubSubscriptionRequest request) { var subscription = await _context.ClubSubscriptions.FindOrThrowAsync(id); await IsAdminIn(subscription.ClubId); _mapper.Map(request, subscription); _context.ClubSubscriptions.Update(subscription); var @event = _mapper.Map <ClubSubscriptionUpdatedEvent>(subscription); await _eventService.SaveEventAndDbContextChangesAsync(@event); await _eventService.PublishEventAsync(@event); return(subscription); }
public async Task UpdateSubscription_SubscriptionDoesExist_SubscriptionAreUpdated() { //Arrange var club = new Club() { ClubId = Guid.NewGuid() }; var subscription = new ClubSubscription() { ClubId = club.ClubId, Price = 25, Name = "Cheapies" }; using (var context = _factory.CreateContext()) { context.Clubs.Add(club); context.ClubSubscriptions.Add(subscription); context.SaveChanges(); } //Act var request = new UpdateClubSubscriptionRequest() { Name = "Supership++", Price = 50, }; await _mutations.UpdateClubSubscriptionAsync(subscription.ClubSubscriptionId, request); //Assert using (var context = _factory.CreateContext()) { var updatedSubscription = context.ClubSubscriptions.FirstOrDefault(subscription => subscription.Name == request.Name && subscription.Price == request.Price && subscription.ClubId == club.ClubId); Assert.That(updatedSubscription, Is.Not.Null); Assert.That(context.ClubSubscriptions.Count(), Is.EqualTo(1)); } await _publish.Received(1).Publish(Arg.Any <ClubSubscriptionUpdatedEvent>()); }