@@ -8,8 +8,7 @@ import javax.swing.*; | |||||
import java.awt.*; | import java.awt.*; | ||||
import java.awt.event.*; | import java.awt.event.*; | ||||
public class DeleteDialog extends JDialog | |||||
{ | |||||
public class DeleteDialog extends JDialog { | |||||
private JPanel contentPane; | private JPanel contentPane; | ||||
private JButton buttonOK; | private JButton buttonOK; | ||||
private JButton buttonCancel; | private JButton buttonCancel; | ||||
@@ -17,41 +16,33 @@ public class DeleteDialog extends JDialog | |||||
private JLabel bookNameLbl; | private JLabel bookNameLbl; | ||||
private boolean returnStatus; | private boolean returnStatus; | ||||
public DeleteDialog(String name) | |||||
{ | |||||
public DeleteDialog(String name) { | |||||
setContentPane(contentPane); | setContentPane(contentPane); | ||||
setModal(true); | setModal(true); | ||||
getRootPane().setDefaultButton(buttonOK); | getRootPane().setDefaultButton(buttonOK); | ||||
buttonOK.addActionListener(new ActionListener() | |||||
{ | |||||
public void actionPerformed(ActionEvent e) | |||||
{ | |||||
buttonOK.addActionListener(new ActionListener() { | |||||
public void actionPerformed(ActionEvent e) { | |||||
onOK(); | onOK(); | ||||
} | } | ||||
}); | }); | ||||
buttonCancel.addActionListener(new ActionListener() | |||||
{ | |||||
public void actionPerformed(ActionEvent e) | |||||
{ | |||||
buttonCancel.addActionListener(new ActionListener() { | |||||
public void actionPerformed(ActionEvent e) { | |||||
onCancel(); | onCancel(); | ||||
} | } | ||||
}); | }); | ||||
// call onCancel() when cross is clicked | // call onCancel() when cross is clicked | ||||
setDefaultCloseOperation(DO_NOTHING_ON_CLOSE); | setDefaultCloseOperation(DO_NOTHING_ON_CLOSE); | ||||
addWindowListener(new WindowAdapter() | |||||
{ | |||||
public void windowClosing(WindowEvent e) | |||||
{ | |||||
addWindowListener(new WindowAdapter() { | |||||
public void windowClosing(WindowEvent e) { | |||||
onCancel(); | onCancel(); | ||||
} | } | ||||
}); | }); | ||||
// call onCancel() on ESCAPE | // call onCancel() on ESCAPE | ||||
contentPane.registerKeyboardAction(new ActionListener() | |||||
{ | |||||
contentPane.registerKeyboardAction(new ActionListener() { | |||||
public void actionPerformed(ActionEvent e) { | public void actionPerformed(ActionEvent e) { | ||||
onCancel(); | onCancel(); | ||||
} | } | ||||
@@ -61,27 +52,23 @@ public class DeleteDialog extends JDialog | |||||
bookNameLbl.setText(name + "?"); | bookNameLbl.setText(name + "?"); | ||||
} | } | ||||
private void onOK() | |||||
{ | |||||
private void onOK() { | |||||
// add your code here | // add your code here | ||||
returnStatus = true; | returnStatus = true; | ||||
dispose(); | dispose(); | ||||
} | } | ||||
private void onCancel() | |||||
{ | |||||
private void onCancel() { | |||||
// add your code here if necessary | // add your code here if necessary | ||||
returnStatus = false; | returnStatus = false; | ||||
dispose(); | dispose(); | ||||
} | } | ||||
public boolean getReturnStatus() | |||||
{ | |||||
public boolean getReturnStatus() { | |||||
return returnStatus; | return returnStatus; | ||||
} | } | ||||
public static void main(String[] args) | |||||
{ | |||||
public static void main(String[] args) { | |||||
DeleteDialog dialog = new DeleteDialog("SomeBook or SomeUser"); | DeleteDialog dialog = new DeleteDialog("SomeBook or SomeUser"); | ||||
dialog.setVisible(true); | dialog.setVisible(true); | ||||
System.exit(0); | System.exit(0); | ||||
@@ -127,7 +114,7 @@ public class DeleteDialog extends JDialog | |||||
panel3.add(warningLbl, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_SOUTH, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false)); | panel3.add(warningLbl, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_SOUTH, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false)); | ||||
bookNameLbl = new JLabel(); | bookNameLbl = new JLabel(); | ||||
bookNameLbl.setFont(new Font(bookNameLbl.getFont().getName(), bookNameLbl.getFont().getStyle(), 20)); | bookNameLbl.setFont(new Font(bookNameLbl.getFont().getName(), bookNameLbl.getFont().getStyle(), 20)); | ||||
bookNameLbl.setText("{Book Name}"); | |||||
bookNameLbl.setText("{Name} ?"); | |||||
panel3.add(bookNameLbl, new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_NORTH, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false)); | panel3.add(bookNameLbl, new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_NORTH, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false)); | ||||
} | } | ||||
@@ -129,10 +129,9 @@ class BookFactory | |||||
{ | { | ||||
try | try | ||||
{ | { | ||||
books.removeAt(id) | |||||
return true | |||||
return books.remove(getBook(id)) | |||||
} | } | ||||
catch(e: Exception) | |||||
catch (e: Exception) | |||||
{ | { | ||||
return false | return false | ||||
} | } | ||||
@@ -1,157 +0,0 @@ | |||||
package libsys; | |||||
import junit.framework.Test; | |||||
import junit.framework.TestCase; | |||||
import junit.framework.TestSuite; | |||||
import java.io.File; | |||||
/** | |||||
* Test UserFactory related operations | |||||
*/ | |||||
public class UserFactoryTest extends TestCase | |||||
{ | |||||
private UserFactory userFactory; | |||||
/** | |||||
* Test UserFactory related operations | |||||
* @param testName name of the test case | |||||
*/ | |||||
public UserFactoryTest(String testName) | |||||
{ | |||||
super(testName); | |||||
} | |||||
/** | |||||
* @return suite of tests being tested | |||||
*/ | |||||
public static Test suite() | |||||
{ | |||||
return new TestSuite(UserFactoryTest.class); | |||||
} | |||||
/** | |||||
* Set up before testing | |||||
* @throws Exception Exception | |||||
*/ | |||||
public void setUp() throws Exception | |||||
{ | |||||
super.setUp(); | |||||
userFactory = new UserFactory(); | |||||
userFactory.setUserFileName("testUserFactory.json"); | |||||
} | |||||
/** | |||||
* Run all tests | |||||
*/ | |||||
public void testApp() | |||||
{ | |||||
newUserTest(); | |||||
updateTest(); | |||||
fileIOTest(); | |||||
exceptionTest(); | |||||
} | |||||
/** | |||||
* Test the newUser function | |||||
*/ | |||||
private void newUserTest() | |||||
{ | |||||
User user1 = userFactory.newUser("User1", 10); | |||||
User user2 = userFactory.newUser("User2", 3); | |||||
assertEquals("User1 is the same User object as the one in userFactory", user1, userFactory.getUser(0)); | |||||
assertEquals("User2 is the same User object as the one in userFactory", user2, userFactory.getUser(1)); | |||||
assertEquals("Name of User1 in userFactory is the same as returned", user1, userFactory.getUser("User1")); | |||||
assertEquals("Name of User2 in userFactory is the same as returned", user2, userFactory.getUser("User2")); | |||||
assertEquals("Name of User1 is \"User1\"", user1.getName(), "User1"); | |||||
assertEquals("Name of User2 is \"User2\"", user2.getName(), "User2"); | |||||
assertEquals("Name of User1 in userFactory is \"User1\"", userFactory.getUser(0).getName(), "User1"); | |||||
assertEquals("Name of User1 in userFactory is \"User1\"", userFactory.getUser(1).getName(), "User2"); | |||||
assertEquals("Limit of User1 is 10", user1.getLimit(), 10); | |||||
assertEquals("Limit of User2 is 3", user2.getLimit(), 3); | |||||
assertEquals("Limit of User1 in userFactory is 10", userFactory.getUser(0).getLimit(), 10); | |||||
assertEquals("Limit of User2 in userFactory is 3", userFactory.getUser(1).getLimit(), 3); | |||||
} | |||||
private void updateTest() | |||||
{ | |||||
User user1 = userFactory.getUser(0); | |||||
user1.borrowNewBook(0); | |||||
user1.borrowNewBook(1); | |||||
userFactory.update(userFactory.getUser(0), user1); | |||||
} | |||||
/** | |||||
* Test the class in writing to and reading from files | |||||
*/ | |||||
private void fileIOTest() | |||||
{ | |||||
String filename = "."; | |||||
userFactory.setUserFileName(filename); | |||||
userFactory.toJsonFile(); | |||||
assertFalse("File does not exist", (new File(filename)).exists() && !(new File(filename).isDirectory())); | |||||
filename = "someTestFile.json"; | |||||
userFactory.setUserFileName(filename); | |||||
userFactory.toJsonFile(); | |||||
UserFactory newUserFactory = new UserFactory(filename); | |||||
assertEquals("newUserFactory : Name of User1 is \"User1\"", newUserFactory.getUser(0).getName(), "User1"); | |||||
assertEquals("newUserFactory : Name of User2 is \"User2\"", newUserFactory.getUser(1).getName(), "User2"); | |||||
assertEquals("newUserFactory : Name of User1 is 10", newUserFactory.getUser(0).getLimit(), 10); | |||||
assertEquals("newUserFactory : Name of User2 is 3", newUserFactory.getUser(1).getLimit(), 3); | |||||
} | |||||
/** | |||||
* Test exception cases and error handling of the class | |||||
*/ | |||||
private void exceptionTest() | |||||
{ | |||||
UserFactory anotherUserFactory = new UserFactory("noSuchFile.json"); | |||||
assertEquals("Check ID of new User of non-existent import file", anotherUserFactory.newUser("Some person", 1).getId(), 0); | |||||
try | |||||
{ | |||||
anotherUserFactory.getUser(1); | |||||
assert false; | |||||
} | |||||
catch (Exception e) | |||||
{ | |||||
assert true; | |||||
} | |||||
try | |||||
{ | |||||
anotherUserFactory.getUser("alk;jcnalk"); | |||||
assert false; | |||||
} | |||||
catch (Exception e) | |||||
{ | |||||
assert true; | |||||
} | |||||
} | |||||
/** | |||||
* Delete files created during test | |||||
* @throws Exception Exception | |||||
*/ | |||||
public void tearDown() throws Exception | |||||
{ | |||||
super.tearDown(); | |||||
File file = new File("testUserFactory.json"); | |||||
if(!file.delete()) | |||||
{ | |||||
System.out.println("testUserFactory.json is not found / deleted"); | |||||
} | |||||
file = new File("noSuchFile.json"); | |||||
if(!file.delete()) | |||||
{ | |||||
System.out.println("noSuchFile.json is not found / deleted"); | |||||
} | |||||
file = new File("someTestFile.json"); | |||||
if(!file.delete()) | |||||
{ | |||||
System.out.println("someTestFile.json is not found / deleted"); | |||||
} | |||||
} | |||||
} |
@@ -10,11 +10,6 @@ class BookTest | |||||
private var book1: Book? = null | private var book1: Book? = null | ||||
private var book2: Book? = null | private var book2: Book? = null | ||||
init | |||||
{ | |||||
} | |||||
/** | /** | ||||
* Set up before testing | * Set up before testing | ||||
*/ | */ | ||||
@@ -24,6 +19,11 @@ class BookTest | |||||
book2 = Book("Book2", 12, "NOT AVAILABLE") | book2 = Book("Book2", 12, "NOT AVAILABLE") | ||||
} | } | ||||
init | |||||
{ | |||||
} | |||||
/** | /** | ||||
* Test Book related operations | * Test Book related operations | ||||
*/ | */ | ||||
@@ -0,0 +1,109 @@ | |||||
package libsys | |||||
import org.junit.* | |||||
import java.io.File | |||||
/** | |||||
* Test Book related operations | |||||
*/ | |||||
class UserFactoryTest { | |||||
private var userFactory: UserFactory? = null | |||||
init | |||||
{ | |||||
} | |||||
/** | |||||
* Set up before testing | |||||
*/ | |||||
@Before fun prepareTest() | |||||
{ | |||||
userFactory = UserFactory() | |||||
userFactory!!.setUserFileName("testUserFactory.json") | |||||
} | |||||
@After fun cleanupTest() | |||||
{ | |||||
var file = File("testUserFactory.json") | |||||
if (!file.delete()) | |||||
{ | |||||
println("testUserFactory.json is not found / deleted") | |||||
} | |||||
file = File("noSuchFile.json") | |||||
if (!file.delete()) | |||||
{ | |||||
println("noSuchFile.json is not found / deleted") | |||||
} | |||||
file = File("someTestFile.json") | |||||
if (!file.delete()) | |||||
{ | |||||
println("someTestFile.json is not found / deleted") | |||||
} | |||||
} | |||||
/** | |||||
* Test UserFactory related operations | |||||
*/ | |||||
@Test fun userFactoryTest() | |||||
{ | |||||
var user1 = userFactory!!.newUser("User1", 10) | |||||
val user2 = userFactory!!.newUser("User2", 3) | |||||
Assert.assertEquals("User1 is the same User object as the one in userFactory", user1, userFactory!!.getUser(0)) | |||||
Assert.assertEquals("User2 is the same User object as the one in userFactory", user2, userFactory!!.getUser(1)) | |||||
Assert.assertEquals("Name of User1 in userFactory is the same as returned", user1, userFactory!!.getUser("User1")) | |||||
Assert.assertEquals("Name of User2 in userFactory is the same as returned", user2, userFactory!!.getUser("User2")) | |||||
Assert.assertEquals("Name of User1 is \"User1\"", user1.name, "User1") | |||||
Assert.assertEquals("Name of User2 is \"User2\"", user2.name, "User2") | |||||
Assert.assertEquals("Name of User1 in userFactory is \"User1\"", userFactory!!.getUser(0).name, "User1") | |||||
Assert.assertEquals("Name of User1 in userFactory is \"User1\"", userFactory!!.getUser(1).name, "User2") | |||||
Assert.assertEquals("Limit of User1 is 10", user1.limit, 10) | |||||
Assert.assertEquals("Limit of User2 is 3", user2.limit, 3) | |||||
Assert.assertEquals("Limit of User1 in userFactory is 10", userFactory!!.getUser(0).limit, 10) | |||||
Assert.assertEquals("Limit of User2 in userFactory is 3", userFactory!!.getUser(1).limit, 3) | |||||
user1 = userFactory!!.getUser(0) | |||||
user1.borrowNewBook(0) | |||||
user1.borrowNewBook(1) | |||||
userFactory!!.update(userFactory!!.getUser(0), user1) | |||||
var filename = "." | |||||
userFactory!!.setUserFileName(filename) | |||||
userFactory!!.toJsonFile() | |||||
Assert.assertFalse("File does not exist", File(filename).exists() && !File(filename).isDirectory) | |||||
filename = "someTestFile.json" | |||||
userFactory!!.setUserFileName(filename) | |||||
userFactory!!.toJsonFile() | |||||
val newUserFactory = UserFactory(filename) | |||||
Assert.assertEquals("newUserFactory : Name of User1 is \"User1\"", newUserFactory.getUser(0).name, "User1") | |||||
Assert.assertEquals("newUserFactory : Name of User2 is \"User2\"", newUserFactory.getUser(1).name, "User2") | |||||
Assert.assertEquals("newUserFactory : Name of User1 is 10", newUserFactory.getUser(0).limit, 10) | |||||
Assert.assertEquals("newUserFactory : Name of User2 is 3", newUserFactory.getUser(1).limit, 3) | |||||
val anotherUserFactory = UserFactory("noSuchFile.json") | |||||
Assert.assertEquals("Check ID of new User of non-existent import file", anotherUserFactory.newUser("Some person", 1).id, 0) | |||||
try | |||||
{ | |||||
anotherUserFactory.getUser(1) | |||||
assert(false) | |||||
} | |||||
catch (e: Exception) | |||||
{ | |||||
assert(true) | |||||
} | |||||
try | |||||
{ | |||||
anotherUserFactory.getUser("alk;jcnalk") | |||||
assert(false) | |||||
} | |||||
catch (e: Exception) | |||||
{ | |||||
assert(true) | |||||
} | |||||
} | |||||
} |