public void SetUp() { _dealsRepository = new Mock <IDealsRepository>(); _dealsRepository.Setup(x => x.SaveDeal(It.IsAny <SaveDealRequest>())).Returns(new SaveDealResponse()); var keyReader = new Mock <IKeyReader>(); keyReader.Setup(x => x.GetKey()).Returns("KEY"); var userService = new Mock <IUserService>(); userService.Setup(x => x.SaveLastKnownLocation(It.IsAny <double>(), It.IsAny <double>(), It.IsAny <string>())).Returns(new SaveLocationResponse()); var subject = new DealsService(_dealsRepository.Object, new DealsMapper(new UserMapper(new AesEncryptor(keyReader.Object.GetKey()))), userService.Object); _result = subject.SaveDealDetails(new DealModel { Location = new Location { Latitude = 51, Longitude = 2 }, Summary = "Some Summary", Title = "Some Title", UserIdentifier = "Some User Identifier", Tags = new List <string> { "General" } }); }
public SaveDealDetailsResponse SaveDealDetails(DealModel deal) { var response = new SaveDealDetailsResponse(); if (deal.Title == null || deal.Summary == null || deal.Location == null || deal.Tags.Count == 0) { response.AddError(new Error { Code = ErrorCodes.ValidationError, UserMessage = "Title, Summary, Tags and Location fields are required.", TechnicalMessage = "User has not specified required fields." }); return(response); } var saveDealDetailsResponse = _dealsRepository.SaveDeal(new SaveDealRequest { Deal = deal }); if (saveDealDetailsResponse.HasError) { response.AddError(saveDealDetailsResponse.Error); } return(response); }