public void IfThereIsNoCurrentWorkoutAnExceptionIsThrown()
        {
            var ws = new Mock<IWorkoutService>();
            var repo = new Mock<IExerciseRepository>();
            var handler = new AddCardioCommandHandler(ws.Object, repo.Object);
            var command = new AddCardioCommand { Duration = 20, ExerciseId = 1, Level = 99, Notes = "foo" };
            repo.Setup(x => x.Load(1)).Returns(new Exercise(new ExerciseDocument { Description = "exer" }));
            ws.Setup(x => x.CurrentWorkout()).Returns<Workout>(null);

            Assert.Throws<ApplicationException>(() => handler.Handle(command));
        }
        public void AddsExerciseToCurrentWorkout()
        {
            var wk = new Workout();
            var service = NSubstitute.Substitute.For<IWorkoutService>();
            service.CurrentWorkout().Returns(x => wk);
            var dataSource = new EllipticalViewModel {Calories = 800, Duration = 45, Level = 6, Program = "M"};
            var command = new AddCardioCommand(dataSource);
            AutoMapper.Mapper.Initialize(x => x.AddProfile<Core.Mapping.CardioMappingProfile>());

            var handler = new AddCardioCommandHandler(service);
            handler.Handle(command);

            wk.Cardio.Count.ShouldEqual(1);
        }
        public void TheCardioActivityIsAddedToTheCurrentWorkout()
        {
            var workOut = new Workout(new WorkoutDocument());
            var ws = new Mock<IWorkoutService>();
            var repo = new Mock<IExerciseRepository>();
            var handler = new AddCardioCommandHandler(ws.Object, repo.Object);
            var command = new AddCardioCommand {Duration = 20, ExerciseId = 1, Level = 99, Notes = "foo"};

            ws.Setup(x => x.CurrentWorkout()).Returns(workOut);
            repo.Setup(x => x.Load(1)).Returns(new Exercise(new ExerciseDocument {Description = "exer"}));

            handler.Handle(command);

            workOut.CardioSegments.Count().ShouldEqual(1);
        }
        public void IfThereIsNoCurrentWorkoutAnExceptionIsThrown()
        {
            var ws      = new Mock <IWorkoutService>();
            var repo    = new Mock <IExerciseRepository>();
            var handler = new AddCardioCommandHandler(ws.Object, repo.Object);
            var command = new AddCardioCommand {
                Duration = 20, ExerciseId = 1, Level = 99, Notes = "foo"
            };

            repo.Setup(x => x.Load(1)).Returns(new Exercise(new ExerciseDocument {
                Description = "exer"
            }));
            ws.Setup(x => x.CurrentWorkout()).Returns <Workout>(null);

            Assert.Throws <ApplicationException>(() => handler.Handle(command));
        }
        public void TheCardioActivityIsAddedToTheCurrentWorkout()
        {
            var workOut = new Workout(new WorkoutDocument());
            var ws      = new Mock <IWorkoutService>();
            var repo    = new Mock <IExerciseRepository>();
            var handler = new AddCardioCommandHandler(ws.Object, repo.Object);
            var command = new AddCardioCommand {
                Duration = 20, ExerciseId = 1, Level = 99, Notes = "foo"
            };

            ws.Setup(x => x.CurrentWorkout()).Returns(workOut);
            repo.Setup(x => x.Load(1)).Returns(new Exercise(new ExerciseDocument {
                Description = "exer"
            }));

            handler.Handle(command);

            workOut.CardioSegments.Count().ShouldEqual(1);
        }