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); }
public IActionResult AddWorkout() { var model = new WorkoutInputModel(); var viewModel = this.workoutService.AssignWorkoutTypes(model); return(this.View(viewModel)); }
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); }
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; }
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); }
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 })); }
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); }
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); }