Example #1
0
        public HttpStatusCode Execute(AddWorkoutCommand command)
        {
            var workout = this.factory.Create(command);

            this.repository.AddWorkout(workout);

            return(HttpStatusCode.OK);
        }
Example #2
0
        public void ValidateSuccessfully()
        {
            var validator = new AddWorkoutCommandValidator();
            var command   = new AddWorkoutCommand {
                Name = "Workout 1"
            };
            var result = validator.Validate(command);

            result.IsValid.ShouldBe(true);
        }
Example #3
0
        public void NameNotBeNull()
        {
            var validator = new AddWorkoutCommandValidator();
            var command   = new AddWorkoutCommand {
                Name = null
            };
            var result = validator.Validate(command);

            result.IsValid.ShouldBe(false);
        }
Example #4
0
        public Workout Create(AddWorkoutCommand command)
        {
            var workoutExercises = JsonConvert.DeserializeObject <IEnumerable <WorkoutExercise> >(command.WorkoutExercises.ToString());
            var workout          = new Workout
            {
                WorkoutName      = command.WorkoutName,
                WorkoutExercises = workoutExercises
            };

            return(workout);
        }
        public async Task SaveWorkout()
        {
            var mediator = Testing.Resolve <IMediator>();
            var db       = Testing.Resolve <SebastianDbContext>();
            var command  = new AddWorkoutCommand
            {
                Name   = "Jacob's Awesome Workout",
                UserId = _user.Id
            };
            var addWorkoutResponse = await mediator.Send(command);

            var workout = db.Workouts.Find(addWorkoutResponse.Id);

            workout.Name.ShouldBe(command.Name);
        }
        public async Task NotSaveWorkoutWhenAnotherWorkoutInProgress()
        {
            var mediator = Testing.Resolve <IMediator>();

            var command1 = new AddWorkoutCommand
            {
                Name   = "Workout 1",
                UserId = _user.Id
            };
            var command2 = new AddWorkoutCommand
            {
                Name   = "Workout 2",
                UserId = _user.Id
            };

            await mediator.Send(command1);

            Should.Throw <InvalidSebastianOperationException>(async() => await mediator.Send(command2));
        }