コード例 #1
0
        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));
        }
コード例 #2
0
        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();
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        public void ThrowsExceptionWhenRequestedGuidDoesntExist()
        {
            _trainerRepository = new Macrotracker.Users.Infrastructure.DataAccess.EfDataAccess.Repositories.EfTrainerRepository(GetContext());

            Assert.Throws <EntityNotFoundException>(() => _trainerRepository.AcceptTrainingRequest(new Guid()));
        }