Example #1
0
        public void Create_ValidDetailsSuppliedConsignmentHas1Items_SuccessfullyCreated()
        {
            var id            = Guid.NewGuid();
            var consignmentId = Guid.NewGuid();
            var instructions  = "Consignment instructions";

            var consignmentItemRepositoryMock = MockRepository.GenerateMock <IConsignmentItemRepository>();

            consignmentItemRepositoryMock.Expect(x => x.Create(null)).IgnoreArguments();
            var jobItemRepositoryMock = MockRepository.GenerateMock <IJobItemRepository>();

            jobItemRepositoryMock.Stub(x => x.GetById(_jobItemToUpdate.Id)).Return(_jobItemToUpdate);
            jobItemRepositoryMock.Expect(x => x.EmitItemHistory(
                                             _userContext.GetCurrentUser(), _jobItemToUpdate.Id, 0, 0, "Item consigned on CR2000", ListItemType.StatusConsigned, ListItemType.WorkTypeAdministration));
            jobItemRepositoryMock.Expect(x => x.Update(_jobItemToUpdate)).IgnoreArguments();

            _consignmentItemService = ConsignmentItemServiceFactory.Create(consignmentItemRepositoryMock, jobItemRepositoryMock, consignmentId, _userContext, 1);
            _jobItemService         = _jobItemService = JobItemServiceFactory.CreateToReturnJobItem(jobItemRepositoryMock, _userContext);
            CreateConsignmentItem(id, _jobItemToUpdate.Id, consignmentId, instructions);
            consignmentItemRepositoryMock.VerifyAllExpectations();
            jobItemRepositoryMock.VerifyAllExpectations();
            Assert.AreNotEqual(Guid.Empty, _savedConsigmentItem.Id);
            Assert.AreEqual(2, _savedConsigmentItem.ItemNo);
            Assert.AreEqual(ListItemType.StatusConsigned, _jobItemToUpdate.Status.Type);
        }
Example #2
0
        public void Edit_InvalidConsignmentItemId_ArgumentExceptionThrown()
        {
            var consignmentItemId         = Guid.NewGuid();
            var instructions              = "edited instructions";
            var consignmentItemRepository = MockRepository.GenerateMock <IConsignmentItemRepository>();

            consignmentItemRepository.Stub(x => x.GetById(consignmentItemId)).Return(null);
            _consignmentItemService = ConsignmentItemServiceFactory.Create(consignmentItemRepository, _userContext);
            Edit(consignmentItemId, instructions);
        }
Example #3
0
        public void Edit_InvalidInstructions_DomainValidationExceptionThrown()
        {
            var instructions = new String('a', 10001);
            var consignmentItemRepository = MockRepository.GenerateMock <IConsignmentItemRepository>();

            consignmentItemRepository.Stub(x => x.GetById(_consignmentItemForEditId)).Return(_consignmentItemForEdit);
            _consignmentItemService = ConsignmentItemServiceFactory.Create(consignmentItemRepository, _userContext);
            Edit(_consignmentItemForEditId, instructions);
            Assert.IsTrue(_domainValidationException.ResultContainsMessage(Messages.InstructionsTooLarge));
        }
Example #4
0
        public void CreatePending_InvalidSupplierId_ArgumentExceptionThrown()
        {
            var id           = Guid.NewGuid();
            var jobItemId    = Guid.NewGuid();
            var supplierId   = Guid.Empty;
            var instructions = "Please consign this item";

            _consignmentItemService = ConsignmentItemServiceFactory.CreateForPendingItems(jobItemId, supplierId, _userContext);
            CreatePendingConsignmentItem(id, jobItemId, supplierId, instructions);
        }
Example #5
0
        public void Edit_ConsignmentIsOrdered_DomainValidationExceptionThrown()
        {
            _consignmentItemForEdit.Consignment.IsOrdered = true;
            var instructions = "edited instructions";
            var consignmentItemRepository = MockRepository.GenerateMock <IConsignmentItemRepository>();

            consignmentItemRepository.Stub(x => x.GetById(_consignmentItemForEditId)).Return(_consignmentItemForEdit);
            _consignmentItemService = ConsignmentItemServiceFactory.Create(consignmentItemRepository, _userContext);
            Edit(_consignmentItemForEditId, instructions);
            Assert.IsTrue(_domainValidationException.ResultContainsMessage(Messages.ConsignmentIsOrdered));
        }
Example #6
0
        public void EditPending_InvalidSupplierId_ArgumentException()
        {
            var supplierId   = Guid.Empty;
            var instructions = "some edited instructions";

            var consignmentItemRepositoryStub = MockRepository.GenerateMock <IConsignmentItemRepository>();

            consignmentItemRepositoryStub.Stub(x => x.GetPendingItem(_pendingItemId)).Return(_pendingItemForEdit);
            _consignmentItemService = ConsignmentItemServiceFactory.CreateForEditForPendingItems(consignmentItemRepositoryStub, _jobItemforEditPendingId, supplierId, _userContext);
            EditPendingConsignmentItem(_pendingItemId, _jobItemforEditPendingId, supplierId, instructions);
        }
Example #7
0
        public void CreatePending_InstructionsGreaterThan10000Characters_DomainValidationExceptionThrown()
        {
            var id           = Guid.NewGuid();
            var jobItemId    = Guid.NewGuid();
            var supplierId   = Guid.NewGuid();
            var instructions = new string('a', 10001);

            _consignmentItemService = ConsignmentItemServiceFactory.CreateForPendingItems(jobItemId, supplierId, _userContext);
            CreatePendingConsignmentItem(id, jobItemId, supplierId, instructions);
            Assert.IsTrue(_domainValidationException.ResultContainsMessage(Messages.InstructionsTooLarge));
        }
Example #8
0
        public void CreatePending_JobIsInPendingState_DomainValidationExceptionThrown()
        {
            var id           = Guid.NewGuid();
            var jobItemId    = Guid.NewGuid();
            var supplierId   = Guid.NewGuid();
            var instructions = "Please consign this item";

            _consignmentItemService = ConsignmentItemServiceFactory.CreateForPendingItems(jobItemId, supplierId, _userContext, true);
            CreatePendingConsignmentItem(id, jobItemId, supplierId, instructions);
            Assert.IsTrue(_domainValidationException.ResultContainsMessage(Messages.PendingJob));
        }
Example #9
0
        public void CreatePending_UserHasInsufficientSecurityClearance_DomainValidationExceptionThrown()
        {
            var id           = Guid.NewGuid();
            var jobItemId    = Guid.NewGuid();
            var supplierId   = Guid.NewGuid();
            var instructions = "Please consign this item";

            _consignmentItemService = ConsignmentItemServiceFactory.CreateForPendingItems(jobItemId, supplierId,
                                                                                          TestUserContext.Create("*****@*****.**", "Graham Robertson", "Operations Manager", UserRole.Public));
            CreatePendingConsignmentItem(id, jobItemId, supplierId, instructions);
            Assert.IsTrue(_domainValidationException.ResultContainsMessage(Messages.InsufficientSecurityClearance));
        }
Example #10
0
        public void EditPending_InvalidInstructions_DomainValidationException()
        {
            var supplierId   = Guid.NewGuid();
            var instructions = new string('a', 10001);

            var consignmentItemRepositoryStub = MockRepository.GenerateMock <IConsignmentItemRepository>();

            consignmentItemRepositoryStub.Stub(x => x.GetPendingItem(_pendingItemId)).Return(_pendingItemForEdit);
            _consignmentItemService = ConsignmentItemServiceFactory.CreateForEditForPendingItems(consignmentItemRepositoryStub, _jobItemforEditPendingId, supplierId, _userContext);
            EditPendingConsignmentItem(_pendingItemId, _jobItemforEditPendingId, supplierId, instructions);
            Assert.IsTrue(_domainValidationException.ResultContainsMessage(Messages.InstructionsTooLarge));
        }
Example #11
0
        public void EditPending_UserHasInsufficientSecurity_DomainValidationException()
        {
            var supplierId   = Guid.NewGuid();
            var instructions = "some instructions";

            var consignmentItemRepositoryStub = MockRepository.GenerateMock <IConsignmentItemRepository>();

            consignmentItemRepositoryStub.Stub(x => x.GetPendingItem(_pendingItemId)).Return(_pendingItemForEdit);
            _consignmentItemService = ConsignmentItemServiceFactory.CreateForEditForPendingItems(consignmentItemRepositoryStub, _jobItemforEditPendingId, supplierId,
                                                                                                 TestUserContext.Create("*****@*****.**", "Graham Robertson", "Operations Manager", UserRole.Public));
            EditPendingConsignmentItem(_pendingItemId, _jobItemforEditPendingId, supplierId, instructions);
            Assert.IsTrue(_domainValidationException.ResultContainsMessage(Messages.InsufficientSecurityClearance));
        }
Example #12
0
        public void Create_InvalidJobItemIdSupplied_ArgumentExceptionThrown()
        {
            var id            = Guid.NewGuid();
            var consignmentId = Guid.NewGuid();
            var instructions  = "Consignment instructions";

            var jobItemRepositoryMock = MockRepository.GenerateMock <IJobItemRepository>();

            jobItemRepositoryMock.Stub(x => x.GetById(Guid.NewGuid())).Return(null);

            _consignmentItemService = ConsignmentItemServiceFactory.Create(MockRepository.GenerateStub <IConsignmentItemRepository>(), jobItemRepositoryMock, consignmentId, _userContext);
            _jobItemService         = _jobItemService = JobItemServiceFactory.CreateToReturnJobItem(jobItemRepositoryMock, _userContext);
            CreateConsignmentItem(id, _jobItemToUpdate.Id, consignmentId, instructions);
        }
Example #13
0
        public void Edit_ValidEdit_ItemEdited()
        {
            var instructions = "edited instructions";
            var consignmentItemRepository = MockRepository.GenerateMock <IConsignmentItemRepository>();

            consignmentItemRepository.Stub(x => x.GetById(_consignmentItemForEditId)).Return(_consignmentItemForEdit);
            consignmentItemRepository.Expect(x => x.Update(null)).IgnoreArguments();
            _consignmentItemService = ConsignmentItemServiceFactory.Create(consignmentItemRepository, _userContext);

            Edit(_consignmentItemForEditId, instructions);
            consignmentItemRepository.VerifyAllExpectations();
            Assert.AreEqual(_consignmentItemForEditId, _consignmentItemForEdit.Id);
            Assert.AreEqual(instructions, _consignmentItemForEdit.Instructions);
        }
Example #14
0
        public void CreatePending_JobItemAlreadyHasPendingItem_DomainValidationExceptionThrown()
        {
            var id           = Guid.NewGuid();
            var jobItemId    = Guid.NewGuid();
            var supplierId   = Guid.NewGuid();
            var instructions = "Please consign this item";

            var consignmentItemRepositoryMock = MockRepository.GenerateStub <IConsignmentItemRepository>();

            consignmentItemRepositoryMock.Stub(x => x.JobItemHasPendingConsignmentItem(jobItemId)).Return(true);
            _consignmentItemService = ConsignmentItemServiceFactory.CreateForPendingItems(consignmentItemRepositoryMock, jobItemId, supplierId, _userContext);
            CreatePendingConsignmentItem(id, jobItemId, supplierId, instructions);
            Assert.IsTrue(_domainValidationException.ResultContainsMessage(Messages.PendingItemAlreadyExists));
        }
Example #15
0
        public void Create_InstructionsGreaterThan10000Characters_DomainValidationExceptionThrown()
        {
            var id            = Guid.NewGuid();
            var consignmentId = Guid.NewGuid();
            var instructions  = new string('a', 10001);

            var jobItemRepositoryMock = MockRepository.GenerateMock <IJobItemRepository>();

            jobItemRepositoryMock.Stub(x => x.GetById(_jobItemToUpdate.Id)).Return(_jobItemToUpdate);

            _consignmentItemService = ConsignmentItemServiceFactory.Create(MockRepository.GenerateStub <IConsignmentItemRepository>(), jobItemRepositoryMock, consignmentId, _userContext);
            _jobItemService         = _jobItemService = JobItemServiceFactory.CreateToReturnJobItem(jobItemRepositoryMock, _userContext);
            CreateConsignmentItem(id, _jobItemToUpdate.Id, consignmentId, instructions);
            Assert.IsTrue(_domainValidationException.ResultContainsMessage(Messages.InstructionsTooLarge));
        }
Example #16
0
        public void EditPending_ValidDetails_ItemEdited()
        {
            var supplierId   = Guid.NewGuid();
            var instructions = "some edited instructions";

            var consignmentItemRepositoryMock = MockRepository.GenerateMock <IConsignmentItemRepository>();

            consignmentItemRepositoryMock.Stub(x => x.GetPendingItem(_pendingItemId)).Return(_pendingItemForEdit);
            consignmentItemRepositoryMock.Expect(x => x.UpdatePendingItem(null)).IgnoreArguments();
            _consignmentItemService = ConsignmentItemServiceFactory.CreateForEditForPendingItems(consignmentItemRepositoryMock, _jobItemforEditPendingId, supplierId, _userContext);
            EditPendingConsignmentItem(_pendingItemId, _jobItemforEditPendingId, supplierId, instructions);
            consignmentItemRepositoryMock.VerifyAllExpectations();
            Assert.AreEqual(instructions, _pendingItemForEdit.Instructions);
            Assert.AreEqual(supplierId, _pendingItemForEdit.Supplier.Id);
        }
Example #17
0
        public void CreatePending_ValidPendingItemDetails_PendingItemCreated()
        {
            var id           = Guid.NewGuid();
            var jobItemId    = Guid.NewGuid();
            var supplierId   = Guid.NewGuid();
            var instructions = "Please consign this item";

            var consignmentItemRepositoryMock = MockRepository.GenerateMock <IConsignmentItemRepository>();

            consignmentItemRepositoryMock.Expect(x => x.CreatePendingItem(null)).IgnoreArguments();
            _consignmentItemService = ConsignmentItemServiceFactory.CreateForPendingItems(consignmentItemRepositoryMock, jobItemId, supplierId, _userContext);
            CreatePendingConsignmentItem(id, jobItemId, supplierId, instructions);
            consignmentItemRepositoryMock.VerifyAllExpectations();
            Assert.AreNotEqual(Guid.Empty, _savedPendingItem.Id);
        }
Example #18
0
        public void Create_NoIdSupplied_ArgumentExceptionThrown()
        {
            var id            = Guid.Empty;
            var consignmentId = Guid.NewGuid();
            var instructions  = "Consignment instructions";

            _jobItemToUpdate.Job.IsPending = true;
            var jobItemRepositoryStub = MockRepository.GenerateMock <IJobItemRepository>();

            jobItemRepositoryStub.Stub(x => x.GetById(_jobItemToUpdate.Id)).Return(_jobItemToUpdate);

            _consignmentItemService = ConsignmentItemServiceFactory.Create(MockRepository.GenerateStub <IConsignmentItemRepository>(), jobItemRepositoryStub, consignmentId, _userContext);
            _jobItemService         = _jobItemService = JobItemServiceFactory.CreateToReturnJobItem(jobItemRepositoryStub, _userContext);
            CreateConsignmentItem(id, _jobItemToUpdate.Id, consignmentId, instructions);
            Assert.IsTrue(_domainValidationException.ResultContainsMessage(Messages.PendingJob));
        }
Example #19
0
        public void Create_UserHasInsufficientSecurityClearance_ArgumentExceptionThrown()
        {
            var id            = Guid.NewGuid();
            var consignmentId = Guid.NewGuid();
            var instructions  = "Consignment instructions";

            var jobItemRepositoryMock = MockRepository.GenerateMock <IJobItemRepository>();

            jobItemRepositoryMock.Stub(x => x.GetById(Guid.NewGuid())).Return(null);

            _consignmentItemService = ConsignmentItemServiceFactory.Create(
                MockRepository.GenerateStub <IConsignmentItemRepository>(), jobItemRepositoryMock, consignmentId,
                TestUserContext.Create("*****@*****.**", "Graham Robertson", "Operations Manager", UserRole.Public));
            _jobItemService = _jobItemService = JobItemServiceFactory.CreateToReturnJobItem(jobItemRepositoryMock,
                                                                                            TestUserContext.Create("*****@*****.**", "Graham Robertson", "Operations Manager", UserRole.Public));
            CreateConsignmentItem(id, _jobItemToUpdate.Id, consignmentId, instructions);
            Assert.IsTrue(_domainValidationException.ResultContainsMessage(Messages.InsufficientSecurityClearance));
        }