public void TestCreateNewWorkout()
 {
     workout workout = new workout();
     workout.id = 100;
     workout.name = "TestWorkoutName";
     workout.description = "TestWorkoutDescription";
     workout.category_id = 1;
     workout.created_by_user_id = 1;
     workout_exercise workoutExercise = new workout_exercise();
     workoutExercise.id = 4;
     workoutExercise.exercise_id = 1;
     workoutExercise.workout_id = 100;
     workoutExercise.position = 1;
     workoutExercise.duration = 5;
     workout.workout_exercise.Add(workoutExercise);
     db.Setup(c => c.workouts.Add(workout)).Returns(workout);
     RedirectToRouteResult result = controller.New(workout) as RedirectToRouteResult;
     Assert.IsNotNull(result);
     Assert.AreEqual(100, result.RouteValues["workoutId"], "workoutId was not 100");
     Assert.AreEqual("Details", result.RouteValues["action"], "action was not Details");
     Assert.AreEqual("Home", result.RouteValues["controller"], "controller was not Home");
 }
 public void TestHomeControllerCreateNewWorkoutWithValidationErrs()
 {
     var workout = new workout();
     var workoutExercise = new workout_exercise();
     workout.workout_exercise.Add(workoutExercise);
     adminCon.ModelState.AddModelError("Fail", "Failed");
     ViewResult result = adminCon.New(workout) as ViewResult;
     Assert.IsNotNull(result);
     Assert.AreEqual("DetailedError", result.ViewName);
     Assert.IsInstanceOfType(result.Model, typeof(HttpStatusCodeResult));
     var model = result.Model as HttpStatusCodeResult;
     Assert.AreEqual(400, model.StatusCode);
     Assert.AreEqual("Could not create the workout with the given values.", model.StatusDescription);
 }
 public void TestHomeControllerCreateNewWorkoutWithNoUserError()
 {
     adminCon = new AdminWorkoutsController(db.Object)
     {
         ControllerContext = MockContext.AuthenticationContext("not_a_real_user")
     };
     var workout = new workout();
     var workoutExercise = new workout_exercise();
     workout.workout_exercise.Add(workoutExercise);
     ViewResult result = adminCon.New(workout) as ViewResult;
     Assert.IsNotNull(result);
     Assert.AreEqual("DetailedError", result.ViewName);
     Assert.IsInstanceOfType(result.Model, typeof(HttpStatusCodeResult));
     var model = result.Model as HttpStatusCodeResult;
     Assert.AreEqual(500, model.StatusCode);
     Assert.AreEqual("No user could be associated with the workout being created", model.StatusDescription);
 }
 public void TestHomeControllerCreateNewWorkoutWithBadPassedObj()
 {
     var workout = new workout();
     var workoutExercise = new workout_exercise();
     workout.workout_exercise.Add(workoutExercise);
     var ex = new Exception();
     db.Setup(c => c.workouts.Add(workout)).Throws(ex);
     ViewResult result = controller.New(workout) as ViewResult;
     Assert.IsNotNull(result);
     Assert.AreEqual("DetailedError", result.ViewName);
     Assert.IsInstanceOfType(result.Model, typeof(HttpStatusCodeResult));
     var model = result.Model as HttpStatusCodeResult;
     Assert.AreEqual(500, model.StatusCode);
     Assert.AreEqual("Failed to create the requested workout.", model.StatusDescription);
 }