Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 56 additions & 0 deletions Project/src/LMS/Tests/BorrowerTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
package LMS.Tests;

import LMS.*;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
import java.nio.charset.StandardCharsets;
import java.util.Date;

import static org.junit.jupiter.api.Assertions.*;

/**
* Unit tests for the Borrower class.
*/
public class BorrowerTest {

@BeforeEach
void resetState() {
// reset the global ID counter so IDs start from 1 for each test
Person.setIDCount(0);
}

@Test
void addAndRemoveBorrowedBook_updatesBorrowedList() {
Borrower borrower = new Borrower(-1, "Alice", "Addr", 12345);
assertTrue(borrower.getBorrowedBooks().isEmpty());

// create supporting objects
Book book = new Book(-1, "Clean Code", "SE", "Robert Martin", false);
Clerk clerk = new Clerk(-1, "Clerk", "Desk", 11111, 300.0, -1);
Loan loan = new Loan(borrower, book, clerk, null, new Date(), null, false);

borrower.addBorrowedBook(loan);
assertEquals(1, borrower.getBorrowedBooks().size());
assertSame(loan, borrower.getBorrowedBooks().get(0));

borrower.removeBorrowedBook(loan);
assertTrue(borrower.getBorrowedBooks().isEmpty());
}

@Test
void addAndRemoveHoldRequest_updatesHoldList() {
Borrower borrower = new Borrower(-1, "Bob", "Addr", 55555);
assertTrue(borrower.getOnHoldBooks().isEmpty());

// Since HoldRequest classes are unavailable, use null as a placeholder
borrower.addHoldRequest(null);
assertEquals(1, borrower.getOnHoldBooks().size());
assertNull(borrower.getOnHoldBooks().get(0));

borrower.removeHoldRequest(null);
assertTrue(borrower.getOnHoldBooks().isEmpty());
}
}
40 changes: 40 additions & 0 deletions Project/src/LMS/Tests/ClerkTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
package LMS.Tests;

import LMS.Clerk;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

import static org.junit.jupiter.api.Assertions.*;

/**
* Unit tests for the Clerk class.
*/
public class ClerkTest {

@BeforeEach
void resetDeskCounter() {
// reset the static desk counter so auto‑assignment starts at 0
Clerk.currentdeskNumber = 0;
}

@Test
void constructorAutoDesk_assignsSequentialNumbers() {
Clerk c1 = new Clerk(-1, "Alice", "Addr", 123, 500.0, -1);
Clerk c2 = new Clerk(-1, "Bob", "Addr", 456, 600.0, -1);
assertEquals(0, c1.deskNo);
assertEquals(1, c2.deskNo);
}

@Test
void constructorExplicitDesk_usesProvidedNumber() {
Clerk c = new Clerk(-1, "Clara", "Addr", 789, 700.0, 10);
assertEquals(10, c.deskNo);
}

@Test
void getSalary_returnsAssignedSalary() {
Clerk c = new Clerk(-1, "Dave", "Addr", 111, 550.0, -1);
assertEquals(550.0, c.getSalary());
}
}