public async Task Consume_InstructorDoesExist_DoesNotCreateAnother() { var @event = new InstructorAddedEvent() { ClubId = Guid.NewGuid(), UserId = Guid.NewGuid() }; using (var context = _factory.CreateContext()) { context.Clubs.Add(new Club() { ClubId = @event.ClubId }); context.Instructors.Add(new Instructor() { ClubId = @event.ClubId, InstructorId = @event.UserId }); context.SaveChanges(); } await SendEvent(@event); using (var context = _factory.CreateContext()) { Assert.That(context.Instructors.Count(), Is.EqualTo(1)); } }
public async Task <Role> AddInstructorAsync(Guid clubId, Guid instructorId) { await IsAdminIn(clubId); var role = await _context.Roles.FindOrThrowAsync(instructorId, clubId); if (role.ClubSubscriptionId == null) { throw new QueryException("User is not member in club"); } if (role.UserRole == "Member") { role.UserRole = "Instructor"; _context.Roles.Update(role); var @event = new InstructorAddedEvent() { ClubId = clubId, UserId = instructorId }; await _eventService.SaveEventAndDbContextChangesAsync(@event); await _eventService.PublishEventAsync(@event); } return(role); }
public async Task Consume_ClubDoesNotExist_DoesNotCreate() { var @event = new InstructorAddedEvent() { ClubId = Guid.NewGuid(), UserId = Guid.NewGuid() }; await SendEvent(@event); using (var context = _factory.CreateContext()) { Assert.That(context.Instructors.Count(), Is.EqualTo(0)); } }