public void ThrowsExceptionWhenTrainerAndUserAreAlreadyConnected() { var context = GetContext(); var trainerId = context.Trainers.First().Id; var userId = context.Users.First().Id; context.TrainingRequests.Add(new Domain.Entities.TrainingRequest { TrainerId = trainerId, UserId = userId }); context.Trainers.Include(t => t.TrainerUsers) .First() .TrainerUsers .Add(new Domain.TrainerUser { TrainerId = trainerId, UserId = userId }); context.SaveChanges(); var requestId = context.TrainingRequests.First().Id; _trainerRepository = new Macrotracker.Users.Infrastructure.DataAccess.EfDataAccess.Repositories.EfTrainerRepository(context); Assert.Throws <EntityAlreadyExistsException>(() => _trainerRepository.AcceptTrainingRequest(requestId)); }
public void AcceptTrainingRequestWorks() { var context = GetContext(); var trainerId = context.Trainers.First().Id; var userId = context.Users.First().Id; context.TrainingRequests.Add(new Domain.Entities.TrainingRequest { TrainerId = trainerId, UserId = userId }); context.SaveChanges(); var requestId = context.TrainingRequests.First().Id; _trainerRepository = new Macrotracker.Users.Infrastructure.DataAccess.EfDataAccess.Repositories.EfTrainerRepository(context); _trainerRepository.AcceptTrainingRequest(requestId); context.TrainingRequests.Find(requestId).IsActive.Should().BeFalse(); context.Trainers .Include(t => t.TrainerUsers) .Where(t => t.Id == trainerId) .First() .TrainerUsers .Any().Should().BeTrue(); }
public Task <Unit> Handle(AcceptTrainingRequest request, CancellationToken cancellationToken) { _trainerRepo.AcceptTrainingRequest(request.RequestId); var requestEntity = _requestRepo.Get(request.RequestId); var user = requestEntity.User; var trainer = requestEntity.Trainer; _bus.Publish(new TrainingRequestAccepted { TrainerEmail = trainer.Email, TrainerFirstName = trainer.FirstName, TrainerLastName = trainer.LastName, UserFirstName = user.FirstName, UserLastName = user.LastName, UserUsername = user.Username }); return(Unit.Task); }
public void ThrowsExceptionWhenRequestedGuidDoesntExist() { _trainerRepository = new Macrotracker.Users.Infrastructure.DataAccess.EfDataAccess.Repositories.EfTrainerRepository(GetContext()); Assert.Throws <EntityNotFoundException>(() => _trainerRepository.AcceptTrainingRequest(new Guid())); }