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 TestAdminWorkoutsPostEditWorkoutNotFound() { workout w = new workout(); ViewResult result = adminCon.Edit(w) 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("The workout does not exist or has already been deleted", model.StatusDescription); }
public void TestAdminWorkoutsPostEditWithDbUpdateException() { workout w = new workout() { id = 1, category_id = 1, name = "xfs", description = "sadsa", created_by_user_id = 1 }; db.Setup(c => c.SaveChanges()).Throws(new DbUpdateException()); ViewResult result = adminCon.Edit(w) 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 edit workout.", model.StatusDescription); }
public void TestAdminWorkoutsPostEditWithConcurrencyException() { workout w = new workout() { id = 1 }; db.Setup(c => c.SaveChanges()).Throws(new DbUpdateConcurrencyException()); ViewResult result = adminCon.Edit(w) 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 edit workout as another admin may have already update this workout", model.StatusDescription); }
public void TestAdminWorkoutsPostDeleteWithDbUpdateException() { workout w = new workout() { id = 1, category_id = 1, name = "xfs", description = "sadsa", created_by_user_id = 1 }; db.Setup(c => c.workouts.Find(w.id)).Returns(w); db.Setup(c => c.workouts.Remove(w)).Returns(w); db.Setup(c => c.SaveChanges()).Throws(new DbUpdateException()); ViewResult result = adminCon.DeleteConfirmed(w) 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 delete the workout as it may be referenced by another item.", model.StatusDescription); }
public void TestAdminWorkoutsPostDeleteWithConcurrencyException() { workout w = new workout() { id = 1 }; db.Setup(c => c.workouts.Find(w.id)).Returns(w); db.Setup(c => c.workouts.Remove(w)).Returns(w); db.Setup(c => c.SaveChanges()).Throws(new DbUpdateConcurrencyException()); ViewResult result = adminCon.DeleteConfirmed(w) 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 delete the workout as another admin may have modified this workout", model.StatusDescription); }
public void TestAdminWorkoutsNewThrowsException() { workout w = new workout(); db.Setup(c => c.SaveChanges()).Throws(new Exception()); ViewResult result = adminCon.New(w) 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); }
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); }
public ActionResult New(workout workout) { if (workout == null) { return View("DetailedError", new HttpStatusCodeResult(HttpStatusCode.BadRequest, "Workout could not be created with given parameters.")); } workout.created_at = DateTime.Now; var user = db.users.Where(a => a.username.Equals(User.Identity.Name)).FirstOrDefault(); if (user == null) { return View("DetailedError", new HttpStatusCodeResult(HttpStatusCode.InternalServerError, "No user could be associated with the workout being created")); } else workout.created_by_user_id = user.id; var position = 1; if (ModelState.IsValid) { try { foreach (workout_exercise w_ex in workout.workout_exercise.ToList()) { w_ex.position = position; position++; } db.workouts.Add(workout); db.SaveChanges(); return RedirectToAction("Details", "Home", new { workoutId = workout.id }); } catch (Exception ex) { return View("DetailedError", new HttpStatusCodeResult(HttpStatusCode.InternalServerError, "Failed to create the requested workout.")); } } else { return View("DetailedError", new HttpStatusCodeResult(HttpStatusCode.BadRequest, "Could not create the workout with the given values.")); } }
public ActionResult New() { var workout = new workout(); workout.CreateWorkoutExercise(); //var query = db.exercises.Select(ex => new { ex.id, ex.name }); var query = from ex in db.exercises select new { id = ex.id, name = ex.name + " - " + ex.type.measure }; ViewBag.Exercises = new SelectList(query.AsEnumerable(), "id", "name"); query = db.categories.Select(c => new { c.id, c.name }); ViewBag.Categories = new SelectList(query.AsEnumerable(), "id", "name"); return View(workout); }