Exemplo n.º 1
0
        public void GivenADocumentId_WhenTheDocumentIsCheckedOut_IAmNotifiedThatTheDocumentIsCheckedOut()
        {
            _checkOutRepository.Setup(c => c.GetCheckOut("1")).Returns(new CheckOut {
                DocumentId = 1
            });

            bool isCheckedOut = _checkOutEngine.IsDocumentCheckedOut("1");

            isCheckedOut.Should().BeTrue();
        }
Exemplo n.º 2
0
        public void AddItem(string documentId, string cartId, string userName, string manCo, string docType, string subDocType)
        {
            var cartItems = _cartItemRepository.GetCart(cartId);

            var cartitem = cartItems.FirstOrDefault(c => c.Document.ManCo.Code != manCo);

            if (cartitem != null)
            {
                throw new BasketContainsDifferentManCoException("Basket has documents from a different man co");
            }

            bool documentIsCheckedOut = _checkOutEngine.IsDocumentCheckedOut(documentId);

            if (documentIsCheckedOut)
            {
                throw new DocumentCurrentlyCheckedOutException(string.Format("Document {0} is already checked out", cartId));
            }

            var checkOut = _checkOutEngine.CheckOutDocument(userName, documentId, manCo, docType, subDocType);

            if (checkOut == null)
            {
                throw new UnableToCheckOutDocumentException(string.Format("Unable to check out document {0}", documentId));
            }

            var document = _documentRepository.GetDocument(documentId);

            if (document == null)
            {
                throw new UnableToRetrieveDocumentException(string.Format("Unable to retrieve document {0}", documentId));
            }

            var cartItem = new CartItem
            {
                CartId     = cartId,
                DocumentId = document.Id
            };

            _cartItemRepository.Create(cartItem);
        }