Beispiel #1
0
        public async Task Challenge_ReturnsViewError_IfEmptyUser()
        {
            // Arrange
            var mockUserManager   = new FakeUserManager();
            var mockMapper        = new Mock <IMapper>();
            var mockLoggerFactory = new Mock <ILoggerFactory>();
            var mockLogger        = new Mock <ILogger>();

            mockLoggerFactory.Setup(l => l.CreateLogger(It.IsAny <string>())).Returns(mockLogger.Object);
            var mockWorkoutService = new Mock <IWorkoutService>();

            mockWorkoutService.Setup(w => w.GetWorkoutEntryAsync(It.IsAny <int>()))
            .ReturnsAsync((WorkoutEntryDto)null)
            .Verifiable();
            var mockExerciseService   = new Mock <IExerciseService>();
            var mockChallengeService  = new Mock <IChallengeService>();
            var mockWorkoutRepository = new Mock <IWorkoutRepository>();

            var workoutController = new WorkoutController(
                mockLoggerFactory.Object,
                mockMapper.Object,
                mockWorkoutService.Object,
                mockExerciseService.Object,
                mockUserManager,
                mockWorkoutRepository.Object,
                mockChallengeService.Object);

            // Act
            var result = await workoutController.Challenge(It.IsAny <int>(), It.IsAny <int>()) as ViewResult;

            // Assert
            Assert.IsType <ViewResult>(result);
            Assert.Equal("/Error", result.ViewName);
        }
Beispiel #2
0
        public async Task DeleteWorkout_RedirectToWorkouts_IfDeleted()
        {
            // Arrange
            var mockUserManager   = new FakeUserManager();
            var mockMapper        = new Mock <IMapper>();
            var mockLoggerFactory = new Mock <ILoggerFactory>();
            var mockLogger        = new Mock <ILogger>();

            mockLoggerFactory.Setup(l => l.CreateLogger(It.IsAny <string>())).Returns(mockLogger.Object);
            var mockWorkoutService = new Mock <IWorkoutService>();

            mockWorkoutService.Setup(w => w.DeleteWorkoutAsync(It.IsAny <int>(), It.IsAny <int>()))
            .ReturnsAsync(true)
            .Verifiable();
            var mockExerciseService   = new Mock <IExerciseService>();
            var mockChallengeService  = new Mock <IChallengeService>();
            var mockWorkoutRepository = new Mock <IWorkoutRepository>();

            var workoutController = new WorkoutController(
                mockLoggerFactory.Object,
                mockMapper.Object,
                mockWorkoutService.Object,
                mockExerciseService.Object,
                mockUserManager,
                mockWorkoutRepository.Object,
                mockChallengeService.Object);

            // Act
            var result = await workoutController.DeleteWorkout(It.IsAny <int>()) as RedirectToActionResult;

            Assert.IsType <RedirectToActionResult>(result);
            Assert.Equal("Workouts", result.ActionName);
        }
        static void Main(string[] args)
        {
            Watcher     watcher1    = new Watcher("Watcher1");
            Watcher     watcher2    = new Watcher("Watcher2");
            Watcher     watcher3    = new Watcher("Watcher3");
            TrainingGuy trainingGuy = new TrainingGuy();

            trainingGuy.Subscribe(watcher1);
            trainingGuy.Subscribe(watcher2);
            trainingGuy.Subscribe(watcher3);
            WorkoutController fitnessInstructor = new WorkoutController();

            SwitchDownCommand switchDownCommand = (SwitchDownCommand)CommandFactory.Create(CommandFactory.commandList.SwitchDown, trainingGuy);
            SwitchUpCommand   switchUpCommand   = (SwitchUpCommand)CommandFactory.Create(CommandFactory.commandList.SwitchUp);

            switchUpCommand.SetTrainingGuy(trainingGuy);

            fitnessInstructor.SetCommand(switchUpCommand);
            fitnessInstructor.ExecuteCommand();

            fitnessInstructor.SetCommand(switchDownCommand);
            fitnessInstructor.ExecuteCommand();

            fitnessInstructor.SetCommand(switchUpCommand);
            fitnessInstructor.ExecuteCommand();
        }
Beispiel #4
0
        public async Task Workouts_ReturnsAViewErrorResult_WithEmptyListofWorkouts()
        {
            // Arrange
            var mockUserManager   = new FakeUserManager();
            var mockMapper        = new Mock <IMapper>();
            var mockLoggerFactory = new Mock <ILoggerFactory>();
            var mockLogger        = new Mock <ILogger>();

            mockLoggerFactory.Setup(l => l.CreateLogger(It.IsAny <string>())).Returns(mockLogger.Object);
            var mockWorkoutService = new Mock <IWorkoutService>();

            mockWorkoutService.Setup(w => w.GetAllWorkoutsAsync(It.IsAny <int>()))
            .ReturnsAsync((List <WorkoutDto>)null)
            .Verifiable();     // Return empty list of workouts
            var mockExerciseService   = new Mock <IExerciseService>();
            var mockChallengeService  = new Mock <IChallengeService>();
            var mockWorkoutRepository = new Mock <IWorkoutRepository>();
            var workoutController     = new WorkoutController(
                mockLoggerFactory.Object,
                mockMapper.Object,
                mockWorkoutService.Object,
                mockExerciseService.Object,
                mockUserManager,
                mockWorkoutRepository.Object,
                mockChallengeService.Object);

            // Act
            var viewResult = await workoutController.Workouts() as ViewResult;

            // Assert
            Assert.IsType <ViewResult>(viewResult);
            Assert.Equal("/Error", viewResult.ViewName);
        }
        public void InsertTest()
        {
            // Arrange
            WorkoutTypeController controllerwt = new WorkoutTypeController();
            // Act
            List <WorkoutType> loadAllWt = controllerwt.Get() as List <WorkoutType>;
            //grab first result
            WorkoutType wt = loadAllWt[0];
            // Arrange
            UserController controlleru = new UserController();
            // Act
            List <User> loadAllU = controlleru.Get() as List <User>;
            //grab first result
            User u = loadAllU[0];

            Workout w = new Workout {
                WorkoutType = wt, StartTime = System.DateTime.Now, EndTime = new System.DateTime(2020, 11, 18), UserId = u.Id
            };


            // Arrange
            WorkoutController controller = new WorkoutController();

            // Act
            int result = controller.Post(w);

            // Assert
            Assert.IsTrue(result > 0);
        }
        public void AddExercise()
        {
            // Act
            var controller = new WorkoutController();

            // Arrange
            var result = controller.AddWorkout();
        }
        public void WorkoutHome()
        {
            // Act
            var controller = new WorkoutController();

            // Arrange
            var result = controller.WorkoutHome();

            // Assert
            Assert.IsNotNull(result);
        }
Beispiel #8
0
        public static void Initialize(TestContext context)
        {
            _workoutController  = new WorkoutController();
            _categoryController = new CategoryController();

            Mapper.Reset();
            Mapper.Initialize(config =>
            {
                config.AddProfile <MappingProfile>();
            });
        }
        public void LoadTest()
        {
            // Arrange
            WorkoutController controller = new WorkoutController();

            // Act
            IEnumerable <Workout> result = controller.Get() as IEnumerable <Workout>;

            // Assert
            Assert.IsNotNull(result);
        }
Beispiel #10
0
        public void UpdateWorkouts_Test()
        {
            //Arrange
            mockRepo.Setup(repo => repo.Workouts.FindByCondition(w => w.WorkoutId == It.IsAny <int>())).Returns(GetWorkouts());
            mockRepo.Setup(repo => repo.Workouts.Update(GetWorkout()));
            //Act
            var controllerActionResult = new WorkoutController(mockRepo.Object).Update(It.IsAny <int>());

            //Assert
            Assert.NotNull(controllerActionResult);
        }
Beispiel #11
0
        public async Task EditWorkoutPost_ReturnsViewResult_WhenModelStateIsValid()
        {
            // Arrange
            var mockUserManager = new FakeUserManager();
            var mockMapper      = new Mock <IMapper>();

            mockMapper.Setup(m => m.Map <WorkoutViewModel>(It.IsAny <WorkoutDto>()))
            .Returns(new WorkoutViewModel())
            .Verifiable();
            mockMapper.Setup(m => m.Map <ICollection <WorkoutEntryDto>, IEnumerable <WorkoutEntryViewModel> >(new List <WorkoutEntryDto>()))
            .Returns(new List <WorkoutEntryViewModel>())
            .Verifiable();
            var mockLoggerFactory = new Mock <ILoggerFactory>();
            var mockLogger        = new Mock <ILogger>();

            mockLoggerFactory.Setup(l => l.CreateLogger(It.IsAny <string>())).Returns(mockLogger.Object);
            var mockWorkoutService = new Mock <IWorkoutService>();

            mockWorkoutService.Setup(w => w.GetWorkoutAsync(It.IsAny <int>()))
            .ReturnsAsync(new WorkoutDto())
            .Verifiable();     // Return workout
            mockWorkoutService.Setup(w => w.AddWorkoutEntryAsync(It.IsAny <AddWorkoutEntryToWorkoutDto>()))
            .ReturnsAsync(1)
            .Verifiable();
            var mockExerciseService = new Mock <IExerciseService>();

            mockExerciseService.Setup(e => e.GetAllExercisesAsync())
            .ReturnsAsync(new List <ExerciseDto>())
            .Verifiable();     // Returns exercises
            var mockChallengeService  = new Mock <IChallengeService>();
            var mockWorkoutRepository = new Mock <IWorkoutRepository>();
            var workoutController     = new WorkoutController(
                mockLoggerFactory.Object,
                mockMapper.Object,
                mockWorkoutService.Object,
                mockExerciseService.Object,
                mockUserManager,
                mockWorkoutRepository.Object,
                mockChallengeService.Object);
            var invalidWorkout = new WorkoutViewModel()
            {
                Set = -10, Weight = -10, Reps = -10
            };

            // Act
            var result = await workoutController.EditWorkout(invalidWorkout) as ViewResult;

            // Assert
            Assert.IsType <ViewResult>(result);
            Assert.IsType <WorkoutViewModel>(result.Model);
            Assert.Equal(true, result.ViewData.ModelState.IsValid);
        }
Beispiel #12
0
 public WorkoutTest()
 {
     //sample models
     addWorkout = new AddWorkoutBindingModel {
         WorkoutId = 1, Type = "Legs", Difficulty = Difficulty.Intermediate, Time = 20
     };
     addExercise = new AddExerciseBindingModel {
         ExerciseId = 1, Name = "Squats", Picture = "https://cdn.thespaces.com/wp-content/uploads/2020/01/Gymshark-hero-crop.jpg", Sets = 20, Weight = 20, Status = Status.Completed
     };
     mockRepo           = new Mock <IRepositoryWrapper>();
     WorkoutController  = new WorkoutController(mockRepo.Object);
     ExerciseController = new ExerciseController(mockRepo.Object);
 }
        public void DeleteWorkout()
        {
            // Act
            var controller = new WorkoutController();
            List <ExerciseType> lstExercises = new List <ExerciseType>();
            WorkoutRoutine      workout      = WorkoutRoutine.of(10, lstExercises, 100);

            // Arrange
            var result = controller.DeleteWorkout(workout, 5, 5);

            // Assert
            Assert.IsNotNull(result);
        }
Beispiel #14
0
        public async Task AddWorkout_ReturnsViewError_Database()
        {
            // Arrange
            var mockUserManager   = new FakeUserManager();
            var mockMapper        = new Mock <IMapper>();
            var mockLoggerFactory = new Mock <ILoggerFactory>();
            var mockLogger        = new Mock <ILogger>();

            mockLoggerFactory.Setup(l => l.CreateLogger(It.IsAny <string>())).Returns(mockLogger.Object);
            var mockWorkoutService = new Mock <IWorkoutService>();

            mockWorkoutService.Setup(w => w.GetAllWorkoutsAsync(It.IsAny <int>()))
            .ReturnsAsync(new List <WorkoutDto> {
                new WorkoutDto {
                }
            })
            .Verifiable();     // Return list of workouts
            mockWorkoutService.Setup(w => w.AddWorkoutAsync(It.IsAny <NewWorkoutDto>()))
            .ReturnsAsync(0)   // Error in database
            .Verifiable();
            mockWorkoutService.Setup(w => w.GetWorkoutAsync(It.IsAny <int>()))
            .ReturnsAsync(new WorkoutDto {
                WorkoutEntryDtos = new List <WorkoutEntryDto>()
            })
            .Verifiable();
            var mockExerciseService = new Mock <IExerciseService>();

            mockExerciseService.Setup(e => e.GetAllExercisesAsync())
            .ReturnsAsync(new List <ExerciseDto>())
            .Verifiable();
            var mockChallengeService  = new Mock <IChallengeService>();
            var mockWorkoutRepository = new Mock <IWorkoutRepository>();
            var workoutController     = new WorkoutController(
                mockLoggerFactory.Object,
                mockMapper.Object,
                mockWorkoutService.Object,
                mockExerciseService.Object,
                mockUserManager,
                mockWorkoutRepository.Object,
                mockChallengeService.Object);

            // Act
            var result = await workoutController.AddWorkout() as ViewResult;

            // Assert
            Assert.IsType <ViewResult>(result);
            Assert.Equal("/Error", result.ViewName);
        }
Beispiel #15
0
        public WorkoutsTests()
        {
            DatabaseContext dbContext = CreateEmptyDatabase();

            // create empty database
            this.exerciseRepository  = new ExerciseRepository(dbContext);
            this.workoutRepository   = new WorkoutRepository(dbContext);
            this.componentRepository = new ComponentRepository(dbContext);

            // create sevice
            this.workoutService  = new WorkoutService(this.exerciseRepository, this.workoutRepository);
            this.exerciseService = new ExerciseService(this.exerciseRepository, this.componentRepository);

            // create controller
            this.workoutController = new WorkoutController(this.workoutService, this.exerciseService);
        }
        public void UpdateTest()
        {
            // Arrange
            WorkoutController controller = new WorkoutController();

            // Act
            List <Workout> loadAll = controller.Get() as List <Workout>;

            //grab first result
            Workout w = loadAll[0];

            w.EndTime = System.DateTime.Now;

            int results = controller.Post(w);

            Assert.IsTrue(results > 0);
        }
        public void DeleteTest()
        {
            //always fails because There is a workout that depends on this Workouttype


            // Arrange
            WorkoutController controller = new WorkoutController();

            // Act
            List <Workout> loadAll = controller.Get() as List <Workout>;

            //grab first result
            Workout w = loadAll[0];

            int results = controller.Delete(w);

            Assert.IsTrue(results > 0);
        }
Beispiel #18
0
        public async Task EditWorkoutPost_ReturnsError_WhenModelStateIsInValid()
        {
            // Arrange
            var mockUserManager   = new FakeUserManager();
            var mockMapper        = new Mock <IMapper>();
            var mockLoggerFactory = new Mock <ILoggerFactory>();
            var mockLogger        = new Mock <ILogger>();

            mockLoggerFactory.Setup(l => l.CreateLogger(It.IsAny <string>())).Returns(mockLogger.Object);
            var mockWorkoutService = new Mock <IWorkoutService>();

            mockWorkoutService.Setup(w => w.GetWorkoutAsync(It.IsAny <int>()))
            .ReturnsAsync((WorkoutDto)null)
            .Verifiable();     // Return workout
            var mockExerciseService = new Mock <IExerciseService>();

            mockExerciseService.Setup(e => e.GetAllExercisesAsync())
            .ReturnsAsync((ICollection <ExerciseDto>)null)
            .Verifiable();     // Returns exercises
            var mockChallengeService  = new Mock <IChallengeService>();
            var mockWorkoutRepository = new Mock <IWorkoutRepository>();
            var workoutController     = new WorkoutController(
                mockLoggerFactory.Object,
                mockMapper.Object,
                mockWorkoutService.Object,
                mockExerciseService.Object,
                mockUserManager,
                mockWorkoutRepository.Object,
                mockChallengeService.Object);
            var invalidWorkout = new WorkoutViewModel()
            {
                Set = -10, Weight = -10, Reps = -10
            };

            workoutController.ModelState.AddModelError("", "");

            // Act
            var result = await workoutController.EditWorkout(invalidWorkout) as ViewResult;

            // Assert
            Assert.IsType <ViewResult>(result);
            Assert.IsType <WorkoutViewModel>(result.Model);
            Assert.Equal(false, result.ViewData.ModelState.IsValid);
        }
Beispiel #19
0
        public async Task DeleteEntry_RedirectToEditWorkout_IfDeleted()
        {
            // Arrange
            var mockUserManager   = new FakeUserManager();
            var mockMapper        = new Mock <IMapper>();
            var mockLoggerFactory = new Mock <ILoggerFactory>();
            var mockLogger        = new Mock <ILogger>();

            mockLoggerFactory.Setup(l => l.CreateLogger(It.IsAny <string>())).Returns(mockLogger.Object);
            var mockWorkoutService = new Mock <IWorkoutService>();

            mockWorkoutService.Setup(w => w.DeleteWorkoutEntryAsync(It.IsAny <int>(), It.IsAny <int>()))
            .ReturnsAsync(true)
            .Verifiable();
            var mockExerciseService   = new Mock <IExerciseService>();
            var mockChallengeService  = new Mock <IChallengeService>();
            var mockWorkoutRepository = new Mock <IWorkoutRepository>();

            var workoutController = new WorkoutController(
                mockLoggerFactory.Object,
                mockMapper.Object,
                mockWorkoutService.Object,
                mockExerciseService.Object,
                mockUserManager,
                mockWorkoutRepository.Object,
                mockChallengeService.Object);

            var expectedRedirectValues = new RouteValueDictionary()
            {
                { "controller", "Workout" },
                { "action", "EditWorkout" },
                { "id", 0 }
            };

            // Act
            var result = await workoutController.DeleteEntry(It.IsAny <int>(), It.IsAny <int>()) as RedirectToActionResult;

            // Assert
            Assert.IsType <RedirectToActionResult>(result);
            Assert.Equal("EditWorkout", result.ActionName);
            Assert.Equal(expectedRedirectValues, result.RouteValues);
        }
Beispiel #20
0
        public async Task ChallengePost_ReturnsBadRequestResult_WhenModelStateIsInvalid()
        {
            // Arrange
            var challengeViewModel = new NewChallengeViewModel()
            {
                Id           = 1,
                ExerciseId   = 1,
                ExerciseName = "Squat",
                Reps         = -10,
                Set          = -10,
                Weight       = -10
            };
            var mockUserManager   = new FakeUserManager();
            var mockMapper        = new Mock <IMapper>();
            var mockLoggerFactory = new Mock <ILoggerFactory>();
            var mockLogger        = new Mock <ILogger>();

            mockLoggerFactory.Setup(l => l.CreateLogger(It.IsAny <string>())).Returns(mockLogger.Object);
            var mockWorkoutService    = new Mock <IWorkoutService>();
            var mockExerciseService   = new Mock <IExerciseService>();
            var mockChallengeService  = new Mock <IChallengeService>();
            var mockWorkoutRepository = new Mock <IWorkoutRepository>();

            var workoutController = new WorkoutController(
                mockLoggerFactory.Object,
                mockMapper.Object,
                mockWorkoutService.Object,
                mockExerciseService.Object,
                mockUserManager,
                mockWorkoutRepository.Object,
                mockChallengeService.Object);

            workoutController.ModelState.AddModelError("ExerciseName", "Required");

            // Act
            var result = await workoutController.Challenge(challengeViewModel) as ViewResult;

            // Assert
            Assert.IsType <ViewResult>(result);
            Assert.IsType <NewChallengeViewModel>(result.Model);
            Assert.Equal(false, result.ViewData.ModelState.IsValid);
        }
Beispiel #21
0
        public async Task Workouts_ReturnsAViewResult_WithAListofWorkouts()
        {
            // Arrange
            var mockUserManager   = new FakeUserManager();
            var mockMapper        = new Mock <IMapper>();
            var mockLoggerFactory = new Mock <ILoggerFactory>();
            var mockLogger        = new Mock <ILogger>();

            mockLoggerFactory.Setup(l => l.CreateLogger(It.IsAny <string>())).Returns(mockLogger.Object);
            var workouts = new List <WorkoutDto> {
                new WorkoutDto {
                }
            };
            var mockWorkoutService = new Mock <IWorkoutService>();

            mockWorkoutService.Setup(w => w.GetAllWorkoutsAsync(It.IsAny <int>()))
            .ReturnsAsync(workouts)
            .Verifiable();
            var mockExerciseService   = new Mock <IExerciseService>();
            var mockChallengeService  = new Mock <IChallengeService>();
            var mockWorkoutRepository = new Mock <IWorkoutRepository>();
            var workoutController     = new WorkoutController(
                mockLoggerFactory.Object,
                mockMapper.Object,
                mockWorkoutService.Object,
                mockExerciseService.Object,
                mockUserManager,
                mockWorkoutRepository.Object,
                mockChallengeService.Object);


            // Act
            var viewResult = await workoutController.Workouts() as ViewResult;

            // Assert
            Assert.IsType <ViewResult>(viewResult);
            var model = Assert.IsAssignableFrom <IEnumerable <WorkoutViewModel> >(viewResult.ViewData.Model);

            Assert.Equal(0, model.Count());
        }
Beispiel #22
0
        public async Task EditWorkoutPost_ReturnsError_EmptyModel()
        {
            // Arrange
            var mockUserManager   = new FakeUserManager();
            var mockMapper        = new Mock <IMapper>();
            var mockLoggerFactory = new Mock <ILoggerFactory>();
            var mockLogger        = new Mock <ILogger>();

            mockLoggerFactory.Setup(l => l.CreateLogger(It.IsAny <string>())).Returns(mockLogger.Object);
            var mockWorkoutService = new Mock <IWorkoutService>();

            mockWorkoutService.Setup(w => w.GetWorkoutAsync(It.IsAny <int>()))
            .ReturnsAsync((WorkoutDto)null)
            .Verifiable();     // Return workout
            var mockExerciseService = new Mock <IExerciseService>();

            mockExerciseService.Setup(e => e.GetAllExercisesAsync())
            .ReturnsAsync((ICollection <ExerciseDto>)null)
            .Verifiable();     // Returns exercises
            var mockChallengeService  = new Mock <IChallengeService>();
            var mockWorkoutRepository = new Mock <IWorkoutRepository>();
            var workoutController     = new WorkoutController(
                mockLoggerFactory.Object,
                mockMapper.Object,
                mockWorkoutService.Object,
                mockExerciseService.Object,
                mockUserManager,
                mockWorkoutRepository.Object,
                mockChallengeService.Object);

            // Act
            var result = await workoutController.EditWorkout((WorkoutViewModel)null) as ViewResult;

            // Assert
            Assert.IsType <ViewResult>(result);
            Assert.Equal("/Error", result.ViewName);
        }
Beispiel #23
0
        public async Task ChallengePost_ReturnsViewError_ChallengeNotCreated()
        {
            // Arrange
            var newChallengeDto = new NewChallengeDto()
            {
                Weight = 10, ChallengeeId = 1, ChallengerId = 2, ExerciseId = 1, Reps = 10
            };
            var challengeableUserDtos = new List <ChallengeAbleUserDto>()
            {
                new ChallengeAbleUserDto {
                    DisplayName = "Test", Id = 1
                }
            };

            var challengeViewModel = new NewChallengeViewModel()
            {
                Id                    = 1,
                ExerciseId            = 1,
                ChallengeAbleUserDtos = challengeableUserDtos,
                ChallengeeId          = challengeableUserDtos.First().Id,
                ExerciseName          = "Squat",
                Reps                  = 10,
                Set                   = 10,
                Weight                = 10
            };

            var mockUserManager = new FakeUserManager();
            var mockMapper      = new Mock <IMapper>();

            mockMapper.Setup(m => m.Map <NewChallengeDto>(It.IsAny <NewChallengeViewModel>()))
            .Returns(newChallengeDto)
            .Verifiable();
            var mockLoggerFactory = new Mock <ILoggerFactory>();
            var mockLogger        = new Mock <ILogger>();

            mockLoggerFactory.Setup(l => l.CreateLogger(It.IsAny <string>())).Returns(mockLogger.Object);
            var mockWorkoutService   = new Mock <IWorkoutService>();
            var mockExerciseService  = new Mock <IExerciseService>();
            var mockChallengeService = new Mock <IChallengeService>();

            mockChallengeService.Setup(c => c.CreateChallengeAsync(It.IsAny <NewChallengeDto>()))
            .ReturnsAsync(0)     // Result challenge not created
            .Verifiable();
            var mockWorkoutRepository = new Mock <IWorkoutRepository>();

            var workoutController = new WorkoutController(
                mockLoggerFactory.Object,
                mockMapper.Object,
                mockWorkoutService.Object,
                mockExerciseService.Object,
                mockUserManager,
                mockWorkoutRepository.Object,
                mockChallengeService.Object);

            // Act
            var result = await workoutController.Challenge(challengeViewModel) as ViewResult;

            // Assert
            Assert.IsType <ViewResult>(result);
            Assert.Equal("/Error", result.ViewName);
        }
Beispiel #24
0
        public async Task AddWorkout_ReturnsEditRedirectViewResult_WithWorkoutModel()
        {
            // Arrange
            var mockUserManager  = new FakeUserManager();
            var mockMapper       = new Mock <IMapper>();
            var workoutEntries   = new List <WorkoutEntryViewModel>();
            var exercises        = new List <ExerciseDto>();
            var workoutViewModel = new WorkoutViewModel()
            {
                CreationDate = DateTime.MinValue, ExerciseId = 0, Name = "Workout",
                Exercises    = exercises, Id = 0, Reps = 10, Weight = 10, Set = 10, WorkoutEntries = workoutEntries
            };

            mockMapper.Setup(m => m.Map <WorkoutDto, WorkoutViewModel>(It.IsAny <WorkoutDto>()))
            .Returns(workoutViewModel)
            .Verifiable();
            var mockLoggerFactory = new Mock <ILoggerFactory>();
            var mockLogger        = new Mock <ILogger>();

            mockLoggerFactory.Setup(l => l.CreateLogger(It.IsAny <string>())).Returns(mockLogger.Object);
            var mockWorkoutService = new Mock <IWorkoutService>();

            mockWorkoutService.Setup(w => w.GetAllWorkoutsAsync(It.IsAny <int>()))
            .ReturnsAsync(new List <WorkoutDto> {
                new WorkoutDto {
                }
            })
            .Verifiable();     // Return list of workouts
            mockWorkoutService.Setup(w => w.AddWorkoutAsync(It.IsAny <NewWorkoutDto>()))
            .ReturnsAsync(1)
            .Verifiable();
            mockWorkoutService.Setup(w => w.GetWorkoutAsync(It.IsAny <int>()))
            .ReturnsAsync(new WorkoutDto {
                WorkoutEntryDtos = new List <WorkoutEntryDto>()
            })
            .Verifiable();
            var mockExerciseService = new Mock <IExerciseService>();

            mockExerciseService.Setup(e => e.GetAllExercisesAsync())
            .ReturnsAsync(exercises);
            var mockChallengeService  = new Mock <IChallengeService>();
            var mockWorkoutRepository = new Mock <IWorkoutRepository>();
            var workoutController     = new WorkoutController(
                mockLoggerFactory.Object,
                mockMapper.Object,
                mockWorkoutService.Object,
                mockExerciseService.Object,
                mockUserManager,
                mockWorkoutRepository.Object,
                mockChallengeService.Object);

            //var expectedRedirectValues = new RouteValueDictionary()
            //{
            //    // TODO
            //    { "Id", 0 },
            //    { "Name", "Workout" },
            //    { "CreationDate", DateTime.MinValue },
            //    //{ "WorkoutEntries", workoutEntries },
            //    //{ "Exercises", exercises },
            //    { "ExerciseId", 0 },
            //    { "Set", 10 },
            //    { "Weight", 10 },
            //    { "Reps", 10 }
            //};

            // Act
            var result = await workoutController.AddWorkout() as RedirectToActionResult;

            // Assert
            Assert.IsType <RedirectToActionResult>(result);
            Assert.Equal("EditWorkout", result.ActionName);
            //Assert.Equal(expectedRedirectValues, result.RouteValues);
        }
Beispiel #25
0
        public async Task Challenge_ReturnsViewResult_WithModel()
        {
            // Arrange
            var workoutEntryDto = new WorkoutEntryDto()
            {
                Id = 1, ExerciseId = 1, ExerciseName = "Squat", Reps = 10, Set = 10, Weight = 10
            };
            var challengeableUserDtos = new List <ChallengeAbleUserDto>()
            {
                new ChallengeAbleUserDto {
                    DisplayName = "Test", Id = 1
                }
            };
            var challengeViewModel = new NewChallengeViewModel()
            {
                Id                    = 1,
                ExerciseId            = 1,
                ChallengeAbleUserDtos = challengeableUserDtos,
                ChallengeeId          = challengeableUserDtos.First().Id,
                ExerciseName          = "Squat",
                Reps                  = 10,
                Set                   = 10,
                Weight                = 10
            };

            var mockUserManager = new FakeUserManager();
            var mockMapper      = new Mock <IMapper>();

            mockMapper.Setup(m => m.Map <NewChallengeViewModel>(It.IsAny <WorkoutEntryDto>()))
            .Returns(challengeViewModel)
            .Verifiable();
            var mockLoggerFactory = new Mock <ILoggerFactory>();
            var mockLogger        = new Mock <ILogger>();

            mockLoggerFactory.Setup(l => l.CreateLogger(It.IsAny <string>())).Returns(mockLogger.Object);
            var mockWorkoutService = new Mock <IWorkoutService>();

            mockWorkoutService.Setup(w => w.GetWorkoutEntryAsync(It.IsAny <int>()))
            .ReturnsAsync(workoutEntryDto)
            .Verifiable();
            var mockExerciseService  = new Mock <IExerciseService>();
            var mockChallengeService = new Mock <IChallengeService>();

            mockChallengeService.Setup(c => c.GetChallengeAbleUsersAsync(It.IsAny <int>()))
            .ReturnsAsync(challengeableUserDtos)
            .Verifiable();
            var mockWorkoutRepository = new Mock <IWorkoutRepository>();

            var workoutController = new WorkoutController(
                mockLoggerFactory.Object,
                mockMapper.Object,
                mockWorkoutService.Object,
                mockExerciseService.Object,
                mockUserManager,
                mockWorkoutRepository.Object,
                mockChallengeService.Object);

            // Act
            var result = await workoutController.Challenge(It.IsAny <int>(), It.IsAny <int>()) as ViewResult;

            // Assert
            Assert.IsType <ViewResult>(result);
            var model = Assert.IsType <NewChallengeViewModel>(result.Model);

            Assert.Equal(1, model.Id);
            Assert.Equal(1, model.ExerciseId);
            Assert.Equal(challengeableUserDtos, model.ChallengeAbleUserDtos);
            Assert.Equal(1, model.ChallengeeId);
            Assert.Equal(10, model.Reps);
            Assert.Equal(10, model.Set);
            Assert.Equal(10, model.Weight);
            //Assert.Equal("Challenge", result);
        }
Beispiel #26
0
        public async Task EditWorkout_ReturnsAView_WithWorkout()
        {
            // Arrange
            var workoutDto = new WorkoutDto()
            {
                Name             = "Workout", CreationDate = DateTime.MinValue, Id = 1, UserId = 1,
                WorkoutEntryDtos = new List <WorkoutEntryDto> {
                    new WorkoutEntryDto {
                        ExerciseId = 1, ExerciseName = "Squat", Id = 1, Reps = 10, Set = 10, Weight = 10
                    }
                }
            };
            var exercises = new List <ExerciseDto>
            {
                new ExerciseDto {
                    Description = "Description", Id = 1, Name = "Squat"
                }
            };
            var workoutEntries = new List <WorkoutEntryViewModel>
            {
                new WorkoutEntryViewModel {
                    ExerciseName = "Squat", Id = 1, Reps = 10, Set = 10, Weight = 10
                }
            };
            var workoutViewModel = new WorkoutViewModel()
            {
                CreationDate   = DateTime.MinValue, ExerciseId = 1, Name = "Workout", Exercises = exercises, Id = 1,
                WorkoutEntries = workoutEntries, Reps = 10, Weight = 10, Set = 10
            };

            var mockUserManager = new FakeUserManager();
            var mockMapper      = new Mock <IMapper>();

            mockMapper.Setup(m => m.Map <WorkoutViewModel>(workoutDto))
            .Returns(workoutViewModel)
            .Verifiable();
            mockMapper.Setup(m => m.Map <ICollection <WorkoutEntryDto>, IEnumerable <WorkoutEntryViewModel> >(It.IsAny <ICollection <WorkoutEntryDto> >()))
            .Returns(workoutEntries)
            .Verifiable();
            var mockLoggerFactory = new Mock <ILoggerFactory>();
            var mockLogger        = new Mock <ILogger>();

            mockLoggerFactory.Setup(l => l.CreateLogger(It.IsAny <string>())).Returns(mockLogger.Object);
            var mockWorkoutService = new Mock <IWorkoutService>();

            mockWorkoutService.Setup(w => w.GetWorkoutAsync(It.IsAny <int>()))
            .ReturnsAsync(workoutDto)
            .Verifiable();     // Return workout
            var mockExerciseService = new Mock <IExerciseService>();

            mockExerciseService.Setup(e => e.GetAllExercisesAsync())
            .ReturnsAsync(exercises)
            .Verifiable();     // Returns exercises
            var mockChallengeService  = new Mock <IChallengeService>();
            var mockWorkoutRepository = new Mock <IWorkoutRepository>();
            var workoutController     = new WorkoutController(
                mockLoggerFactory.Object,
                mockMapper.Object,
                mockWorkoutService.Object,
                mockExerciseService.Object,
                mockUserManager,
                mockWorkoutRepository.Object,
                mockChallengeService.Object);

            // Act
            var result = await workoutController.EditWorkout(It.IsAny <int>()) as ViewResult;

            // Assert
            Assert.IsType <ViewResult>(result);
            //Assert.Equal("EditWorkout", result.ViewName);
            var model = Assert.IsType <WorkoutViewModel>(result.Model);

            Assert.Equal(DateTime.MinValue, model.CreationDate);
            Assert.Equal(1, model.ExerciseId);
            Assert.Equal("Workout", model.Name);
            Assert.Equal(exercises, model.Exercises);
            Assert.Equal(1, model.Id);
            Assert.Equal(workoutEntries, model.WorkoutEntries);
            Assert.Equal(10, model.Reps);
            Assert.Equal(10, model.Weight);
            Assert.Equal(10, model.Set);
        }
Beispiel #27
0
 public WorkoutControllerTest()
 {
     WorkoutExcerciseRepoMock = new Mock <IWorkoutExcerciseRepo>();
     WorkoutController        = new WorkoutController(WorkoutExcerciseRepoMock.Object);
 }