/// <summary> /// Creates an instance of the <see cref="ManageGoalsViewModel" /> class. /// </summary> /// <param name="goals">The goals.</param> /// <returns> /// The view model. /// </returns> /// <exception cref="System.ArgumentNullException"> /// goals /// Exception thrown if the goals are null. /// </exception> public ManageGoalsViewModel NewManageGoalsViewModel(IList <GoalProxy> goals) { if (goals == null) { throw new ArgumentNullException(nameof(goals)); } var addModel = new AddGoalViewModel { Goal = new GoalViewModel { Amount = 0, Complete = false, EndDate = DateTime.Now.AddMonths(6), Name = string.Empty, Id = Guid.Empty, StartDate = DateTime.Now } }; var editModel = new EditGoalViewModel { Goal = new GoalViewModel() }; var retVal = new ManageGoalsViewModel { AddGoal = addModel, EditGoal = editModel, Goals = goals.Select(ProxyToViewModel).ToList() }; return(retVal); }
private async Task ShowManageGoalsWindow() { var manageGoalsViewModel = new ManageGoalsViewModel(_repository, _windowService); await manageGoalsViewModel.Initialize(); _windowService.OpenDialogWindow(manageGoalsViewModel); }
public void SetUp() { validViewModel = new GoalViewModel { Amount = 10, Id = Guid.NewGuid(), UserId = Guid.NewGuid() }; validGoalProxy = new GoalProxy { Amount = 10, Id = Guid.NewGuid(), UserId = Guid.NewGuid() }; validManageGoalsViewModel = new ManageGoalsViewModel(); validDeleteGoalRequest = new DeleteGoalRequest { GoalId = validGoalProxy.Id }; validDeleteGoalResponse = new DeleteGoalResponse { DeleteSuccess = true }; validAddGoalRequest = new AddGoalRequest { Goal = validGoalProxy }; validAddGoalResponse = new AddGoalResponse { Goal = validGoalProxy }; validGetGoalRequest = new GetGoalRequest { GoalId = validGoalProxy.Id }; validGetGoalResponse = new GetGoalResponse { Goal = validGoalProxy }; validGetGoalsForUserRequest = new GetGoalsForUserRequest { UserId = validGoalProxy.Id }; validGetGoalsForUserResponse = new GetGoalsForUserResponse { Goals = new List <GoalProxy> { validGoalProxy } }; validEditGoalRequest = new EditGoalRequest { Goal = validGoalProxy }; validEditGoalResponse = new EditGoalResponse { Goal = validGoalProxy }; invalidGoalViewModel = new GoalViewModel { Id = Guid.NewGuid() }; invalidAddGoalRequest = new AddGoalRequest(); invalidAddGoalResponse = new AddGoalResponse { Errors = { new ResponseErrorWrapper() } }; invalidGetGoalRequest = new GetGoalRequest(); invalidGetGoalResponse = new GetGoalResponse { Errors = { new ResponseErrorWrapper() } }; invalidDeleteGoalRequest = new DeleteGoalRequest(); invalidDeleteGoalResponse = new DeleteGoalResponse { Errors = { new ResponseErrorWrapper() } }; invalidGetGoalsForUserRequest = new GetGoalsForUserRequest(); invalidGetGoalsForUserResponse = new GetGoalsForUserResponse { Errors = { new ResponseErrorWrapper() } }; invalidEditGoalRequest = new EditGoalRequest(); invalidEditGoalResponse = new EditGoalResponse { Errors = { new ResponseErrorWrapper() } }; assembler = Substitute.For <IGoalAssembler>(); dataAccess = Substitute.For <IGoalDataAccess>(); assembler.NewAddGoalRequest(validViewModel, validUsername).Returns(validAddGoalRequest); assembler.NewAddGoalRequest(invalidGoalViewModel, validUsername).Returns(invalidAddGoalRequest); assembler.NewAddGoalRequest(null, validUsername).Throws(new Exception("TEST EXCEPTION")); assembler.NewDeleteGoalRequest(validViewModel.Id, validUsername).Returns(validDeleteGoalRequest); assembler.NewDeleteGoalRequest(invalidGoalViewModel.Id, validUsername).Returns(invalidDeleteGoalRequest); assembler.NewDeleteGoalRequest(Guid.Empty, validUsername).Throws(new Exception("TEST EXCEPTION")); assembler.NewGetGoalRequest(validViewModel.Id, validUsername).Returns(validGetGoalRequest); assembler.NewGetGoalRequest(invalidGoalViewModel.Id, validUsername).Returns(invalidGetGoalRequest); assembler.NewGetGoalRequest(Guid.Empty, validUsername).Throws(new Exception("TEST EXCEPTION")); assembler.NewGetGoalsForUserRequest(validViewModel.Id, validUsername).Returns(validGetGoalsForUserRequest); assembler.NewGetGoalsForUserRequest(invalidGoalViewModel.Id, validUsername) .Returns(invalidGetGoalsForUserRequest); assembler.NewGetGoalsForUserRequest(Guid.Empty, validUsername).Throws(new Exception("TEST EXCEPTION")); assembler.NewEditGoalRequest(validViewModel, validUsername).Returns(validEditGoalRequest); assembler.NewEditGoalRequest(invalidGoalViewModel, validUsername).Returns(invalidEditGoalRequest); assembler.NewEditGoalRequest(null, validUsername).Throws(new Exception("TEST EXCEPTION")); assembler.NewManageGoalsViewModel(new List <GoalProxy> { validGoalProxy }) .Returns(validManageGoalsViewModel); dataAccess.AddGoal(validAddGoalRequest).Returns(validAddGoalResponse); dataAccess.AddGoal(invalidAddGoalRequest).Returns(invalidAddGoalResponse); dataAccess.DeleteGoal(validDeleteGoalRequest).Returns(validDeleteGoalResponse); dataAccess.DeleteGoal(invalidDeleteGoalRequest).Returns(invalidDeleteGoalResponse); dataAccess.GetGoal(validGetGoalRequest).Returns(validGetGoalResponse); dataAccess.GetGoal(invalidGetGoalRequest).Returns(invalidGetGoalResponse); dataAccess.GetGoalsForUser(validGetGoalsForUserRequest).Returns(validGetGoalsForUserResponse); dataAccess.GetGoalsForUser(invalidGetGoalsForUserRequest).Returns(invalidGetGoalsForUserResponse); dataAccess.EditGoal(validEditGoalRequest).Returns(validEditGoalResponse); dataAccess.EditGoal(invalidEditGoalRequest).Returns(invalidEditGoalResponse); errorHelper = Substitute.For <IErrorHelper>(); errorHelper.Create(Arg.Any <Exception>(), Arg.Any <string>(), Arg.Any <Type>(), Arg.Any <string>()) .Returns(new ResponseErrorWrapper()); errorHelper.Create(Arg.Any <string>(), Arg.Any <string>(), Arg.Any <Type>(), Arg.Any <string>()) .Returns(new ResponseErrorWrapper()); orchestrator = new GoalOrchestrator(dataAccess, assembler, errorHelper); }