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)); }
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)); }
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)); }
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); }
//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); }
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; }
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); }
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)); }