Пример #1
0
        public async Task AssignWorkoutTypesShouldAssignCorrectWorkoutTypesToWorkout()
        {
            var optionsBuilder = new DbContextOptionsBuilder <ApplicationDbContext>()
                                 .UseInMemoryDatabase(Guid.NewGuid().ToString());
            var dbContext = new ApplicationDbContext(optionsBuilder.Options);

            var workoutService = new WorkoutsService(dbContext);

            var workoutType = new WorkoutType
            {
                Name = "testName",
            };

            await dbContext.WorkoutTypes.AddAsync(workoutType);

            await dbContext.SaveChangesAsync();

            var workoutToAdd = new WorkoutInputModel
            {
                Date     = DateTime.Now.Date,
                Duration = 180,
                TypeId   = 1,
                UserId   = "Icaka99",
            };

            var result = workoutService.AssignWorkoutTypes(workoutToAdd);

            Assert.NotNull(result.Types);
            Assert.Equal("testName", result.Types.FirstOrDefault().Text);
            Assert.Equal("1", result.Types.FirstOrDefault().Value);
        }
Пример #2
0
        public IActionResult AddWorkout()
        {
            var model = new WorkoutInputModel();

            var viewModel = this.workoutService.AssignWorkoutTypes(model);

            return(this.View(viewModel));
        }
Пример #3
0
        public WorkoutInputModel AssignWorkoutTypes(WorkoutInputModel model)
        {
            model.Types = this.db.WorkoutTypes
                          .Select(x => new SelectListItem
            {
                Text  = x.Name,
                Value = x.Id.ToString(),
            })
                          .OrderBy(x => x.Text);

            return(model);
        }
Пример #4
0
        public async Task CreateAsync(WorkoutInputModel model, string userId)
        {
            var workout = new Workout
            {
                Date     = model.Date,
                Duration = TimeSpan.FromMinutes(model.Duration),
                TypeId   = model.TypeId,
                UserId   = userId,
            };

            await this.db.Workouts.AddAsync(workout);

            await this.db.SaveChangesAsync();

            model.Id = workout.Id;
        }
Пример #5
0
        public async Task GetWorkoutIdFromDateShouldReturnCorrectWorkoutId()
        {
            var optionsBuilder = new DbContextOptionsBuilder <ApplicationDbContext>()
                                 .UseInMemoryDatabase(Guid.NewGuid().ToString());
            var dbContext = new ApplicationDbContext(optionsBuilder.Options);

            var workoutService = new WorkoutsService(dbContext);

            var workoutToAdd = new WorkoutInputModel
            {
                Date = DateTime.Now.Date,
            };

            await workoutService.CreateAsync(workoutToAdd, "Icaka99");

            var result = workoutService.GetWorkoutIdFromDate(DateTime.Now.Date.ToString("yy-MM-dd"));

            Assert.Equal(1, result);
        }
Пример #6
0
        public async Task <IActionResult> AddWorkout(WorkoutInputModel model)
        {
            var userId = this.userManager.GetUserId(this.User);

            model.UserId = userId;

            if (!this.ModelState.IsValid)
            {
                this.workoutService.AssignWorkoutTypes(model);

                return(this.View(model));
            }

            await this.workoutService.CreateAsync(model, userId);

            this.TempData["Message"] = "Workout added successfully";

            return(this.RedirectToAction("AddExerciseToWorkout", "Scheduler", new { id = model.Id }));
        }
Пример #7
0
        public async Task CreateExerciseMethodShouldAddCorrectNewExerciseToDbAndWorkout()
        {
            var optionsBuilder = new DbContextOptionsBuilder <ApplicationDbContext>()
                                 .UseInMemoryDatabase(Guid.NewGuid().ToString());
            var dbContext = new ApplicationDbContext(optionsBuilder.Options);

            var workoutService = new WorkoutsService(dbContext);

            var workoutToAdd = new WorkoutInputModel
            {
                Date     = DateTime.Now.Date,
                Duration = 180,
                TypeId   = 2,
            };

            await workoutService.CreateAsync(workoutToAdd, "Icaka99");

            var sets = new List <SetInputModel>
            {
                new SetInputModel {
                    ExerciseId = 2, Reps = 1,
                },
            };

            var exerciseToAdd = new ExerciseInputModel
            {
                MuscleGroupId = 1,
                Name          = "testName",
                WorkoutId     = 1,
                Sets          = sets,
            };

            await workoutService.CreateExerciseAsync(exerciseToAdd);

            Assert.True(dbContext.Exercises.Any());
            Assert.Equal(2, dbContext.Exercises.FirstOrDefault().Id);
            Assert.Equal(1, dbContext.Exercises.FirstAsync().Result.MuscleGroupId);
            Assert.Equal("testName", dbContext.Exercises.FirstAsync().Result.Name);
            Assert.True(dbContext.Exercises.FirstAsync().Result.Sets.Any());
            Assert.Equal(1, dbContext.Exercises.FirstAsync().Result.Sets.FirstOrDefault().Reps);
            Assert.Equal(2, dbContext.Exercises.FirstAsync().Result.Sets.FirstOrDefault().ExerciseId);
        }
Пример #8
0
        public async Task CreateMethodShouldAddCorrectNewWorkoutToDb()
        {
            var optionsBuilder = new DbContextOptionsBuilder <ApplicationDbContext>()
                                 .UseInMemoryDatabase(Guid.NewGuid().ToString());
            var dbContext = new ApplicationDbContext(optionsBuilder.Options);

            var workoutService = new WorkoutsService(dbContext);

            var workoutToAdd = new WorkoutInputModel
            {
                Date     = DateTime.Now.Date,
                Duration = 180,
                TypeId   = 2,
            };

            await workoutService.CreateAsync(workoutToAdd, "Icaka99");

            Assert.True(dbContext.Workouts.Any());
            Assert.Equal(DateTime.Now.Date, dbContext.Workouts.FirstAsync().Result.Date);
            Assert.Equal(180, dbContext.Workouts.FirstAsync().Result.Duration.TotalMinutes);
            Assert.Equal(2, dbContext.Workouts.FirstAsync().Result.TypeId);
            Assert.Equal("Icaka99", dbContext.Workouts.FirstAsync().Result.UserId);
        }