public BonusCardDto CreateBonusCard(BonusCardDto bonusCardDto) { var errors = validator.Validate(bonusCardDto); if (!String.IsNullOrWhiteSpace(errors)) { throw new ArgumentException(errors); } var bonusCard = mapper.Map <BonusCardDto, BonusCard>(bonusCardDto); bonusCard.Customer = unitOfWork.Customers.Get(bonusCardDto.CustomerId); if (bonusCard.Customer == null) { throw new ArgumentException("Customer not found"); } if (bonusCard.Customer.BonusCard != null) { throw new ArgumentException("Customer already has a card"); } bonusCard.Number = GetUniqueNumber(); unitOfWork.BonusCards.Create(bonusCard); unitOfWork.Save(); return(mapper.Map <BonusCard, BonusCardDto>(bonusCard)); }
public void CreateBonusCard_Null_ArgumentException() { //Arrange BonusCardDto bonusCard = null; //Act //Assert Assert.Throws <ArgumentException>(() => bonusCardService.CreateBonusCard(bonusCard)); }
public void GetBonusCard_NonExistentCardNumber_Null() { //Arrange var cardNumber = Int32.MaxValue; BonusCardDto expected = null; //Act var actual = bonusCardService.GetBonusCard(cardNumber); //Assert Assert.Equal(expected, actual); }
public void CreateBonusCard_Null_CorrectExceptionMessage() { //Arrange BonusCardDto bonusCard = null; var expected = "bonusCard can not be null"; //Act var actual = Record.Exception(() => bonusCardService.CreateBonusCard(bonusCard)).Message.Trim(); //Assert Assert.Equal(expected, actual); }
public void GetBonusCard_NotRealPhoneNumber_Null() { //Arrange string phoneNumber = "ItIsNotAPhone"; BonusCardDto expected = null; //Act var actual = bonusCardService.GetBonusCard(phoneNumber); //Assert Assert.Equal(expected, actual); }
public void CreateBonusCard_CustomeHasACard_ArgumentException() { //Arrange var bonusCard = new BonusCardDto { Id = 5, Balance = 50, ExpirationUTCDate = DateTime.Now.AddDays(1), CustomerId = 3 }; //Act //Assert Assert.Throws <ArgumentException>(() => bonusCardService.CreateBonusCard(bonusCard)); }
public void CreateBonusCard_CorrectBonusCard_ShouldBeNotNull() { //Arrange var bonusCard = new BonusCardDto { Id = 5, Balance = 0, ExpirationUTCDate = DateTime.Now.AddDays(1), CustomerId = 1 }; //Act bonusCardService.CreateBonusCard(bonusCard); var actual = fakeBonusCards.Last(); //Assert Assert.NotNull(actual); }
public void CreateBonusCard_ustomeHasACard_CorrectExceptionMessage() { //Arrange var bonusCard = new BonusCardDto { Id = 5, Balance = 50, ExpirationUTCDate = DateTime.Now.AddDays(1), CustomerId = 3 }; var expected = "Customer already has a card"; //Act var actual = Record.Exception(() => bonusCardService.CreateBonusCard(bonusCard)).Message.Trim(); //Assert Assert.Equal(expected, actual); }
public void CreateBonusCard_NotRealCustomerId_CorrectExceptionMessage() { //Arrange var bonusCard = new BonusCardDto { Id = 5, Balance = 50, ExpirationUTCDate = DateTime.Now.AddDays(1), CustomerId = Int32.MaxValue }; var expected = "Customer not found"; //Act var actual = Record.Exception(() => bonusCardService.CreateBonusCard(bonusCard)).Message.Trim(); //Assert Assert.Equal(expected, actual); }
public void CreateBonusCard_NegativeBalance_CorrectExceptionMessage() { //Arrange var bonusCard = new BonusCardDto { Id = 5, Balance = -50, ExpirationUTCDate = DateTime.Now.AddDays(1), CustomerId = 1 }; var expected = "Balance cannot be less than zero"; //Act var actual = Record.Exception(() => bonusCardService.CreateBonusCard(bonusCard)).Message.Trim(); //Assert Assert.Equal(expected, actual); }
public void CreateBonusCard_CorrectBonusCardWithCustomer2_CustomerId2() { //Arrange var bonusCard = new BonusCardDto { Id = 5, Balance = 0, ExpirationUTCDate = DateTime.Now.AddDays(1), CustomerId = 2 }; //Act bonusCardService.CreateBonusCard(bonusCard); var actual = fakeBonusCards.Last(); //Assert Assert.Equal(bonusCard.CustomerId, actual.Customer.Id); }
public IActionResult Create([FromBody] BonusCardDto bonusCard) { logger.Info(nameof(Create)); try { var newBonusCard = bonusCardService.CreateBonusCard(bonusCard); return(CreatedAtAction(nameof(GetByCardNumber), new { cardNumber = newBonusCard.Number }, newBonusCard)); } catch (ArgumentException e) { logger.Warn(e.Message); return(BadRequest(e.Message)); } catch (Exception e) { logger.Error(e.Message); return(StatusCode(500)); } }