diff --git a/tests/Partitioning/swen90006/passbook/PartitioningTests.java b/tests/Partitioning/swen90006/passbook/PartitioningTests.java index e7a6efd37025b6e88fed7b30d618c3c430105ad5..99ed41e01e69dec11146c5f73582cd9d5eddcd57 100644 --- a/tests/Partitioning/swen90006/passbook/PartitioningTests.java +++ b/tests/Partitioning/swen90006/passbook/PartitioningTests.java @@ -1,5 +1,7 @@ package swen90006.passbook; +import java.net.MalformedURLException; +import java.net.URL; import java.util.List; import java.util.ArrayList; import java.nio.charset.Charset; @@ -8,14 +10,15 @@ import java.nio.file.Files; import java.nio.file.FileSystems; import org.junit.*; +import swen90006.passbook.original.swen90006.passbook.*; + import static org.junit.Assert.*; public class PartitioningTests { protected PassBook pb; - //Any method annotated with "@Before" will be executed before each test, - //allowing the tester to set up some shared resources. + @Before public void setUp() { pb = new PassBook(); @@ -28,6 +31,545 @@ public class PartitioningTests } //Any method annotation with "@Test" is executed as a test. + +//*************addUser Test Cases************ + + //DuplicateUserTest Test Cases + + //Existed Username in PASSBOOK + @Test public void DuplicateUserTest() throws WeakPassphraseException, DuplicateUserException { + boolean DuplicateUserException = false; + String passbookUsername = "Sam"; + String passbookphrase = "123456aA"; + try{ + pb.addUser(passbookUsername, passbookphrase); + pb.addUser(passbookUsername, passbookphrase); + } + catch(DuplicateUserException e){ + DuplicateUserException = true; + } + assertTrue (DuplicateUserException) ; + + } + + + @Test public void DuplicateUserTest2() throws WeakPassphraseException, DuplicateUserException { + boolean DuplicateUserException = false; + String passbookUsername = "Sam"; + String passbookphrase = "123456aA"; + String passbookUsername2 = "Tom"; + String passbookphrase2 = "123456aA"; + try{ + pb.addUser(passbookUsername, passbookphrase); + pb.addUser(passbookUsername2, passbookphrase2); + } + catch(DuplicateUserException e){ + DuplicateUserException = true; + } + assertFalse (DuplicateUserException); ; + + } + + + //WeakPassphraseException Test cases + + //0 < Passphrase < 8 + @Test public void WeakPassphraseException() throws DuplicateUserException{ + boolean WeakPassphraseException = false; + String passbookUsername = "Sam"; + String passbookphrase = "123aA"; + try{ + pb.addUser(passbookUsername,passbookphrase); + } + catch (WeakPassphraseException e){ + WeakPassphraseException = true; + } + assertTrue(WeakPassphraseException); + } + + //Passphrase >= 8 + @Test public void WeakPassphraseException2() throws DuplicateUserException{ + boolean WeakPassphraseException = false; + String passbookUsername = "Sam"; + String passbookphrase = "123456aA"; + try{ + pb.addUser(passbookUsername,passbookphrase); + } + catch (WeakPassphraseException e){ + WeakPassphraseException = true; + } + assertFalse(WeakPassphraseException); + } + + + // passphrase.length = 8 && passphrase.Contains Lower or Upper or Number + + @Test public void Contains() throws DuplicateUserException + { + boolean WeakPassphraseException = false; + String passbookUsername = "Sam"; + String passbookphrase = "AAAAAAAA"; + try{ + pb.addUser(passbookUsername,passbookphrase); + } + catch (WeakPassphraseException e){ + WeakPassphraseException = true; + } + assertTrue(WeakPassphraseException); + } + + // passphrase.length = 8 && passphrase contains 2 character + + @Test public void Contains2() throws DuplicateUserException + { + boolean WeakPassphraseException = false; + String passbookUsername = "Sam"; + String passbookphrase = "1234567a"; + try{ + pb.addUser(passbookUsername,passbookphrase); + } + catch (WeakPassphraseException e){ + WeakPassphraseException = true; + } + assertTrue(WeakPassphraseException); + } + + // passphrase.length = 8 && passphrase illegal + + @Test public void Contains3() throws DuplicateUserException + { + boolean WeakPassphraseException = false; + String passbookUsername = "Sam"; + String passbookphrase = "!!!!!!!!"; + try{ + pb.addUser(passbookUsername,passbookphrase); + } + catch (WeakPassphraseException e){ + WeakPassphraseException = true; + } + assertTrue(WeakPassphraseException); + } + + // passphrase.length = 8 && passphrase is legal + + @Test public void Contains4() throws DuplicateUserException + { + boolean WeakPassphraseException = false; + String passbookUsername = "Sam"; + String passbookphrase = "123456aA"; + try{ + pb.addUser(passbookUsername,passbookphrase); + } + catch (WeakPassphraseException e){ + WeakPassphraseException = true; + } + assertFalse(WeakPassphraseException); + } + + + + +//*********loginUser Test Cases********** + + // user is in passbook + @Test public void NoSuchUserException() throws NoSuchUserException, AlreadyLoggedInException, IncorrectPassphraseException, WeakPassphraseException, DuplicateUserException { + boolean NoSuchUserException = false; + String passbookUsername = "Sam"; + String passbookphrase = "123456aA"; + try { + pb.addUser(passbookUsername,passbookphrase); + pb.loginUser(passbookUsername,passbookphrase); + } + catch (NoSuchUserException e){ + NoSuchUserException = true; + } + assertFalse(NoSuchUserException); + } + + // user is not in passbook + @Test public void NoSuchUserException2() throws NoSuchUserException, AlreadyLoggedInException, IncorrectPassphraseException, WeakPassphraseException, DuplicateUserException { + boolean NoSuchUserException = false; + String passbookUsername = "Sam"; + String passbookphrase = "123456aA"; + String passbookUsername2 = "Sam"; + String passbookphrase2 = "123456aA"; + try { + pb.addUser(passbookUsername,passbookphrase); + pb.loginUser(passbookUsername2,passbookphrase2); + } + catch (NoSuchUserException e){ + NoSuchUserException = true; + } + assertTrue(NoSuchUserException); + } + + // username is NULL + @Test public void NoSuchUserException3() throws NoSuchUserException, AlreadyLoggedInException, IncorrectPassphraseException, WeakPassphraseException, DuplicateUserException { + boolean NoSuchUserException = false; + String passbookUsername = "Sam"; + String passbookphrase = "123456aA"; + String passbookUsername2 = ""; + String passbookphrase2 = "123456aA"; + try { + pb.addUser(passbookUsername,passbookphrase); + pb.loginUser(passbookUsername2,passbookphrase2); + } + catch (NoSuchUserException e){ + NoSuchUserException = true; + } + assertTrue(NoSuchUserException); + } + + //passphrase is incorrect + @Test public void IncorrectPassphraseException() throws WeakPassphraseException, DuplicateUserException, AlreadyLoggedInException, IncorrectPassphraseException, NoSuchUserException { + boolean IncorrectPassphraseException = false; + String passbookUsername = "Sam"; + String passbookphrase = "123456aA"; + String passbookUsername2 = "Sam"; + String passbookphrase2 = "12345aaA"; + try { + pb.addUser(passbookUsername,passbookphrase); + pb.loginUser(passbookUsername2,passbookphrase2); + } + catch (IncorrectPassphraseException e){ + IncorrectPassphraseException = true; + } + assertTrue(IncorrectPassphraseException); + } + + //passphrase is correct + @Test public void IncorrectPassphraseException2() throws WeakPassphraseException, DuplicateUserException, AlreadyLoggedInException, IncorrectPassphraseException, NoSuchUserException { + boolean IncorrectPassphraseException = false; + String passbookUsername = "Sam"; + String passbookphrase = "123456aA"; + String passbookUsername2 = "Sam"; + String passbookphrase2 = "123456aA"; + try { + pb.addUser(passbookUsername,passbookphrase); + pb.loginUser(passbookUsername2,passbookphrase2); + } + catch (IncorrectPassphraseException e){ + IncorrectPassphraseException = true; + } + assertFalse(IncorrectPassphraseException); + } + //passphrase is NULL + @Test public void IncorrectPassphraseException3() throws WeakPassphraseException, DuplicateUserException, AlreadyLoggedInException, IncorrectPassphraseException, NoSuchUserException { + boolean IncorrectPassphraseException = false; + String passbookUsername = "Sam"; + String passbookphrase = "123456aA"; + String passbookUsername2 = "Sam"; + String passbookphrase2 = ""; + try { + pb.addUser(passbookUsername,passbookphrase); + pb.loginUser(passbookUsername2,passbookphrase2); + } + catch (IncorrectPassphraseException e){ + IncorrectPassphraseException = true; + } + assertTrue(IncorrectPassphraseException); + } + +//********updateDetails********** + + //InvalidSessionIDException + +// vaild sessionID +@Test public void InvalidSessionIDException() throws WeakPassphraseException, DuplicateUserException, NoSuchUserException, AlreadyLoggedInException, IncorrectPassphraseException, MalformedURLException, InvalidSessionIDException { + boolean InvalidSessionIDException = false; + Integer sessionID ; + URL url = new URL ("http: 8888"); + String Username = "Sam"; + String Password = "123456aA"; + String urlUsername = "Sam"; + String urlPassword = "123456aA"; + pb.addUser(Username,Password); + sessionID = pb.loginUser(Username,Password); + try{ + pb.updateDetails(sessionID,url,urlUsername,urlPassword); + }catch (InvalidSessionIDException e){ + InvalidSessionIDException = true; + } + assertFalse(InvalidSessionIDException); + +} + // invaild sessionID + @Test public void InvalidSessionIDException2() throws WeakPassphraseException, DuplicateUserException, NoSuchUserException, AlreadyLoggedInException, IncorrectPassphraseException, MalformedURLException, InvalidSessionIDException { + boolean InvalidSessionIDException = false; + Integer sessionID = -1 ; + URL url = new URL ("http: 8888"); + String Username = "Sam"; + String Password = "123456aA"; + String urlUsername = "Sam"; + String urlPassword = "123456aA"; + pb.addUser(Username,Password); + + try{ + pb.updateDetails(sessionID,url,urlUsername,urlPassword); + }catch (InvalidSessionIDException e){ + InvalidSessionIDException = true; + } + assertTrue(InvalidSessionIDException); + + } + + + +//MalformedURLException + //Protocol should be http or https + + @Test public void MalformedURLException() throws MalformedURLException, WeakPassphraseException, DuplicateUserException, NoSuchUserException, AlreadyLoggedInException, IncorrectPassphraseException, InvalidSessionIDException { + boolean MalformedURLException = false; + Integer sessionID ; + String Username = "Sam"; + String urlUsername = "Sam"; + String urlPassword = "123456aA"; + pb.addUser(Username,Password); + sessionID = pb.loginUser(Username,Password); + try{ + URL url = new URL ("http: Sam123456aA"); + pb.updateDetails(sessionID,url,urlUsername,urlPassword); + }catch (MalformedURLException e){ + MalformedURLException = true; + } + assertFalse(MalformedURLException); + } + + //Protocol is ftp + + @Test public void MalformedURLException2() throws MalformedURLException, WeakPassphraseException, DuplicateUserException, NoSuchUserException, AlreadyLoggedInException, IncorrectPassphraseException, InvalidSessionIDException { + boolean MalformedURLException = false; + Integer sessionID ; + String Username = "Sam"; + String Password = "123456aA"; + String urlUsername = "Sam"; + String urlPassword = "123456aA"; + pb.addUser(Username,Password); + sessionID = pb.loginUser(Username,Password); + try{ + URL url = new URL ("ftp: Sam123456aA"); + pb.updateDetails(sessionID,url,urlUsername,urlPassword); + }catch ( MalformedURLException e){ + MalformedURLException = true; + } + assertTrue(MalformedURLException); + } + + + + //urlUsername != null && urlPassword !=null + @Test public void checkRemove() throws WeakPassphraseException, DuplicateUserException, NoSuchUserException, AlreadyLoggedInException, IncorrectPassphraseException, InvalidSessionIDException, MalformedURLException, NoSuchURLException { + boolean NoSuchUserException = false; + Integer sessionID ; + String Username = "Sam"; + String Password = "123456aA"; + String urlUsername = "Sam"; + String urlPassword = "123456aA"; + pb.addUser(Username,Password); + sessionID = pb.loginUser(Username,Password); + try{ + URL url = new URL ("http:Sam123456aA"); + pb.updateDetails(sessionID,url,urlUsername,urlPassword); + pb.retrieveDetails(sessionID,url); + } + catch (NoSuchURLException e){ + NoSuchUserException = true; + } + assertFalse(NoSuchUserException); + } + + //urlUsername = null || urlPassword !=null + @Test public void checkRemove2() throws WeakPassphraseException, DuplicateUserException, NoSuchUserException, AlreadyLoggedInException, IncorrectPassphraseException, InvalidSessionIDException, MalformedURLException, NoSuchURLException { + boolean NoSuchUserException = false; + Integer sessionID ; + String Username = "Sam"; + String Password = "123456aA"; + String urlUsername = null; + String urlPassword = "123456aA"; + pb.addUser(Username,Password); + sessionID = pb.loginUser(Username,Password); + try{ + URL url = new URL ("http:Sam123456aA"); + pb.updateDetails(sessionID,url,urlUsername,urlPassword); + pb.retrieveDetails(sessionID,url); + } + catch (NoSuchURLException e){ + NoSuchUserException = true; + } + assertTrue(NoSuchUserException); + } + //urlUsername != null || urlPassword =null + @Test public void checkRemove3() throws WeakPassphraseException, DuplicateUserException, NoSuchUserException, AlreadyLoggedInException, IncorrectPassphraseException, InvalidSessionIDException, MalformedURLException, NoSuchURLException { + boolean NoSuchUserException = false; + Integer sessionID ; + String Username = "Sam"; + String Password = "123456aA"; + String urlUsername = "Sam"; + String urlPassword = null; + pb.addUser(Username,Password); + sessionID = pb.loginUser(Username,Password); + try{ + URL url = new URL ("http:Sam123456aA"); + pb.updateDetails(sessionID,url,urlUsername,urlPassword); + pb.retrieveDetails(sessionID,url); + } + catch (NoSuchURLException e){ + NoSuchUserException = true; + } + assertTrue(NoSuchUserException); + } + //urlUsername != null || urlPassword !=null + @Test public void checkRemove4() throws WeakPassphraseException, DuplicateUserException, NoSuchUserException, AlreadyLoggedInException, IncorrectPassphraseException, InvalidSessionIDException, MalformedURLException, NoSuchURLException { + boolean NoSuchUserException = false; + Integer sessionID ; + String Username = "Sam"; + String Password = "123456aA"; + String urlUsername = null; + String urlPassword = null; + pb.addUser(Username,Password); + sessionID = pb.loginUser(Username,Password); + try{ + URL url = new URL ("http:Sam123456aA"); + pb.updateDetails(sessionID,url,urlUsername,urlPassword); + pb.retrieveDetails(sessionID,url); + } + catch (NoSuchURLException e){ + NoSuchUserException = true; + } + assertTrue(NoSuchUserException); + } + +//*******retrieveDetails******** + //InvalidSessionIDException + + // sessionID exist + @Test public void InvalidSessionIDExceptionRE() throws WeakPassphraseException, DuplicateUserException, NoSuchUserException, AlreadyLoggedInException, IncorrectPassphraseException, MalformedURLException, NoSuchURLException { + boolean InvalidSessionIDException = false; + Integer sessionID ; + + String Username = "Sam"; + String Password = "123456aA"; + String urlUsername = "Sam"; + String urlPassword = "123456aA"; + pb.addUser(Username,Password); + sessionID = pb.loginUser(Username,Password); + try{ + URL url = new URL ("http:Sam123456aA"); + pb.updateDetails(sessionID,url,urlUsername,urlPassword); + pb.retrieveDetails(sessionID,url); + }catch (InvalidSessionIDException e){ + InvalidSessionIDException = true; + } + assertFalse(InvalidSessionIDException); + + } + // invaild sessionID + @Test public void InvalidSessionIDExceptionRE2() throws WeakPassphraseException, DuplicateUserException, NoSuchUserException, AlreadyLoggedInException, IncorrectPassphraseException, MalformedURLException, NoSuchURLException { + boolean InvalidSessionIDException = false; + Integer sessionID = -1; + + String Username = "Sam"; + String Password = "123456aA"; + String urlUsername = "Sam"; + String urlPassword = "123456aA"; + pb.addUser(Username,Password); + + try{ + URL url = new URL ("http:Sam123456aA"); + pb.updateDetails(sessionID,url,urlUsername,urlPassword); + pb.retrieveDetails(sessionID,url); + }catch (InvalidSessionIDException e){ + InvalidSessionIDException = true; + } + assertTrue(InvalidSessionIDException); + + } + // NoSuchURLException + // pt!=null + @Test public void NoSuchURLException() throws WeakPassphraseException, DuplicateUserException, NoSuchUserException, AlreadyLoggedInException, IncorrectPassphraseException, InvalidSessionIDException, MalformedURLException, NoSuchURLException { + boolean NoSuchURLException = false; + Integer sessionID ; + String Username = "Sam"; + String Password = "123456aA"; + String urlUsername = "Sam"; + String urlPassword = "123456aA"; + pb.addUser(Username,Password); + sessionID = pb.loginUser(Username,Password); + try{ + URL url = new URL ("http:Sam123456aA"); + pb.updateDetails(sessionID,url,urlUsername,urlPassword); + pb.retrieveDetails(sessionID,url); + } + catch (NoSuchURLException e){ + NoSuchURLException = true; + } + assertFalse(NoSuchURLException); + } + //pt==null + @Test public void NoSuchURLException2() throws WeakPassphraseException, DuplicateUserException, NoSuchUserException, AlreadyLoggedInException, IncorrectPassphraseException, InvalidSessionIDException, MalformedURLException, NoSuchURLException { + boolean NoSuchURLException = false; + Integer sessionID ; + String Username = "Sam"; + String Password = "123456aA"; + String urlUsername = null; + String urlPassword = "123456aA"; + pb.addUser(Username,Password); + sessionID = pb.loginUser(Username,Password); + try{ + URL url = new URL ("http:Sam123456aA"); + pb.updateDetails(sessionID,url,urlUsername,urlPassword); + pb.retrieveDetails(sessionID,url); + } + catch (NoSuchURLException e){ + NoSuchURLException = true; + } + assertTrue(NoSuchURLException); + } + + //NoSuchURLException + // pair = null + @Test public void NoSuchURLExceptionPair() throws WeakPassphraseException, DuplicateUserException, NoSuchUserException, AlreadyLoggedInException, IncorrectPassphraseException, InvalidSessionIDException, MalformedURLException, NoSuchURLException { + boolean NoSuchURLException = false; + Integer sessionID ; + String Username = "Sam"; + String Password = "123456aA"; + String urlUsername = "Sam"; + String urlPassword = "123456aA"; + pb.addUser(Username,Password); + sessionID = pb.loginUser(Username,Password); + try{ + URL url = new URL ("http:Sam123456aA"); + pb.retrieveDetails(sessionID,url); + } + catch (NoSuchURLException e){ + NoSuchURLException = true; + } + assertTrue(NoSuchURLException); + } + + //pair != null + @Test public void NoSuchURLExceptionPair2() throws WeakPassphraseException, DuplicateUserException, NoSuchUserException, AlreadyLoggedInException, IncorrectPassphraseException, InvalidSessionIDException, MalformedURLException, NoSuchURLException { + boolean NoSuchURLException = false; + Integer sessionID ; + String Username = "Sam"; + String Password = "123456aA"; + String urlUsername = "Sam"; + String urlPassword = "123456aA"; + pb.addUser(Username,Password); + sessionID = pb.loginUser(Username,Password); + try{ + URL url = new URL ("http:Sam123456aA"); + pb.updateDetails(sessionID,url,urlUsername,urlPassword); + pb.retrieveDetails(sessionID,url); + } + catch (NoSuchURLException e){ + NoSuchURLException = true; + } + assertFalse(NoSuchURLException); + } + + + @Test public void aTest() { //the assertEquals method used to check whether two values are @@ -58,11 +600,5 @@ public class PartitioningTests //This test should fail. //To provide additional feedback when a test fails, an error message //can be included - @Test public void aFailedTest() - { - //include a message for better feedback - final int expected = 2; - final int actual = 1 + 2; - assertEquals("Some failure message", expected, actual); - } + }