/// <summary> /// <see cref="Microsoft.Samples.NLayerApp.Application.MainBoundedContext.ERPModule.Services.ISalesAppService"/> /// </summary> /// <param name="bookDTO"><see cref="Microsoft.Samples.NLayerApp.Application.MainBoundedContext.ERPModule.Services.ISalesAppService"/></param> public BookDTO AddNewBook(BookDTO bookDTO) { if (bookDTO == null) throw new ArgumentNullException(Messages.warning_CannotAddSoftwareWithNullInformation); //Create the book entity var newBook = new Book(bookDTO.Title, bookDTO.Description,bookDTO.Publisher,bookDTO.ISBN); //set stock and unit price newBook.IncrementStock(bookDTO.AmountInStock); newBook.ChangeUnitPrice(bookDTO.UnitPrice); //Assign the poid newBook.GenerateNewIdentity(); //save software SaveProduct(newBook); //return software dto return newBook.ProjectedAs<BookDTO>(); }
public void AddNewBookReturnAddedBook() { //Arrange var customerRepository = new SICustomerRepository(); var orderRepository = new SIOrderRepository(); var productRepository = new SIProductRepository(); productRepository.UnitOfWorkGet = () => { var uow = new SIUnitOfWork(); uow.Commit = () => { }; return uow; }; productRepository.AddProduct = (product) => { }; var salesManagement = new SalesAppService(productRepository, orderRepository, customerRepository); var dto = new BookDTO() { Title = "The title", Description = "description", Publisher = "license", ISBN = "isbn", AmountInStock = 10, UnitPrice = 10 }; //Act var result = salesManagement.AddNewBook(dto); //Assert Assert.IsNotNull(result); Assert.IsTrue(result.Id != Guid.Empty); Assert.AreEqual(result.Title, dto.Title); Assert.AreEqual(result.Description, dto.Description); Assert.AreEqual(result.Publisher, dto.Publisher); Assert.AreEqual(result.ISBN, dto.ISBN); Assert.AreEqual(result.AmountInStock, dto.AmountInStock); Assert.AreEqual(result.UnitPrice, dto.UnitPrice); }
/// <summary> /// <see cref="Microsoft.Samples.NLayerApp.Application.MainBoundedContext.BankingModule.Services.IMainBoundedContextService"/> /// </summary> /// <param name="book"><see cref="Microsoft.Samples.NLayerApp.Application.MainBoundedContext.BankingModule.Services.IMainBoundedContextService"/></param> /// <returns><see cref="Microsoft.Samples.NLayerApp.Application.MainBoundedContext.BankingModule.Services.IMainBoundedContextService"/></returns> public BookDTO AddNewBook(BookDTO book) { return _salesAppService.AddNewBook(book); }
public void AddNewBookThrowExceptionWhenDataIsInvalid() { //Arrange var customerRepository = new SICustomerRepository(); var productRepository = new SIProductRepository(); var orderRepository = new SIOrderRepository(); var salesManagement = new SalesAppService(productRepository, orderRepository, customerRepository); var dto = new BookDTO() { Title = "The title", Description = "description", Publisher = "license", ISBN = "isbn", AmountInStock = 10, UnitPrice = -1//this is a not valid value }; //Act var result = salesManagement.AddNewBook(dto); }