Example #1
0
        public void Create_ValidInvoiceDetails_InvoiceCreated()
        {
            var id            = Guid.NewGuid();
            var currencyId    = Guid.NewGuid();
            var customerId    = Guid.NewGuid();
            var orderNo       = "ORDER123454";
            var bankDetailsId = Guid.NewGuid();
            var paymentTermId = Guid.NewGuid();
            var taxCodeId     = Guid.NewGuid();

            var invoiceRepositoryMock = MockRepository.GenerateMock <IInvoiceRepository>();

            invoiceRepositoryMock.Expect(x => x.Create(null)).IgnoreArguments();
            _invoiceService = InvoiceServiceFactory.Create(
                _userContext,
                invoiceRepositoryMock,
                ListItemRepositoryTestHelper.GetListItemRepository_StubsGetById_ReturnsPaymentTerm(paymentTermId),
                CustomerRepositoryTestHelper.GetCustomerRepository_StubsGetById_ReturnsCustomer(customerId),
                BankDetailsRepositoryTestHelper.GetBankDetailsRepository_StubsGetById_ReturnsBankDetails(bankDetailsId),
                TaxCodeRepositoryTestHelper.GetTaxCodeRepository_StubsGetById_ReturnsTaxCode(taxCodeId),
                CurrencyRepositoryTestHelper.GetCurrencyRepository_StubsGetById_ReturnsGbpCurrency(currencyId));
            Create(id, currencyId, customerId, bankDetailsId, paymentTermId, taxCodeId, orderNo);
            invoiceRepositoryMock.VerifyAllExpectations();
            Assert.AreNotEqual(Guid.Empty, _savedInvoice.Id);
            Assert.That(_savedInvoice.InvoiceNumber.StartsWith("IR"));
            Assert.AreEqual(_dateCreated, _savedInvoice.DateCreated);
            Assert.AreEqual(orderNo, _savedInvoice.OrderNo);
            Assert.IsNotNull(_savedInvoice.Currency);
            Assert.IsNotNull(_savedInvoice.Customer);
            Assert.IsNotNull(_savedInvoice.BankDetails);
            Assert.IsNotNull(_savedInvoice.PaymentTerm);
            Assert.IsNotNull(_savedInvoice.TaxCode);
        }
Example #2
0
        public void CreatePending_JobItemWithQuoteItem_PendingItemCreatedSuccessfully()
        {
            var id         = Guid.NewGuid();
            var customerId = Guid.NewGuid();
            var jobItemId  = Guid.NewGuid();
            var notes      = "some notes";

            var deliveryItemRepositoryMock = MockRepository.GenerateMock <IDeliveryItemRepository>();

            deliveryItemRepositoryMock.Expect(x => x.CreatePending(null)).IgnoreArguments();
            _deliveryItemService = DeliveryItemServiceFactory.Create(
                _userContext,
                MockRepository.GenerateStub <IDeliveryRepository>(),
                deliveryItemRepositoryMock,
                JobItemRepositoryTestHelper.GetJobItemRepository_StubsGetById_ReturnsJobItem(jobItemId),
                QuoteItemRepositoryTestHelper.GetQuoteItemRepository_StubsGetQuoteItemForJobItem_ReturnsQuoteItem(jobItemId),
                MockRepository.GenerateStub <IListItemRepository>(),
                CustomerRepositoryTestHelper.GetCustomerRepository_StubsGetById_ReturnsCustomer(customerId));
            CreatePending(id, customerId, jobItemId, notes);
            deliveryItemRepositoryMock.VerifyAllExpectations();
            Assert.AreNotEqual(Guid.Empty, _savedPendingItem.Id);
            Assert.IsNotNull(_savedPendingItem.JobItem);
            Assert.IsNotNull(_savedPendingItem.QuoteItem);
            Assert.IsNotNull(_savedPendingItem.Customer);
        }
Example #3
0
        public void Create_InvalidCustomerId_ArgumentExceptionThrown()
        {
            var id         = Guid.NewGuid();
            var customerId = Guid.NewGuid();
            var fao        = "Graham Robertson";

            _deliveryService = DeliveryServiceFactory.Create(
                _userContext,
                MockRepository.GenerateStub <IDeliveryRepository>(),
                CustomerRepositoryTestHelper.GetCustomerRepository_StubsGetById_ReturnsNull(customerId));
            Create(id, customerId, fao);
        }
Example #4
0
        public void Create_InvalidFao_DomainValidationExceptionThrown()
        {
            var id         = Guid.NewGuid();
            var customerId = Guid.NewGuid();
            var fao        = new string('a', 256);

            _deliveryService = DeliveryServiceFactory.Create(
                _userContext,
                MockRepository.GenerateStub <IDeliveryRepository>(),
                CustomerRepositoryTestHelper.GetCustomerRepository_StubsGetById_ReturnsCustomer(customerId));
            Create(id, customerId, fao);
            Assert.IsTrue(_domainValidationException.ResultContainsMessage(Messages.InvalidFao));
        }
Example #5
0
        public void Create_UserHasInsufficientSecurityClearance_DomainValidationExceptionThrown()
        {
            var id         = Guid.NewGuid();
            var customerId = Guid.NewGuid();
            var fao        = "Graham Robertson";

            _deliveryService = DeliveryServiceFactory.Create(
                TestUserContext.Create("*****@*****.**", "Graham Robertson", "Operations Manager", UserRole.Public),
                MockRepository.GenerateStub <IDeliveryRepository>(),
                CustomerRepositoryTestHelper.GetCustomerRepository_StubsGetById_ReturnsCustomer(customerId));
            Create(id, customerId, fao);
            Assert.IsTrue(_domainValidationException.ResultContainsMessage(Messages.InsufficientSecurityClearance));
        }
Example #6
0
        public void CreatePending_InvalidCustomerId_ArgumentExceptionThrown()
        {
            var id         = Guid.NewGuid();
            var customerId = Guid.NewGuid();
            var jobItemId  = Guid.NewGuid();
            var notes      = "some notes";

            _deliveryItemService = DeliveryItemServiceFactory.Create(
                _userContext,
                MockRepository.GenerateStub <IDeliveryRepository>(),
                MockRepository.GenerateStub <IDeliveryItemRepository>(),
                JobItemRepositoryTestHelper.GetJobItemRepository_StubsGetById_ReturnsJobItem(jobItemId),
                QuoteItemRepositoryTestHelper.GetQuoteItemRepository_StubsGetQuoteItemForJobItem_ReturnsQuoteItem(jobItemId),
                MockRepository.GenerateStub <IListItemRepository>(),
                CustomerRepositoryTestHelper.GetCustomerRepository_StubsGetById_ReturnsNull(customerId));
            CreatePending(id, customerId, jobItemId, notes);
        }
Example #7
0
        public void CreatePending_UserHasInsufficientSecurityClearance_ArgumentExceptionThrown()
        {
            var id         = Guid.NewGuid();
            var customerId = Guid.NewGuid();
            var jobItemId  = Guid.NewGuid();
            var notes      = "some notes";

            _deliveryItemService = DeliveryItemServiceFactory.Create(
                TestUserContext.Create("*****@*****.**", "Graham Robertson", "Operations Manager", UserRole.Public),
                MockRepository.GenerateStub <IDeliveryRepository>(),
                MockRepository.GenerateStub <IDeliveryItemRepository>(),
                JobItemRepositoryTestHelper.GetJobItemRepository_StubsGetById_ReturnsJobItem(jobItemId),
                QuoteItemRepositoryTestHelper.GetQuoteItemRepository_StubsGetQuoteItemForJobItem_ReturnsQuoteItem(jobItemId),
                MockRepository.GenerateStub <IListItemRepository>(),
                CustomerRepositoryTestHelper.GetCustomerRepository_StubsGetById_ReturnsCustomer(customerId));
            CreatePending(id, customerId, jobItemId, notes);
            Assert.IsTrue(_domainValidationException.ResultContainsMessage(DeliveryItemMessages.InsufficientSecurityClearance));
        }
Example #8
0
        public void CreatePending_NotesGreaterThan255Characters_ArgumentExceptionThrown()
        {
            var id         = Guid.NewGuid();
            var customerId = Guid.NewGuid();
            var jobItemId  = Guid.NewGuid();
            var notes      = new string('a', 256);

            _deliveryItemService = DeliveryItemServiceFactory.Create(
                _userContext,
                MockRepository.GenerateStub <IDeliveryRepository>(),
                MockRepository.GenerateStub <IDeliveryItemRepository>(),
                JobItemRepositoryTestHelper.GetJobItemRepository_StubsGetById_ReturnsJobItem(jobItemId),
                QuoteItemRepositoryTestHelper.GetQuoteItemRepository_StubsGetQuoteItemForJobItem_ReturnsQuoteItem(jobItemId),
                MockRepository.GenerateStub <IListItemRepository>(),
                CustomerRepositoryTestHelper.GetCustomerRepository_StubsGetById_ReturnsCustomer(customerId));
            CreatePending(id, customerId, jobItemId, notes);
            Assert.IsTrue(_domainValidationException.ResultContainsMessage(DeliveryItemMessages.InvalidNotes));
        }
Example #9
0
        public void CreatePending_JobIsPending_DomainValidationExceptionThrown()
        {
            var id         = Guid.NewGuid();
            var customerId = Guid.NewGuid();
            var jobItemId  = Guid.NewGuid();
            var notes      = "some notes";

            _deliveryItemService = DeliveryItemServiceFactory.Create(
                _userContext,
                MockRepository.GenerateStub <IDeliveryRepository>(),
                MockRepository.GenerateStub <IDeliveryItemRepository>(),
                JobItemRepositoryTestHelper.GetJobItemRepository_StubsGetById_ReturnsJobItemOnPendingJob(jobItemId),
                QuoteItemRepositoryTestHelper.GetQuoteItemRepository_StubsGetQuoteItemForJobItem_ReturnsQuoteItem(jobItemId),
                MockRepository.GenerateStub <IListItemRepository>(),
                CustomerRepositoryTestHelper.GetCustomerRepository_StubsGetById_ReturnsNull(customerId));
            CreatePending(id, customerId, jobItemId, notes);
            Assert.IsTrue(_domainValidationException.ResultContainsMessage(DeliveryItemMessages.JobPending));
        }
Example #10
0
        public void Create_ValidDeliveryDetails_DeliveryCreated()
        {
            var id         = Guid.NewGuid();
            var customerId = Guid.NewGuid();
            var fao        = "Graham Robertson";

            var deliveryRepositoryMock = MockRepository.GenerateMock <IDeliveryRepository>();

            deliveryRepositoryMock.Expect(x => x.Create(null)).IgnoreArguments();
            _deliveryService = DeliveryServiceFactory.Create(
                _userContext, deliveryRepositoryMock, CustomerRepositoryTestHelper.GetCustomerRepository_StubsGetById_ReturnsCustomer(customerId));
            Create(id, customerId, fao);
            deliveryRepositoryMock.VerifyAllExpectations();
            Assert.AreNotEqual(Guid.Empty, _savedDelivery.Id);
            Assert.That(_savedDelivery.DeliveryNoteNumber.StartsWith("DR"));
            Assert.AreEqual(_dateCreated, _savedDelivery.DateCreated);
            Assert.IsNotNull(_savedDelivery.Customer);
        }
Example #11
0
        public void Create_InvalidTaxCodeId_DomainValidationExceptionThrown()
        {
            var id            = Guid.NewGuid();
            var currencyId    = Guid.NewGuid();
            var orderNo       = "ORDER123454";
            var customerId    = Guid.NewGuid();
            var bankDetailsId = Guid.NewGuid();
            var paymentTermId = Guid.NewGuid();
            var taxCodeId     = Guid.NewGuid();

            _invoiceService = InvoiceServiceFactory.Create(
                _userContext,
                MockRepository.GenerateStub <IInvoiceRepository>(),
                ListItemRepositoryTestHelper.GetListItemRepository_StubsGetById_ReturnsPaymentTerm(paymentTermId),
                CustomerRepositoryTestHelper.GetCustomerRepository_StubsGetById_ReturnsCustomer(customerId),
                BankDetailsRepositoryTestHelper.GetBankDetailsRepository_StubsGetById_ReturnsBankDetails(bankDetailsId),
                TaxCodeRepositoryTestHelper.GetTaxCodeRepository_StubsGetById_ReturnsNull(taxCodeId),
                CurrencyRepositoryTestHelper.GetCurrencyRepository_StubsGetById_ReturnsGbpCurrency(currencyId));
            Create(id, currencyId, customerId, bankDetailsId, paymentTermId, taxCodeId, orderNo);
        }
Example #12
0
        public void Create_UserHasInsufficientSecurityClearance_ArgumentExceptionThrown()
        {
            var id            = Guid.NewGuid();
            var currencyId    = Guid.NewGuid();
            var orderNo       = "ORDER123454";
            var customerId    = Guid.NewGuid();
            var bankDetailsId = Guid.NewGuid();
            var paymentTermId = Guid.NewGuid();
            var taxCodeId     = Guid.NewGuid();

            _invoiceService = InvoiceServiceFactory.Create(
                TestUserContext.Create("*****@*****.**", "Graham Robertson", "Operations Manager", UserRole.Member),
                MockRepository.GenerateStub <IInvoiceRepository>(),
                ListItemRepositoryTestHelper.GetListItemRepository_StubsGetById_ReturnsPaymentTerm(paymentTermId),
                CustomerRepositoryTestHelper.GetCustomerRepository_StubsGetById_ReturnsCustomer(customerId),
                BankDetailsRepositoryTestHelper.GetBankDetailsRepository_StubsGetById_ReturnsBankDetails(bankDetailsId),
                TaxCodeRepositoryTestHelper.GetTaxCodeRepository_StubsGetById_ReturnsTaxCode(taxCodeId),
                CurrencyRepositoryTestHelper.GetCurrencyRepository_StubsGetById_ReturnsGbpCurrency(currencyId));
            Create(id, currencyId, customerId, bankDetailsId, paymentTermId, taxCodeId, orderNo);
            Assert.IsTrue(_domainValidationException.ResultContainsMessage(Messages.InsufficientSecurityClearance));
        }
Example #13
0
        public void Create_InvalidOrderNo_DomainValidationExceptionThrown()
        {
            var id            = Guid.NewGuid();
            var currencyId    = Guid.NewGuid();
            var customerId    = Guid.NewGuid();
            var orderNo       = new string('a', 51);
            var bankDetailsId = Guid.NewGuid();
            var paymentTermId = Guid.NewGuid();
            var taxCodeId     = Guid.NewGuid();

            var invoiceRepositoryMock = MockRepository.GenerateMock <IInvoiceRepository>();

            invoiceRepositoryMock.Expect(x => x.Create(null)).IgnoreArguments();
            _invoiceService = InvoiceServiceFactory.Create(
                _userContext,
                invoiceRepositoryMock,
                ListItemRepositoryTestHelper.GetListItemRepository_StubsGetById_ReturnsPaymentTerm(paymentTermId),
                CustomerRepositoryTestHelper.GetCustomerRepository_StubsGetById_ReturnsCustomer(customerId),
                BankDetailsRepositoryTestHelper.GetBankDetailsRepository_StubsGetById_ReturnsBankDetails(bankDetailsId),
                TaxCodeRepositoryTestHelper.GetTaxCodeRepository_StubsGetById_ReturnsTaxCode(taxCodeId),
                CurrencyRepositoryTestHelper.GetCurrencyRepository_StubsGetById_ReturnsGbpCurrency(currencyId));
            Create(id, currencyId, customerId, bankDetailsId, paymentTermId, taxCodeId, orderNo);
            Assert.IsTrue(_domainValidationException.ResultContainsMessage(Messages.OrderNoTooLarge));
        }