Exemple #1
0
        public void UpdateInfoAboutEventTest()
        {
            Reader         reader1           = new Reader("Armaan", "Moran", 12, 0);
            BorrowingEvent newBorrowingEvent = new BorrowingEvent(1, reader1, repository.GetState(), new DateTime(2020, 11, 26, 12, 0, 0));

            Assert.AreEqual(repository.GetEventById(1).Date, new DateTime(2020, 11, 16, 12, 0, 0));
            repository.UpdateEventInfo(newBorrowingEvent);
            Assert.AreEqual(repository.GetEventById(1).Date, new DateTime(2020, 11, 26, 12, 0, 0));
        }
Exemple #2
0
        public void UpdateInfoAboutEventTest()
        {
            BorrowingEvent newBorrowingEvent = new BorrowingEvent(1, service.GetReaderById(102031), service.GetStateLibrary(), new DateTime(2020, 11, 26, 15, 0, 0));

            Assert.AreEqual(service.GetEventById(1).Date, new DateTime(2020, 11, 16, 12, 0, 0));
            Assert.AreEqual(service.GetEventById(1).Reader, service.GetReaderById(102030));
            service.EditEvent(newBorrowingEvent);
            Assert.AreEqual(service.GetEventById(1).Date, new DateTime(2020, 11, 26, 15, 0, 0));
            Assert.AreEqual(service.GetEventById(1).Reader, service.GetReaderById(102031));
        }
Exemple #3
0
        public void UpdateInfoAboutNonExistingEventTest()
        {
            Reader         reader1           = new Reader("Armaan", "Moran", 12, 0);
            BorrowingEvent newBorrowingEvent = new BorrowingEvent(6, reader1, repository.GetState(), new DateTime(2020, 11, 26, 12, 0, 0));

            Assert.AreEqual(repository.GetEventById(1).Date, new DateTime(2020, 11, 16, 12, 0, 0));
            Assert.ThrowsException <InvalidOperationException>(
                () => repository.UpdateEventInfo(newBorrowingEvent));
            Assert.AreEqual(repository.GetEventById(1).Date, new DateTime(2020, 11, 16, 12, 0, 0));
        }
Exemple #4
0
        public void ReturnCopyTest()
        {
            repo        = new DataRepository(new ContextFiller());
            dataService = new DataService(repo);

            Assert.AreEqual(true, repo.ContainsBook(1));

            DateTimeOffset testDate  = new DateTimeOffset(2019, 10, 19, 22, 0, 0, new TimeSpan(2, 0, 0));
            DateTimeOffset testDate2 = new DateTimeOffset(2019, 10, 27, 22, 0, 0, new TimeSpan(2, 0, 0));
            DateTimeOffset testDate3 = new DateTimeOffset(2019, 10, 29, 22, 0, 0, new TimeSpan(2, 0, 0));

            repo.AddCopy(101, 1, CopyCondition.Mint);
            Assert.AreEqual(true, repo.ContainsCopy(101));

            Reader r = new Reader(201, "t", "tt");

            repo.AddReader(r.Id, r.FirstName, r.LastName);

            Assert.AreEqual(true, repo.ContainsReader(201));
            bool ReturnEventRised = false;

            dataService.ReturnHappened += ReturnEventMethod;
            void ReturnEventMethod(object sender, EventArgs e)
            {
                if (ReturnEventRised == true)
                {
                    Assert.Fail("Event rised multiple times");
                }
                else
                {
                    ReturnEventRised = true;
                }
            }

            //Borrow Copy
            dataService.BorrowCopy(101, 201, testDate, testDate2);
            BorrowingEvent borrowingEvent = (BorrowingEvent)repo.GetAllEvents().Last();

            Assert.AreEqual(true, repo.GetCopy(101).Borrowed);


            //Try to return copy
            dataService.ReturnCopy(101, 201, testDate3, CopyCondition.HeavlyDamaged);
            ReturnEvent returnEvent = (ReturnEvent)repo.GetAllEvents().Last();

            Assert.AreEqual(true, repo.ContainsCopy(101));
            Assert.AreEqual(true, repo.ContainsReader(201));

            Assert.AreEqual(true, ReturnEventRised);
            Assert.AreEqual(false, repo.GetCopy(101).Borrowed);
            Assert.AreEqual(true, borrowingEvent.Completed);

            Assert.AreEqual(101, returnEvent.Copy.CopyId);
            Assert.AreEqual(201, returnEvent.Reader.Id);
        }
Exemple #5
0
        //Handling Actions

        public void borrowBook(int readerId, int eventId, int bookId, DateTime borrowDate)
        {
            var currentBookState = repository.GetAmountOfAvailableCopiesById(bookId);
            var reader           = repository.GetReaderById(readerId);

            if (currentBookState == 0)
            {
                throw new InvalidOperationException("The book is unavailable for borrowing.");
            }

            BorrowingEvent bEvent = new BorrowingEvent(eventId, reader, repository.GetState(), borrowDate);

            repository.AddEvent(bEvent);
            OnEventUpdateState(bookId, currentBookState, reader, true);
        }
Exemple #6
0
        public void Fill(DataContext data)
        {
            List <Book> books = new List <Book> {
                new Book(1, "Wydra", "Jan Lasica", new LiteraryGenre[] { LiteraryGenre.Fatansy }),
                new Book(2, "Lolita", "Milosz Liana", new LiteraryGenre[] { LiteraryGenre.Romance }),
                new Book(3, "Kosmiczna Wojna", "Maciej Granat", new LiteraryGenre[] { LiteraryGenre.SciFi })
            };

            List <Reader> readers = new List <Reader> {
                new Reader(1, "Jakub", "Nowek"),
                new Reader(2, "Aniela", "Rybicka"),
                new Reader(3, "Robert", "Złotek"),
            };

            List <Copy> copies = new List <Copy>
            {
                new Copy(1, books[0], CopyCondition.HeavlyDamaged),
                new Copy(2, books[0], CopyCondition.Damaged),
                new Copy(3, books[1], CopyCondition.Poor),
                new Copy(4, books[1], CopyCondition.Good),
                new Copy(5, books[2], CopyCondition.NearMint),
                new Copy(6, books[2], CopyCondition.Mint),
            };

            foreach (Book b in books)
            {
                data.Books.Add(b.Id, b);
            }

            foreach (Reader r in readers)
            {
                data.Readers.Add(r);
            }
            foreach (Copy c in copies)
            {
                data.Copies.Add(c.CopyId, c);
            }

            // Dodawanie Eventów
            BorrowingEvent borrowing = new BorrowingEvent(data.Readers[2], data.Copies[4], new DateTimeOffset(2019, 10, 19, 22, 0, 0, new TimeSpan(2, 0, 0)), new DateTimeOffset(2019, 10, 29, 22, 0, 0, new TimeSpan(2, 0, 0)));

            data.Events.Add(new BorrowingEvent(data.Readers[0], data.Copies[3], new DateTimeOffset(2019, 10, 19, 22, 0, 0, new TimeSpan(2, 0, 0)), new DateTimeOffset(2019, 10, 29, 22, 0, 0, new TimeSpan(2, 0, 0))));
            data.Copies[3].Borrowed = true;
            data.Events.Add(new BorrowingEvent(data.Readers[1], data.Copies[6], new DateTimeOffset(2019, 10, 19, 22, 0, 0, new TimeSpan(2, 0, 0)), new DateTimeOffset(2019, 10, 29, 22, 0, 0, new TimeSpan(2, 0, 0))));
            data.Events.Add(borrowing);
            data.Events.Add(new ReturnEvent(data.Copies[4], new DateTimeOffset(2019, 10, 29, 22, 0, 0, new TimeSpan(2, 0, 0)), data.Readers[2], borrowing));
            data.Copies[6].Borrowed = true;
        }
Exemple #7
0
        public void FindLastBorrowingTest()
        {
            repo        = new DataRepository(new ContextFiller());
            dataService = new DataService(repo);


            Reader r = new Reader(201, "t", "tt");

            repo.AddReader(r.Id, r.FirstName, r.LastName);

            DateTimeOffset testDate = new DateTimeOffset(2019, 10, 19, 22, 0, 0, new TimeSpan(2, 0, 0));


            dataService.PurchaseCopy(101, 1, CopyCondition.Mint, testDate, "test");
            dataService.BorrowCopy(101, 201, testDate, testDate);
            dataService.PurchaseCopy(103, 1, CopyCondition.Mint, testDate, "test");
            dataService.BorrowCopy(103, 201, testDate, testDate);
            dataService.PurchaseCopy(105, 1, CopyCondition.Mint, testDate, "test");

            BorrowingEvent result = dataService.FindLastBorrowing(101);

            Assert.AreEqual(101, result.Copy.CopyId);
            Assert.AreEqual(201, result.Reader.Id);
        }
Exemple #8
0
        public void UpdateInfoAboutNonExistingEventTest()
        {
            BorrowingEvent newBorrowingEvent = new BorrowingEvent(6, service.GetReaderById(102032), service.GetStateLibrary(), new DateTime(2020, 11, 26, 12, 0, 0));

            Assert.ThrowsException <InvalidOperationException>(() => service.EditEvent(newBorrowingEvent));
        }