Ejemplo n.º 1
0
        public void SetUp()
        {
            assembler      = new GoalAssembler();
            validDataModel = new GoalDataModel
            {
                CreationTime = DateTime.Now,
                Id           = Guid.NewGuid(),
                Amount       = 1,
                Complete     = true,
                EndDate      = DateTime.Now,
                Name         = "TEST",
                StartDate    = DateTime.Now,
                UserId       = Guid.NewGuid()
            };

            validGoals = new List <GoalDataModel> {
                validDataModel
            };
            validGoalProxy = new GoalProxy
            {
                Amount    = 1.0,
                Complete  = true,
                EndDate   = DateTime.Now,
                Id        = Guid.NewGuid(),
                Name      = "TEST",
                StartDate = DateTime.Now,
                UserId    = Guid.NewGuid()
            };

            validGuid = Guid.NewGuid();
        }
Ejemplo n.º 2
0
 /// <summary>
 /// Converts an instance of the <see cref="GoalDataModel"/> class, to a <see cref="GoalProxy"/> instance.
 /// </summary>
 /// <param name="dataModel">The data model.</param>
 /// <returns>The proxy.</returns>
 private static GoalProxy DataModelToProxy(GoalDataModel dataModel)
 {
     return(new GoalProxy
     {
         Amount = dataModel.Amount,
         Complete = dataModel.Complete,
         UserId = dataModel.UserId,
         EndDate = dataModel.EndDate,
         Name = dataModel.Name,
         Id = dataModel.Id,
         StartDate = dataModel.StartDate
     });
 }
Ejemplo n.º 3
0
        /// <summary>
        /// Adds a goal to the database.
        /// </summary>
        /// <param name="model">The model.</param>
        /// <returns>
        /// The newly added goal.
        /// </returns>
        public async Task <GoalDataModel> AddGoal(GoalDataModel model)
        {
            using (var context = new DatabaseContext())
            {
                model.Id = Guid.NewGuid();

                model.CreationTime = DateTime.Now;
                context.Goals.Add(model);

                var rows = await context.SaveChangesAsync();

                return(rows > 0 ? model : null);
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Creates a new instance of the <see cref="AddGoalResponse" /> class.
        /// </summary>
        /// <param name="addedModel">The added model.</param>
        /// <param name="requestReference">The request reference.</param>
        /// <returns>
        /// The response object
        /// </returns>
        /// <exception cref="System.ArgumentNullException">
        /// Exception thrown if the data model or request reference are null or empty.
        /// </exception>
        public AddGoalResponse NewAddGoalResponse(GoalDataModel addedModel, Guid requestReference)
        {
            if (addedModel == null)
            {
                throw new ArgumentNullException(nameof(addedModel));
            }

            if (requestReference.Equals(Guid.Empty))
            {
                throw new ArgumentNullException(nameof(requestReference));
            }

            return(new AddGoalResponse {
                Goal = DataModelToProxy(addedModel), RequestReference = requestReference
            });
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Updates a goal in the database.
        /// </summary>
        /// <param name="model">The updated model.</param>
        /// <returns>
        /// The updated data model.
        /// </returns>
        /// <exception cref="System.Exception">
        /// Exception thrown if the requested goal cannot be found.
        /// </exception>
        public async Task <GoalDataModel> EditGoal(GoalDataModel model)
        {
            using (var context = new DatabaseContext())
            {
                var toEdit = await GetGoal(model.Id);

                if (toEdit == null)
                {
                    throw new Exception(Goal.Error_CouldNotFindGoal);
                }

                model.Id           = toEdit.Id;
                model.CreationTime = toEdit.CreationTime;

                context.Goals.Attach(model);
                context.Entry(model).State = EntityState.Modified;

                var rows = await context.SaveChangesAsync();

                return(rows > 0 ? model : null);
            }
        }
Ejemplo n.º 6
0
        public void SetUp()
        {
            userId        = Guid.NewGuid();
            expenditureId = Guid.NewGuid();

            validData = new List <GoalDataModel>();

            invalidDeleteGoalRequest      = new DeleteGoalRequest();
            invalidEditGoalRequest        = new EditGoalRequest();
            invalidGetGoalsForUserRequest = new GetGoalsForUserRequest();
            invalidGetGoalRequest         = new GetGoalRequest();
            invalidAddGoalRequest         = new AddGoalRequest();

            validGoalDataModel = new GoalDataModel
            {
                Amount       = 1,
                CreationTime = DateTime.Now,
                Id           = Guid.NewGuid(),
                UserId       = Guid.NewGuid()
            };

            expenditureProxy = new GoalProxy {
                Amount = 1.0, Id = Guid.NewGuid(), UserId = Guid.NewGuid()
            };

            validDeleteGoalRequest = new DeleteGoalRequest {
                GoalId = Guid.NewGuid(), Username = "******"
            };

            validAddGoalRequest = new AddGoalRequest {
                Goal = expenditureProxy, Username = "******"
            };

            validGetGoalsForUserRequest = new GetGoalsForUserRequest {
                UserId = userId, Username = "******"
            };

            validGetGoalRequest = new GetGoalRequest {
                GoalId = expenditureId, Username = "******"
            };

            validEditGoalRequest = new EditGoalRequest {
                Goal = expenditureProxy, Username = "******"
            };

            validGetGoalsForUserResponse =
                new GetGoalsForUserResponse {
                Goals = new List <GoalProxy> {
                    expenditureProxy
                }
            };
            validGetGoalResponse = new GetGoalResponse {
                Goal = expenditureProxy
            };
            validAddGoalResponse = new AddGoalResponse {
                Goal = expenditureProxy
            };
            validEditGoalResponse = new EditGoalResponse {
                Goal = expenditureProxy
            };
            validDeleteGoalResponse = new DeleteGoalResponse {
                DeleteSuccess = true
            };

            assembler   = Substitute.For <IGoalAssembler>();
            repository  = Substitute.For <IGoalRepository>();
            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());

            repository.AddGoal(validGoalDataModel).Returns(validGoalDataModel);
            repository.AddGoal(null).Throws(new Exception("TEST"));

            repository.DeleteGoal(validDeleteGoalRequest.GoalId).Returns(true);
            repository.DeleteGoal(invalidDeleteGoalRequest.GoalId).Throws(new Exception("TEST"));

            repository.EditGoal(validGoalDataModel).Returns(validGoalDataModel);
            repository.EditGoal(null).Throws(new Exception("TEST"));

            repository.GetGoal(expenditureId).Returns(validGoalDataModel);
            repository.GetGoal(Guid.Empty).Throws(new Exception("TEST"));

            repository.GetGoalsForUser(validGetGoalsForUserRequest.UserId)
            .Returns(new List <GoalDataModel> {
                validGoalDataModel
            });
            repository.GetGoalsForUser(Guid.Empty).Throws(new Exception("TEST"));

            assembler.NewAddGoalResponse(validGoalDataModel, validAddGoalRequest.RequestReference)
            .Returns(validAddGoalResponse);

            assembler.NewDeleteGoalResponse(true, validDeleteGoalRequest.GoalId).Returns(validDeleteGoalResponse);

            assembler.NewEditGoalResponse(validGoalDataModel, validEditGoalRequest.RequestReference)
            .Returns(validEditGoalResponse);

            assembler.NewGoalDataModel(expenditureProxy).Returns(validGoalDataModel);

            assembler.NewGetGoalsForUserResponse(
                Arg.Any <List <GoalDataModel> >(),
                validGetGoalsForUserRequest.RequestReference)
            .Returns(validGetGoalsForUserResponse);

            assembler.NewDeleteGoalResponse(true, validDeleteGoalRequest.RequestReference)
            .Returns(validDeleteGoalResponse);

            assembler.NewGetGoalResponse(validGoalDataModel, validGetGoalRequest.RequestReference)
            .Returns(validGetGoalResponse);

            orchestrator = new GoalOrchestrator(assembler, repository, errorHelper);
        }
Ejemplo n.º 7
0
 public void TearDown()
 {
     assembler      = null;
     validDataModel = null;
     validGoals     = null;
 }