Hello,
The problem is indeed in Book class, but not only.
In Your Test class You are calling Book.equals method and passing in another Book instance as a parameter.
But in Your "mp2.part4.Book" class you're trying to compare ISBN to the passed in parameter, which should return false as in Your case.
If You'd compared Book.metod (ISBN) with arguments (Book's) ISBN, then it could produce right result (assuming two Book classes would be considered equal if their "metod" fields are equal).
There is a problem in "mp2.isbn.ISBN.equals" method which:
a. does not test for null
b. uses == for String comparison
((ISBN) o).isbn == isbn)
You should use equals for String comparison instead
The "mp2.part4.Book.equals" method should have additional checks like those in "mp2.isbn.ISBN.equals"
If You fix those then You should be fine.