Esempio n. 1
0
        public void Edit_IsApprovedOrder_ThrowsDomainValidationException()
        {
            _orderForEdit.IsApproved = true;
            var supplierId   = Guid.NewGuid();
            var currencyId   = Guid.NewGuid();
            var instructions = "some edited instructions";

            var orderRepositoryStub = MockRepository.GenerateStub <IOrderRepository>();

            orderRepositoryStub.Stub(x => x.GetById(_orderForEditId)).Return(_orderForEdit);
            var supplierRepositoryStub = MockRepository.GenerateStub <ISupplierRepository>();

            supplierRepositoryStub.Stub(x => x.GetById(supplierId)).Return(new Supplier {
                Id = supplierId, Name = "Supplier for edit"
            });
            var currencyRepositoryStub = MockRepository.GenerateStub <ICurrencyRepository>();

            currencyRepositoryStub.Stub(x => x.GetById(currencyId)).Return(new Currency {
                Id = currencyId, Name = "USD"
            });
            _orderService = OrderServiceTestHelper.CreateOrderService(
                orderRepositoryStub,
                supplierRepositoryStub,
                currencyRepositoryStub,
                _userContext);
            Edit(_orderForEditId, supplierId, currencyId, instructions);
            Assert.IsTrue(_domainValidationException.ResultContainsMessage(Messages.EditApprovedOrder));
        }
Esempio n. 2
0
        public void Edit_UserHasInsufficientSecurityClearance_ThrowsDomainValidationException()
        {
            var supplierId   = Guid.NewGuid();
            var currencyId   = Guid.NewGuid();
            var instructions = "some edited instructions";

            var orderRepositoryStub = MockRepository.GenerateStub <IOrderRepository>();

            orderRepositoryStub.Stub(x => x.GetById(_orderForEditId)).Return(_orderForEdit);
            var supplierRepositoryStub = MockRepository.GenerateStub <ISupplierRepository>();

            supplierRepositoryStub.Stub(x => x.GetById(supplierId)).Return(new Supplier {
                Id = supplierId, Name = "Supplier for edit"
            });
            var currencyRepositoryStub = MockRepository.GenerateStub <ICurrencyRepository>();

            currencyRepositoryStub.Stub(x => x.GetById(currencyId)).Return(new Currency {
                Id = currencyId, Name = "USD"
            });
            _orderService = OrderServiceTestHelper.CreateOrderService(
                orderRepositoryStub,
                supplierRepositoryStub,
                currencyRepositoryStub,
                TestUserContext.Create("*****@*****.**", "Graham Robertson", "Operations Manager", UserRole.Public));
            Edit(_orderForEditId, supplierId, currencyId, instructions);
            Assert.IsTrue(_domainValidationException.ResultContainsMessage(Messages.InsufficientSecurityClearance));
        }
Esempio n. 3
0
        public void Edit_ValidOrderDetails_EditSuccessful()
        {
            var supplierId   = Guid.NewGuid();
            var currencyId   = Guid.NewGuid();
            var instructions = "some edited instructions";

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

            orderRepositoryMock.Stub(x => x.GetById(_orderForEditId)).Return(_orderForEdit);
            orderRepositoryMock.Expect(x => x.Update(_orderForEdit)).IgnoreArguments();
            var supplierRepositoryStub = MockRepository.GenerateMock <ISupplierRepository>();

            supplierRepositoryStub.Stub(x => x.GetById(supplierId)).Return(new Supplier {
                Id = supplierId, Name = "Supplier for edit"
            });
            var currencyRepositoryStub = MockRepository.GenerateMock <ICurrencyRepository>();

            currencyRepositoryStub.Stub(x => x.GetById(currencyId)).Return(new Currency {
                Id = currencyId, Name = "USD"
            });
            _orderService = OrderServiceTestHelper.CreateOrderService(
                orderRepositoryMock, supplierRepositoryStub, currencyRepositoryStub, _userContext);

            Edit(_orderForEditId, supplierId, currencyId, instructions);
            orderRepositoryMock.VerifyAllExpectations();
            Assert.AreEqual(_orderForEdit.Id, _orderForEditId);
            Assert.AreEqual(_orderForEdit.Supplier.Id, supplierId);
            Assert.AreEqual(_orderForEdit.Currency.Id, currencyId);
            Assert.AreEqual(_orderForEdit.Instructions, instructions);
        }
Esempio n. 4
0
 public void Approve_InvalidOrderId_DomainValidationExceptionThrown()
 {
     _orderService = OrderServiceTestHelper.CreateOrderService(
         OrderRepositoryTestHelper.GetOrderRepository_StubsGetById_ReturnsNull(_orderForApprovalId),
         MockRepository.GenerateStub <ISupplierRepository>(),
         MockRepository.GenerateStub <ICurrencyRepository>(),
         _userContext);
     Approve(_orderForApprovalId);
 }
Esempio n. 5
0
 public void GetById_UserHasInsufficientSecurityClearance_DomainValidationExceptionThrown()
 {
     _orderService = OrderServiceTestHelper.CreateOrderService(
         MockRepository.GenerateStub <IOrderRepository>(),
         MockRepository.GenerateStub <ISupplierRepository>(),
         MockRepository.GenerateStub <ICurrencyRepository>(),
         TestUserContext.Create("*****@*****.**", "Graham Robertson", "Operations Manager", UserRole.Public));
     GetById(Guid.NewGuid());
     Assert.IsTrue(_domainValidationException.ResultContainsMessage(Messages.InsufficientSecurityClearance));
 }
Esempio n. 6
0
        public void Approve_OrderWithNoItems_DomainValidationExceptionThrown()
        {
            var orderRepositoryStub = MockRepository.GenerateMock <IOrderRepository>();

            orderRepositoryStub.Stub(x => x.GetById(_orderForApprovalId)).Return(OrderRepositoryTestHelper.GetOrder(_orderForApprovalId));
            _orderService = OrderServiceTestHelper.CreateOrderService(
                orderRepositoryStub,
                MockRepository.GenerateStub <ISupplierRepository>(),
                MockRepository.GenerateStub <ICurrencyRepository>(),
                _userContext);
            Approve(_orderForApprovalId);
            Assert.IsTrue(_domainValidationException.ResultContainsMessage(Messages.ApprovalWithZeroItems));
        }
Esempio n. 7
0
        public void Approve_UserHasInsufficientSecurityClearance_DomainValidationExceptionThrown()
        {
            var orderRepositoryStub = MockRepository.GenerateMock <IOrderRepository>();

            orderRepositoryStub.Stub(x => x.GetById(_orderForApprovalId)).Return(_orderForApproval);
            _orderService = OrderServiceTestHelper.CreateOrderService(
                orderRepositoryStub,
                MockRepository.GenerateStub <ISupplierRepository>(),
                MockRepository.GenerateStub <ICurrencyRepository>(),
                TestUserContext.Create("*****@*****.**", "Graham Robertson", "Operations Manager", UserRole.Member));
            Approve(_orderForApprovalId);
            Assert.IsTrue(_domainValidationException.ResultContainsMessage(Messages.InsufficientSecurityClearance));
        }
Esempio n. 8
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);
        }
Esempio n. 9
0
        public void Approve_ValidApprovalContext_OrderSuccessfullyApproved()
        {
            var orderRepositoryMock = MockRepository.GenerateMock <IOrderRepository>();

            orderRepositoryMock.Stub(x => x.GetById(_orderForApprovalId)).Return(_orderForApproval);
            orderRepositoryMock.Expect(x => x.Update(null)).IgnoreArguments();
            _orderService = OrderServiceTestHelper.CreateOrderService(
                orderRepositoryMock,
                MockRepository.GenerateStub <ISupplierRepository>(),
                MockRepository.GenerateStub <ICurrencyRepository>(),
                _userContext);
            Approve(_orderForApprovalId);
            orderRepositoryMock.VerifyAllExpectations();
            Assert.IsTrue(_orderForApproval.IsApproved);
        }
Esempio n. 10
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));
        }
Esempio n. 11
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));
        }
Esempio n. 12
0
        public void Edit_InvalidOrderId_ThrowsArgumentException()
        {
            _orderForEditId = Guid.NewGuid();
            var supplierId   = Guid.NewGuid();
            var currencyId   = Guid.NewGuid();
            var instructions = "some edited instructions";

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

            orderRepositoryStub.Stub(x => x.GetById(_orderForEditId)).Return(null);
            _orderService = OrderServiceTestHelper.CreateOrderService(
                orderRepositoryStub,
                MockRepository.GenerateStub <ISupplierRepository>(),
                MockRepository.GenerateStub <ICurrencyRepository>(),
                _userContext);
            Edit(_orderForEditId, supplierId, currencyId, instructions);
        }
Esempio n. 13
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);
        }
Esempio n. 14
0
 /// <summary>
 /// Инициализация контекста тестов.
 /// </summary>
 public override void ClassInitialize()
 {
     base.ClassInitialize();
     Orders = OrderServiceTestHelper.GetOrderTestContext();
 }