Beispiel #1
0
        public void GetByName_ShouldReturnCorrectWorkoutInformationWhenNameIsFound()
        {
            var workoutInformationRepoStub = new Mock <IEfRepostory <WorkoutInformation> >();
            var unitOfWorkStub             = new Mock <IUnitOfWork>();

            var list       = new List <WorkoutInformation>();
            var workoutOne = new WorkoutInformation();

            workoutOne.Name = "gosho";
            var workoutTwo = new WorkoutInformation
            {
                Name = "pesho"
            };

            list.Add(workoutOne);
            list.Add(workoutTwo);

            var dbSetStub = list.AsQueryable();

            var sut = new WorkoutInformationService(workoutInformationRepoStub.Object, unitOfWorkStub.Object);

            workoutInformationRepoStub.Setup(x => x.All).Returns(dbSetStub);

            var result = sut.GetByName("gosho");

            Assert.AreSame(result, workoutOne);
        }
Beispiel #2
0
        public void GetAllNames_ShouldReturnICollectionOfTwoStringsWhenTwoExercisesArePresentInTheRepo()
        {
            var workoutInformationRepoStub = new Mock <IEfRepostory <WorkoutInformation> >();
            var unitOfWorkStub             = new Mock <IUnitOfWork>();

            var list       = new List <WorkoutInformation>();
            var workoutOne = new WorkoutInformation();

            workoutOne.Name = "gosho";
            var workoutTwo = new WorkoutInformation
            {
                Name = "pesho"
            };

            list.Add(workoutOne);
            list.Add(workoutTwo);

            var dbSetStub = list.AsQueryable();

            var sut = new WorkoutInformationService(workoutInformationRepoStub.Object, unitOfWorkStub.Object);

            workoutInformationRepoStub.Setup(x => x.All).Returns(dbSetStub);

            var result = sut.GetAllNames();

            Assert.AreEqual(2, result.Count);
        }
Beispiel #3
0
        public void Edit_ShouldReturnCorrectJsonWhenModelInvalid()
        {
            var mapperStub = new Mock <IMapper>();
            var weekScheduleServiceStub       = new Mock <IWeekScheduleService>();
            var workoutInformationServiceStub = new Mock <IWorkoutInformationService>();
            var modelViewFactoryStub          = new Mock <IModelViewFactory>();
            var dailyWorkoutServiceStub       = new Mock <IDailyWorkoutService>();

            var sut = new ScheduleController(mapperStub.Object, weekScheduleServiceStub.Object, workoutInformationServiceStub.Object, dailyWorkoutServiceStub.Object, modelViewFactoryStub.Object);

            var dailyWorkout = new DailyWorkoutViewModel();

            dailyWorkout.Name       = "awesomeness";
            dailyWorkout.ScheduleId = new Guid();

            var wodInfo      = new WorkoutInformation();
            var wodDataModel = new DailyWorkout();
            var schedule     = new WeekSchedule();


            workoutInformationServiceStub.Setup(x => x.GetByName(It.IsAny <string>())).Returns(wodInfo);
            mapperStub.Setup(x => x.Map <DailyWorkout>(It.IsAny <DailyWorkoutViewModel>())).Returns(wodDataModel);
            dailyWorkoutServiceStub.Setup(x => x.AddAllDailyWorkouts(It.IsAny <DailyWorkout>(), It.IsAny <DailyWorkout>(), It.IsAny <DailyWorkout>()));
            weekScheduleServiceStub.Setup(x => x.GetById(It.IsAny <Guid>())).Returns(schedule);
            weekScheduleServiceStub.Setup(x => x.AddDailiesToSchedule(It.IsAny <WeekSchedule>(), It.IsAny <DailyWorkout>(), It.IsAny <DailyWorkout>(), It.IsAny <DailyWorkout>()));

            sut
            .WithModelErrors()
            .WithCallTo(c => c.Edit(dailyWorkout))
            .ShouldReturnJson();
        }
Beispiel #4
0
        public void CreateWorkout_ShouldCallInsertIntoWorkoutInformationServiceCorrectDataModel()
        {
            var mapperStub                    = new Mock <IMapper>();
            var exerciseServiceStub           = new Mock <IExerciseService>();
            var workoutInformationServiceStub = new Mock <IWorkoutInformationService>();
            var weekScheduleServiceStub       = new Mock <IWeekScheduleService>();
            var modelViewFactoryStub          = new Mock <IModelViewFactory>();

            var sut = new ManagerController(mapperStub.Object, exerciseServiceStub.Object, workoutInformationServiceStub.Object, weekScheduleServiceStub.Object, modelViewFactoryStub.Object);

            var workoutViewModel = new CreateWorkoutViewModel();

            workoutViewModel.AllExercises = new List <ExerciseMutipleSelectionViewModel>()
            {
                new ExerciseMutipleSelectionViewModel
                {
                    IsSelected = true,
                    Id         = new Guid()
                }
            };

            var workoutDataModel = new WorkoutInformation();
            var exercise         = new Exercise();

            mapperStub.Setup(x => x.Map <WorkoutInformation>(It.IsAny <CreateWorkoutViewModel>())).Returns(workoutDataModel);
            workoutInformationServiceStub.Setup(x => x.AddWorkoutInformation(It.IsAny <WorkoutInformation>()));
            exerciseServiceStub.Setup(x => x.GetById(It.IsAny <Guid>())).Returns(exercise);
            workoutInformationServiceStub.Setup(x => x.InsertMultipleExercisesToWorkoutInformation(It.IsAny <WorkoutInformation>(), It.IsAny <ICollection <Exercise> >()));

            sut
            .WithCallTo(x => x.CreateWorkout(workoutViewModel));

            workoutInformationServiceStub.Verify(x => x.InsertMultipleExercisesToWorkoutInformation(workoutDataModel, It.IsAny <ICollection <Exercise> >()), Times.Once);
        }
Beispiel #5
0
        public void AddWorkoutInformation(WorkoutInformation workoutInformation)
        {
            if (workoutInformation == null)
            {
                throw new ArgumentException("WorkoutInformation cannot be null");
            }

            this.workoutInformationRepo.Add(workoutInformation);
            this.unitOfWork.Commit();
        }
Beispiel #6
0
        public TimeSpan?GetBestTime(WorkoutInformation workout)
        {
            if (workout == null)
            {
                throw new ArgumentException("Workout cannot be null");
            }

            return(this.workoutsRepo.All
                   .Where(x => x.WorkoutInformation.Name == workout.Name)
                   .OrderBy(x => x.Time)
                   .Select(x => x.Time)
                   .FirstOrDefault());
        }
Beispiel #7
0
        public void InsertMultipleExercisesToWorkoutInformation_ShouldThrowWhenPassedExercisesAreInvalid()
        {
            var workoutInformationRepoStub = new Mock <IEfRepostory <WorkoutInformation> >();
            var unitOfWorkStub             = new Mock <IUnitOfWork>();

            var sut = new WorkoutInformationService(workoutInformationRepoStub.Object, unitOfWorkStub.Object);

            workoutInformationRepoStub.Setup(x => x.Update(It.IsAny <WorkoutInformation>()));
            unitOfWorkStub.Setup(x => x.Commit());

            var workout = new WorkoutInformation();

            Assert.Throws <ArgumentException>(() => sut.InsertMultipleExercisesToWorkoutInformation(workout, null));
        }
Beispiel #8
0
        public void AddWorkoutInformation_ShouldCallUnitOfWorkCommitOnce()
        {
            var workoutInformationRepoStub = new Mock <IEfRepostory <WorkoutInformation> >();
            var unitOfWorkStub             = new Mock <IUnitOfWork>();

            var sut = new WorkoutInformationService(workoutInformationRepoStub.Object, unitOfWorkStub.Object);

            workoutInformationRepoStub.Setup(x => x.Update(It.IsAny <WorkoutInformation>()));
            unitOfWorkStub.Setup(x => x.Commit());

            var workout = new WorkoutInformation();

            sut.AddWorkoutInformation(workout);

            unitOfWorkStub.Verify(x => x.Commit(), Times.Once);
        }
Beispiel #9
0
        public void InsertMultipleExercisesToWorkoutInformation(WorkoutInformation workoutInformation, ICollection <Exercise> exercises)
        {
            if (workoutInformation == null)
            {
                throw new ArgumentException("WorkoutInformation cannot be null");
            }

            if (exercises == null)
            {
                throw new ArgumentException("Exercises cannot be null");
            }

            foreach (var exercise in exercises)
            {
                workoutInformation.Exercises.Add(exercise);
            }

            this.Update(workoutInformation);
        }
Beispiel #10
0
        public void GetTotalWorkouts_ShouldReturnZeroWhenNoWorkoutsInTheRepo()
        {
            var workoutsRepoStub = new Mock <IEfRepostory <Workout> >();
            var unitOfWorkStub   = new Mock <IUnitOfWork>();

            var list = new List <Workout>();

            var dbSetStub = list.AsQueryable();

            var daily = new WorkoutInformation();

            var sut = new WorkoutService(workoutsRepoStub.Object, unitOfWorkStub.Object);

            workoutsRepoStub.Setup(x => x.All).Returns(dbSetStub);

            var result = sut.GetTotalWorkouts();

            Assert.AreEqual(0, result);
        }
Beispiel #11
0
        public void GetBestTime_ShouldReturnNullWhenWorkoutRepoIsEmpty()
        {
            var workoutsRepoStub = new Mock <IEfRepostory <Workout> >();
            var unitOfWorkStub   = new Mock <IUnitOfWork>();

            var list = new List <Workout>();

            var dbSetStub = list.AsQueryable();

            var daily = new WorkoutInformation();

            var sut = new WorkoutService(workoutsRepoStub.Object, unitOfWorkStub.Object);

            workoutsRepoStub.Setup(x => x.All).Returns(dbSetStub);

            var result = sut.GetBestTime(daily);

            Assert.IsNull(result);
        }
Beispiel #12
0
        public void GetAllNames_ShouldReturnICollectionOfStrings()
        {
            var workoutInformationRepoStub = new Mock <IEfRepostory <WorkoutInformation> >();
            var unitOfWorkStub             = new Mock <IUnitOfWork>();

            var list    = new List <WorkoutInformation>();
            var workout = new WorkoutInformation();

            workout.Name = "murph";
            list.Add(workout);

            var dbSetStub = list.AsQueryable();

            var sut = new WorkoutInformationService(workoutInformationRepoStub.Object, unitOfWorkStub.Object);

            workoutInformationRepoStub.Setup(x => x.All).Returns(dbSetStub);

            var result = sut.GetAllNames();

            Assert.IsInstanceOf(typeof(ICollection <string>), result);
        }
Beispiel #13
0
        public void InsertMultipleExercisesToWorkoutInformation_CallCommitOnTheUnitOfWork()
        {
            var workoutInformationRepoStub = new Mock <IEfRepostory <WorkoutInformation> >();
            var unitOfWorkStub             = new Mock <IUnitOfWork>();

            var sut = new WorkoutInformationService(workoutInformationRepoStub.Object, unitOfWorkStub.Object);

            workoutInformationRepoStub.Setup(x => x.Update(It.IsAny <WorkoutInformation>()));
            unitOfWorkStub.Setup(x => x.Commit());

            var workout     = new WorkoutInformation();
            var exercises   = new List <Exercise>();
            var exerciseOne = new Exercise();
            var exerciseTwo = new Exercise();

            exercises.Add(exerciseOne);
            exercises.Add(exerciseTwo);

            sut.InsertMultipleExercisesToWorkoutInformation(workout, exercises);

            unitOfWorkStub.Verify(x => x.Commit(), Times.Once);
        }
Beispiel #14
0
        public void InsertMultipleExercisesToWorkoutInformation_ShouldInsertTwoExercisesInTheWorkoutWhenTheExercisesCollectionHasTwoElements()
        {
            var workoutInformationRepoStub = new Mock <IEfRepostory <WorkoutInformation> >();
            var unitOfWorkStub             = new Mock <IUnitOfWork>();

            var sut = new WorkoutInformationService(workoutInformationRepoStub.Object, unitOfWorkStub.Object);

            workoutInformationRepoStub.Setup(x => x.Update(It.IsAny <WorkoutInformation>()));
            unitOfWorkStub.Setup(x => x.Commit());

            var workout     = new WorkoutInformation();
            var exercises   = new List <Exercise>();
            var exerciseOne = new Exercise();
            var exerciseTwo = new Exercise();

            exercises.Add(exerciseOne);
            exercises.Add(exerciseTwo);

            sut.InsertMultipleExercisesToWorkoutInformation(workout, exercises);

            Assert.AreEqual(2, workout.Exercises.Count);
        }
Beispiel #15
0
        public void GetBestTime_ShouldReturnBestTimeWhenTwoWorkoutsArePresentInTheRepo()
        {
            var workoutsRepoStub = new Mock <IEfRepostory <Workout> >();
            var unitOfWorkStub   = new Mock <IUnitOfWork>();

            var list       = new List <Workout>();
            var workoutOne = new Workout();

            workoutOne.WorkoutInformation = new WorkoutInformation
            {
                Name = "w1"
            };
            workoutOne.Time = new TimeSpan(0, 10, 0);

            var workoutTwo = new Workout();

            workoutTwo.WorkoutInformation = new WorkoutInformation
            {
                Name = "w1"
            };
            workoutTwo.Time = new TimeSpan(0, 20, 0);

            list.Add(workoutOne);
            list.Add(workoutTwo);
            var dbSetStub = list.AsQueryable();

            var workoutQuery = new WorkoutInformation();

            workoutQuery.Name = "w1";

            var sut = new WorkoutService(workoutsRepoStub.Object, unitOfWorkStub.Object);

            workoutsRepoStub.Setup(x => x.All).Returns(dbSetStub);

            var result = sut.GetBestTime(workoutQuery);

            Assert.AreEqual(result, workoutOne.Time);
        }