Exemple #1
0
        private Workout MapToEntity(WorkoutDto workoutViewDto, Workout workoutEntity)
        {
            var user     = _userService.GetUser(1);
            var raceType = _raceTypeService.GetRaceType(workoutViewDto.RaceTypeId);

            workoutEntity.Name           = workoutViewDto.Name;
            workoutEntity.Length         = workoutViewDto.Length;
            workoutEntity.AvgSpeed       = workoutViewDto.AvgSpeed;
            workoutEntity.StartDateTime  = workoutViewDto.StartDateTime;
            workoutEntity.EndDateTime    = workoutViewDto.EndDateTime;
            workoutEntity.ElapsedHours   = workoutViewDto.ElapsedHours;
            workoutEntity.ElapsedMinutes = workoutViewDto.ElapsedMinutes;
            workoutEntity.ElapsedSeconds = workoutViewDto.ElapsedSeconds;
            workoutEntity.User           = user;
            workoutEntity.RaceType       = raceType;

            foreach (var gpsCoord in workoutViewDto.GpsCoords)
            {
                workoutEntity.GpsCoords.Add(new WorkoutGpsCoord
                {
                    Latitude  = gpsCoord.Latitude,
                    Longitude = gpsCoord.Longtitude,
                    Elevation = gpsCoord.Elevation,
                    TimeStamp = gpsCoord.Timestamp
                });
            }

            return(workoutEntity);
        }
        public IHttpActionResult GetWorkouts(int planId)
        {
            IEnumerable <Workout> workouts = _unitOfWork.Workouts.GetWorkouts(planId);

            foreach (Workout w in workouts)
            {
                w.Exercises = _unitOfWork.Exercises.GetExercises(w.Id);
            }

            var workoutDto = new WorkoutDto
            {
                Workouts = workouts
            };

            return(Ok(workoutDto));
        }
Exemple #3
0
        public HttpResponseMessage Post(WorkoutDto workoutViewModel)
        {
            try
            {
                var workoutEntity = new Workout();
                workoutEntity = MapToEntity(workoutViewModel, workoutEntity);

                _workoutService.CreateWorkout(workoutEntity);

                return(Request.CreateResponse(HttpStatusCode.OK));
            }
            catch (Exception ex)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex.Message));
            }
        }
Exemple #4
0
        public async Task EditWorkout_ReturnsAView_WithWorkout()
        {
            // Arrange
            var workoutDto = new WorkoutDto()
            {
                Name             = "Workout", CreationDate = DateTime.MinValue, Id = 1, UserId = 1,
                WorkoutEntryDtos = new List <WorkoutEntryDto> {
                    new WorkoutEntryDto {
                        ExerciseId = 1, ExerciseName = "Squat", Id = 1, Reps = 10, Set = 10, Weight = 10
                    }
                }
            };
            var exercises = new List <ExerciseDto>
            {
                new ExerciseDto {
                    Description = "Description", Id = 1, Name = "Squat"
                }
            };
            var workoutEntries = new List <WorkoutEntryViewModel>
            {
                new WorkoutEntryViewModel {
                    ExerciseName = "Squat", Id = 1, Reps = 10, Set = 10, Weight = 10
                }
            };
            var workoutViewModel = new WorkoutViewModel()
            {
                CreationDate   = DateTime.MinValue, ExerciseId = 1, Name = "Workout", Exercises = exercises, Id = 1,
                WorkoutEntries = workoutEntries, Reps = 10, Weight = 10, Set = 10
            };

            var mockUserManager = new FakeUserManager();
            var mockMapper      = new Mock <IMapper>();

            mockMapper.Setup(m => m.Map <WorkoutViewModel>(workoutDto))
            .Returns(workoutViewModel)
            .Verifiable();
            mockMapper.Setup(m => m.Map <ICollection <WorkoutEntryDto>, IEnumerable <WorkoutEntryViewModel> >(It.IsAny <ICollection <WorkoutEntryDto> >()))
            .Returns(workoutEntries)
            .Verifiable();
            var mockLoggerFactory = new Mock <ILoggerFactory>();
            var mockLogger        = new Mock <ILogger>();

            mockLoggerFactory.Setup(l => l.CreateLogger(It.IsAny <string>())).Returns(mockLogger.Object);
            var mockWorkoutService = new Mock <IWorkoutService>();

            mockWorkoutService.Setup(w => w.GetWorkoutAsync(It.IsAny <int>()))
            .ReturnsAsync(workoutDto)
            .Verifiable();     // Return workout
            var mockExerciseService = new Mock <IExerciseService>();

            mockExerciseService.Setup(e => e.GetAllExercisesAsync())
            .ReturnsAsync(exercises)
            .Verifiable();     // Returns exercises
            var mockChallengeService  = new Mock <IChallengeService>();
            var mockWorkoutRepository = new Mock <IWorkoutRepository>();
            var workoutController     = new WorkoutController(
                mockLoggerFactory.Object,
                mockMapper.Object,
                mockWorkoutService.Object,
                mockExerciseService.Object,
                mockUserManager,
                mockWorkoutRepository.Object,
                mockChallengeService.Object);

            // Act
            var result = await workoutController.EditWorkout(It.IsAny <int>()) as ViewResult;

            // Assert
            Assert.IsType <ViewResult>(result);
            //Assert.Equal("EditWorkout", result.ViewName);
            var model = Assert.IsType <WorkoutViewModel>(result.Model);

            Assert.Equal(DateTime.MinValue, model.CreationDate);
            Assert.Equal(1, model.ExerciseId);
            Assert.Equal("Workout", model.Name);
            Assert.Equal(exercises, model.Exercises);
            Assert.Equal(1, model.Id);
            Assert.Equal(workoutEntries, model.WorkoutEntries);
            Assert.Equal(10, model.Reps);
            Assert.Equal(10, model.Weight);
            Assert.Equal(10, model.Set);
        }