public void SecondPatronCanCheckOutSecondCopyOfSameClassification()
        {
            var barcode1Copy2 = Holding.GenerateBarcode(Holding.ClassificationFromBarcode(SomeBarcode), 2);

            scanner.ScanNewMaterial(barcode1Copy2, classificationServiceMock);

            var patronId2 = patronsService.Create(new Patron {
                Name = ""
            });

            scanner.AcceptLibraryCard(patronId2);
            scanner.AcceptBarcode(barcode1Copy2);

            Assert.Equal(patronId2, holdingsService.FindByBarcode(barcode1Copy2).HeldByPatronId);
        }
 public static void CheckOut(this ScanStation scanner, string barcode, int patronId, DateTime dateTime)
 {
     TimeService.NextTime = dateTime;
     scanner.AcceptLibraryCard(patronId);
     TimeService.NextTime = dateTime;
     scanner.AcceptBarcode(barcode);
 }
        public void CheckOutBook()
        {
            scanner.AddNewMaterial(Isbn1);

            TimeService.NextTime = CheckoutTime;
            scanner.AcceptLibraryCard(patronId1);
            scanner.AcceptBarcode(barcode1);
            scanner.CompleteCheckout();

            var holding = holdingService.Retrieve(barcode1);

            Assert.That(holding.HeldByPatronId, Is.EqualTo(patronId1));
            Assert.That(holding.CheckOutTimestamp, Is.EqualTo(CheckoutTime));

            var patron = new PatronService().Retrieve(patronId1);

            Assert.That(patron.Holdings, Is.EqualTo(new List <string> {
                barcode1
            }));
        }
        public void PatronIdUpdatedWhenLibraryCardAccepted()
        {
            scanner.AcceptLibraryCard(somePatronId);

            Assert.Equal(somePatronId, scanner.CurrentPatronId);
        }