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);
 }
Example #11
0
        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."));
            }
        }
Example #12
0
        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);
        }