public void SetUp()
        {
            _voteRepository = new Mock <IVoteRepository>();
            _voteRepository.Setup(x => x.CastVote(It.IsAny <CastVoteRequest>())).Returns(new CastVoteResponse
            {
                HasError = true,
                Error    = new Error
                {
                    Code             = ErrorCodes.DatabaseError,
                    UserMessage      = "Some User Message",
                    TechnicalMessage = "Some Technical Message"
                }
            });

            _userId = Guid.NewGuid();
            _dealId = Guid.NewGuid();

            var subject = new VoteService(_voteRepository.Object);

            _result = subject.CastVote(new CastVoteDetailsRequest
            {
                Positive = true,
                Vote     = new VoteModel
                {
                    UserId = _userId.ToString(),
                    DealId = _dealId.ToString()
                }
            });
        }
Example #2
0
        public void SetUp()
        {
            _voteRepository = new Mock <IVoteRepository>();
            _voteRepository.Setup(x => x.CastVote(It.IsAny <CastVoteRequest>())).Returns(new CastVoteResponse());

            var subject = new VoteService(_voteRepository.Object);

            _result = subject.CastVote(new CastVoteDetailsRequest
            {
                Positive = true,
                Vote     = new VoteModel
                {
                    UserId = "NOT_A_GUID",
                    DealId = Guid.NewGuid().ToString()
                }
            });
        }
Example #3
0
        public CastVoteDetailsResponse CastVote(CastVoteDetailsRequest request)
        {
            var response = new CastVoteDetailsResponse();

            Guid userId;

            if (!Guid.TryParse(request.Vote.UserId, out userId))
            {
                response.AddError(new Error
                {
                    Code             = ErrorCodes.InvalidGuidProvided,
                    UserMessage      = "Something went wrong. Please try again later.",
                    TechnicalMessage = "Provided user identifier is not a valid guid."
                });
                return(response);
            }

            Guid dealId;

            if (!Guid.TryParse(request.Vote.DealId, out dealId))
            {
                response.AddError(new Error
                {
                    Code             = ErrorCodes.InvalidGuidProvided,
                    UserMessage      = "Something went wrong. Please try again later.",
                    TechnicalMessage = "Provided deal identifier is not a valid guid."
                });
                return(response);
            }

            var castVoteResponse = _voteRepository.CastVote(new CastVoteRequest
            {
                UserId   = userId,
                DealId   = dealId,
                Positive = request.Positive
            });

            if (castVoteResponse.HasError)
            {
                response.AddError(castVoteResponse.Error);
            }

            return(response);
        }