Ejemplo n.º 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);
        }
Ejemplo n.º 2
0
        public void Create_InvalidCurrencyId_ArgumentExceptionThrown()
        {
            var orderId      = Guid.NewGuid();
            var supplierId   = Guid.NewGuid();
            var instructions = "some instructions";
            var currencyId   = Guid.NewGuid();

            _orderService = OrderServiceTestHelper.CreateOrderService(
                MockRepository.GenerateStub <IOrderRepository>(),
                SupplierRepositoryTestHelper.GetSupplierRepository_GetById_ReturnsSupplier(supplierId),
                CurrencyRepositoryTestHelper.GetCurrencyRepository_StubsGetById_ReturnsNull(currencyId),
                _userContext);
            CreateOrder(orderId, supplierId, instructions, currencyId);
        }
Ejemplo n.º 3
0
        public void Edit_InvalidCurrencyId_ArgumentExceptionThrown()
        {
            var orderNo = "ORDER12345";
            var adviceNo = "ADV12345";
            var currencyId = Guid.NewGuid();

            var quoteRepositoryStub = MockRepository.GenerateMock<IQuoteRepository>();
            quoteRepositoryStub.Stub(x => x.GetById(_quoteForEditId)).Return(_quoteForEdit);
            _quoteService = QuoteServiceTestHelper.CreateQuoteService(
                quoteRepositoryStub,
                MockRepository.GenerateStub<ICustomerRepository>(),
                CurrencyRepositoryTestHelper.GetCurrencyRepository_StubsGetById_ReturnsNull(currencyId),
                _userContext);
            Edit(_quoteForEditId, orderNo, adviceNo, currencyId);
        }
Ejemplo n.º 4
0
        public void Create_InvalidCurrencyId_ArgumentExceptionThrown()
        {
            var id = Guid.NewGuid();
            var customerId = Guid.NewGuid();
            var currencyId = Guid.NewGuid();
            var orderNo = "PO1000";
            var adviceNo = "AD1000";

            _quoteService = QuoteServiceTestHelper.CreateQuoteService(
                MockRepository.GenerateStub<IQuoteRepository>(),
                QuoteServiceTestHelper.GetCustomerRepository_StubsGetById_ReturnsCustomer(customerId),
                CurrencyRepositoryTestHelper.GetCurrencyRepository_StubsGetById_ReturnsNull(currencyId),
                _userContext);
            CreateQuote(id, customerId, orderNo, adviceNo, currencyId);
        }
Ejemplo n.º 5
0
        public void Create_InstructionsGreaterThan255Characters_ArgumentExceptionThrown()
        {
            var orderId      = Guid.NewGuid();
            var supplierId   = Guid.NewGuid();
            var instructions = new string('a', 256);
            var currencyId   = Guid.NewGuid();

            _orderService = OrderServiceTestHelper.CreateOrderService(
                MockRepository.GenerateStub <IOrderRepository>(),
                SupplierRepositoryTestHelper.GetSupplierRepository_GetById_ReturnsSupplier(supplierId),
                CurrencyRepositoryTestHelper.GetCurrencyRepository_StubsGetById_ReturnsGbpCurrency(currencyId),
                _userContext);
            CreateOrder(orderId, supplierId, instructions, currencyId);
            Assert.IsTrue(_domainValidationException.ResultContainsMessage(Messages.InstructionsTooLarge));
        }
Ejemplo n.º 6
0
        public void Create_UserHasInsufficentSecurity_DomainValidationExceptionThrown()
        {
            var orderId      = Guid.NewGuid();
            var supplierId   = Guid.NewGuid();
            var instructions = "some instructions";
            var currencyId   = Guid.NewGuid();

            _orderService = OrderServiceTestHelper.CreateOrderService(
                MockRepository.GenerateStub <IOrderRepository>(),
                SupplierRepositoryTestHelper.GetSupplierRepository_GetById_ReturnsSupplier(supplierId),
                CurrencyRepositoryTestHelper.GetCurrencyRepository_StubsGetById_ReturnsGbpCurrency(currencyId),
                TestUserContext.Create("*****@*****.**", "Graham Robertson", "Operations Manager", UserRole.Public));
            CreateOrder(orderId, supplierId, instructions, currencyId);
            Assert.IsTrue(_domainValidationException.ResultContainsMessage(Messages.InsufficientSecurityClearance));
        }
Ejemplo n.º 7
0
        public void Create_UserHasInsufficientSecurityClearance_DomainValidationExceptionThrown()
        {
            var id = Guid.NewGuid();
            var customerId = Guid.NewGuid();
            var currencyId = Guid.NewGuid();
            var orderNo = "PO1000";
            var adviceNo = "AD1000";

            _quoteService = QuoteServiceTestHelper.CreateQuoteService(
                MockRepository.GenerateStub<IQuoteRepository>(),
                QuoteServiceTestHelper.GetCustomerRepository_StubsGetById_ReturnsCustomer(customerId),
                CurrencyRepositoryTestHelper.GetCurrencyRepository_StubsGetById_ReturnsGbpCurrency(currencyId),
                TestUserContext.Create("*****@*****.**", "Graham Robertson", "Operations Manager", UserRole.Member));
            CreateQuote(id, customerId, orderNo, adviceNo, currencyId);
            Assert.IsTrue(_domainValidationException.ResultContainsMessage(JobSystem.Resources.Quotes.Messages.InsufficientSecurityClearance));
        }
Ejemplo n.º 8
0
        public void Edit_UserHasInsufficientSecurityClearance_DomainValidationExceptionThrown()
        {
            var orderNo = "ORDER12345";
            var adviceNo = "ADV12345";
            var currencyId = Guid.NewGuid();

            var quoteRepositoryStub = MockRepository.GenerateMock<IQuoteRepository>();
            quoteRepositoryStub.Stub(x => x.GetById(_quoteForEditId)).Return(_quoteForEdit);
            _quoteService = QuoteServiceTestHelper.CreateQuoteService(
                quoteRepositoryStub,
                MockRepository.GenerateStub<ICustomerRepository>(),
                CurrencyRepositoryTestHelper.GetCurrencyRepository_StubsGetById_ReturnsGbpCurrency(currencyId),
                TestUserContext.Create("*****@*****.**", "Graham Robertson", "Operations Manager", UserRole.Member));
            Edit(_quoteForEditId, orderNo, adviceNo, currencyId);
            Assert.IsTrue(_domainValidationException.ResultContainsMessage(JobSystem.Resources.Quotes.Messages.InsufficientSecurityClearance));
        }
Ejemplo n.º 9
0
        public void Edit_AdviceNoGreaterThan50Characters_DomainValidationExceptionThrown()
        {
            var orderNo = "ORDER12345";
            var adviceNo = new string('a', 51);
            var currencyId = Guid.NewGuid();

            var quoteRepositoryStub = MockRepository.GenerateMock<IQuoteRepository>();
            quoteRepositoryStub.Stub(x => x.GetById(_quoteForEditId)).Return(_quoteForEdit);
            _quoteService = QuoteServiceTestHelper.CreateQuoteService(
                quoteRepositoryStub,
                MockRepository.GenerateStub<ICustomerRepository>(),
                CurrencyRepositoryTestHelper.GetCurrencyRepository_StubsGetById_ReturnsGbpCurrency(currencyId),
                _userContext);
            Edit(_quoteForEditId, orderNo, adviceNo, currencyId);
            Assert.IsTrue(_domainValidationException.ResultContainsMessage(JobSystem.Resources.Quotes.Messages.AdviceNoTooLarge));
        }
Ejemplo n.º 10
0
        public void Create_AdviceNoGreaterThan50Characters_DomainValidationExceptionThrown()
        {
            var id = Guid.NewGuid();
            var customerId = Guid.NewGuid();
            var currencyId = Guid.NewGuid();
            var orderNo = "PO1000";
            var adviceNo = new string('a', 51);

            _quoteService = QuoteServiceTestHelper.CreateQuoteService(
                MockRepository.GenerateStub<IQuoteRepository>(),
                QuoteServiceTestHelper.GetCustomerRepository_StubsGetById_ReturnsCustomer(customerId),
                CurrencyRepositoryTestHelper.GetCurrencyRepository_StubsGetById_ReturnsGbpCurrency(currencyId),
                _userContext);
            CreateQuote(id, customerId, orderNo, adviceNo, currencyId);
            Assert.IsTrue(_domainValidationException.ResultContainsMessage(JobSystem.Resources.Quotes.Messages.AdviceNoTooLarge));
        }
Ejemplo n.º 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);
        }
Ejemplo n.º 12
0
        public void Edit_MemberIsAdmin_ItemEdited()
        {
            var orderNo = "ORDER12345";
            var adviceNo = "ADV12345";
            var currencyId = Guid.NewGuid();

            var quoteRepositoryMock = MockRepository.GenerateMock<IQuoteRepository>();
            quoteRepositoryMock.Stub(x => x.GetById(_quoteForEditId)).Return(_quoteForEdit);
            quoteRepositoryMock.Expect(x => x.Update(null)).IgnoreArguments();
            _quoteService = QuoteServiceTestHelper.CreateQuoteService(
                quoteRepositoryMock,
                MockRepository.GenerateStub<ICustomerRepository>(),
                CurrencyRepositoryTestHelper.GetCurrencyRepository_StubsGetById_ReturnsGbpCurrency(currencyId),
                TestUserContext.Create("*****@*****.**", "Graham Robertson", "Operations Manager", UserRole.Admin | UserRole.Member));
            Edit(_quoteForEditId, orderNo, adviceNo, currencyId);
            quoteRepositoryMock.VerifyAllExpectations();
            Assert.AreEqual(orderNo, _quoteForEdit.OrderNumber);
            Assert.AreEqual(adviceNo, _quoteForEdit.AdviceNumber);
            Assert.AreEqual(currencyId, _quoteForEdit.Currency.Id);
            Assert.AreEqual(2, _quoteForEdit.Revision);
        }
Ejemplo n.º 13
0
        public void Edit_ValidQuoteDetails_ItemEdited()
        {
            var orderNo = "ORDER12345";
            var adviceNo = "ADV12345";
            var currencyId = Guid.NewGuid();

            var quoteRepositoryMock = MockRepository.GenerateMock<IQuoteRepository>();
            quoteRepositoryMock.Stub(x => x.GetById(_quoteForEditId)).Return(_quoteForEdit);
            quoteRepositoryMock.Expect(x => x.Update(null)).IgnoreArguments();
            _quoteService = QuoteServiceTestHelper.CreateQuoteService(
                quoteRepositoryMock,
                MockRepository.GenerateStub<ICustomerRepository>(),
                CurrencyRepositoryTestHelper.GetCurrencyRepository_StubsGetById_ReturnsGbpCurrency(currencyId),
                _userContext);
            Edit(_quoteForEditId, orderNo, adviceNo, currencyId);
            quoteRepositoryMock.VerifyAllExpectations();
            Assert.AreEqual(orderNo, _quoteForEdit.OrderNumber);
            Assert.AreEqual(adviceNo, _quoteForEdit.AdviceNumber);
            Assert.AreEqual(currencyId, _quoteForEdit.Currency.Id);
            Assert.AreEqual(2, _quoteForEdit.Revision);
        }
Ejemplo n.º 14
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));
        }
Ejemplo n.º 15
0
        public void Create_ValidOrderDetails_OrderCreated()
        {
            var orderId      = Guid.NewGuid();
            var supplierId   = Guid.NewGuid();
            var instructions = "some instructions";
            var currencyId   = Guid.NewGuid();

            var orderRepositoryMock = MockRepository.GenerateMock <IOrderRepository>();

            orderRepositoryMock.Expect(x => x.Create(null)).IgnoreArguments();
            _orderService = OrderServiceTestHelper.CreateOrderService(
                orderRepositoryMock,
                SupplierRepositoryTestHelper.GetSupplierRepository_GetById_ReturnsSupplier(supplierId),
                CurrencyRepositoryTestHelper.GetCurrencyRepository_StubsGetById_ReturnsGbpCurrency(currencyId),
                _userContext);
            CreateOrder(orderId, supplierId, instructions, currencyId);
            orderRepositoryMock.VerifyAllExpectations();
            Assert.AreNotEqual(Guid.Empty, _savedOrder.Id);
            Assert.That(_savedOrder.OrderNo.StartsWith("OR"));
            Assert.AreEqual("*****@*****.**", _savedOrder.CreatedBy.EmailAddress);
            Assert.AreEqual(_dateCreated, _savedOrder.DateCreated);
            Assert.AreEqual(false, _savedOrder.IsApproved);
        }
Ejemplo n.º 16
0
        public void Create_ValidQuoteDetails_QuoteCreated()
        {
            var id = Guid.NewGuid();
            var customerId = Guid.NewGuid();
            var currencyId = Guid.NewGuid();
            var orderNo = "PO1010";
            var adviceNo = "AD1010";

            var quoteRepositoryMock = MockRepository.GenerateMock<IQuoteRepository>();
            quoteRepositoryMock.Expect(x => x.Create(null)).IgnoreArguments();
            _quoteService = QuoteServiceTestHelper.CreateQuoteService(
                quoteRepositoryMock,
                QuoteServiceTestHelper.GetCustomerRepository_StubsGetById_ReturnsCustomer(customerId),
                CurrencyRepositoryTestHelper.GetCurrencyRepository_StubsGetById_ReturnsGbpCurrency(currencyId),
                _userContext);
            CreateQuote(id, customerId, orderNo, adviceNo, currencyId);
            quoteRepositoryMock.VerifyAllExpectations();
            Assert.AreNotEqual(Guid.Empty, _savedQuote.Id);
            Assert.That(_savedQuote.QuoteNumber.StartsWith("QR"));
            Assert.AreEqual(_dateCreated, _savedQuote.DateCreated);
            Assert.AreEqual("*****@*****.**", _savedQuote.CreatedBy.EmailAddress);
            Assert.AreEqual(1, _savedQuote.Revision);
            Assert.IsTrue(_savedQuote.IsActive);
        }
Ejemplo n.º 17
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));
        }