@Test // if username and password are encrypted public void testEncryptedValidateUsernamePassword() { // Plain Credentials credentialDTO = new CredentialsDTO(); credentialDTO.setUserName("userName"); credentialDTO.setPassword("pas44sword"); customer.setCredentials(credentialDTO); customer.getCredentials().setEncryptionModule(encryptionModule); CredentialsDTO credentialDTOEncrypt = new CredentialsDTO(); credentialDTO.setUserName("userName"); credentialDTO.setPassword("pas44sword"); credentialDTO = customer.getCredentials().encryptCredentials(); ApplicationSpecification<CredentialsDTO> encryptSpecification = new EncryptedCredentialsSpecification(credentialDTO); if (!encryptSpecification.isSatisfiedBy(credentialDTO)) { System.out.println("UserName and password are not Encrypted"); } assertTrue( "UserName and password are Encrypted", !encryptSpecification.isSatisfiedBy(credentialDTOEncrypt)); }
@Test // if username and password are not encrypted public void testNotEncryptedValidateUsernamePassword() { // Plain Credentials credentialDTO = new CredentialsDTO(); credentialDTO.setUserName("userName"); credentialDTO.setPassword("pas44sword"); customer.setCredentials(credentialDTO); customer.getCredentials().setEncryptionModule(encryptionModule); CredentialsDTO credentialsToTestAgainst = new CredentialsDTO(); credentialsToTestAgainst.setUserName("userName"); credentialsToTestAgainst.setPassword("pas44sword"); ApplicationSpecification<CredentialsDTO> encryptSpecification = new EncryptedCredentialsSpecification(credentialDTO); // assertTrue("UserName and password are not Encrypted", // encryptSpecification.isSatisfiedBy(credentialsToTestAgainst)); }
@Test // test if insertion happened successfully and the insert Specification is met public void testRegisterUser() throws ApplicationException { ApplicationSpecification<CapturedCredentialsDTO> capturedCredentials = new CapturedCredentialsSpecification(logonCredentialsDTO); CapturedCredentialsDTO validationCredentials = new CapturedCredentialsDTO(); validationCredentials.setUserName("userName"); validationCredentials.setPassword("password"); validationCredentials.setConfirmPasword("password"); try { Thread.currentThread(); Thread.sleep(1000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println( "***************************** 1. User Registration Process *****************************"); System.out.println(" "); System.out.println("1. Validating Password and Confirm Password "); System.out.println(""); System.out.println("Password = "******"Confirm Password = "******""); System.out.println("Appliying validate captured credentials specification"); System.out.println(); System.out.println( "Validation Results = " + capturedCredentials.isSatisfiedBy(validationCredentials)); System.out.println(""); System.out.println(""); System.out.println("Correcting the Confirm Password"); System.out.println(""); logonCredentialsDTO.setConfirmPasword(validationCredentials.getConfirmPasword()); System.out.println("Uptated the Confirm Password"); System.out.println(""); System.out.println("Password = "******"Confirm Password = "******""); System.out.println("Appliying validate captured credentials specification again."); System.out.println(""); System.out.println( "Validation Results = " + capturedCredentials.isSatisfiedBy(validationCredentials)); System.out.println(""); System.out.println(""); // For Presentation // 1. Validate captured Password and CapturedPassword. if (capturedCredentials.isSatisfiedBy(logonCredentialsDTO)) { System.out.println("Captured Password and Confirm Password are valid"); System.out.println(""); System.out.println( "*********************************************************************************"); System.out.println(""); System.out.println( "**************** 2. User Information Encryption Process **************************"); System.out.println(""); System.out.println("Unencrypted data "); System.out.println(""); CustomerDTO validatingUser = new CustomerDTO(); validatingUser.setDateOfBirth( DateUtil.formatDate(ApplicationContants.DATE_OF_BIRTH_FORMAT, "12/12/1979")); System.out.println("Dateof Birth = " + validatingUser.getStringDateOfBirth()); System.out.println("CreditCard Info = " + validatingUser.getPaymentDetails().getValue()); System.out.println(" "); try { Thread.currentThread(); Thread.sleep(2000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } PaymentDetailsDTO validatingPaymentsDTO = new PaymentDetailsDTO(); validatingPaymentsDTO.setPaymentType(PaymentType.CREDIT_CARD.getPaymentType()); validatingPaymentsDTO.setValue("111111111111"); validatingUser.setPaymentDetails(validatingPaymentsDTO); validatingUser.setEncryptionModule(encryptionModule); customer.encryptUserInformation(); System.out.println("Encrypting user sensetiveinformation"); System.out.println(" "); validatingUser.encryptUserInformation(); System.out.println(" "); System.out.println(" Done "); System.out.println(" "); System.out.println(" Displaying encrypted Information "); System.out.println(" "); System.out.println("Dateof Birth = " + validatingUser.getStringDateOfBirth()); System.out.println("CreditCard Info = " + validatingUser.getPaymentDetails().getValue()); System.out.println(" "); System.out.println(" Applying encryption Specification "); System.out.println(" "); ApplicationSpecification<CustomerDTO> userDetailsSpecification = new EncryptedUserInformationSpecification(customer); System.out.println(" "); System.out.println( " Is usert data encrypted = " + userDetailsSpecification.isSatisfiedBy(validatingUser)); System.out.println(" "); try { Thread.currentThread(); Thread.sleep(2000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } // For Presentation // 2. Validate captured Date of Birth and and Payment details are encrypted. if (userDetailsSpecification.isSatisfiedBy(validatingUser)) { System.out.println("User details have been encrypted properly"); System.out.println(" "); System.out.println( "********************************************************************************************** "); System.out.println(" "); System.out.println( "*********************** 2. User Credentials Encryption Process *******************************"); System.out.println(" "); credentialDTO = new CredentialsDTO(); credentialDTO.setUserName(logonCredentialsDTO.getUserName()); credentialDTO.setPassword(logonCredentialsDTO.getPassword()); customer.setCredentials(credentialDTO); customer.getCredentials().setEncryptionModule(encryptionModule); System.out.println("Displaying username and pasword in clear text"); System.out.println(" "); CredentialsDTO credentialDTOEncrypt = new CredentialsDTO(); credentialDTOEncrypt.setUserName("userName"); credentialDTOEncrypt.setPassword("password"); credentialDTOEncrypt.setEncryptionModule(encryptionModule); System.out.println("Username = "******"Password = "******" "); System.out.println(" Encrypting the credentials"); System.out.println(" "); credentialDTO = customer.getCredentials().encryptCredentials(); credentialDTOEncrypt.encryptCredentials(); System.out.println(" "); System.out.println("Done ..."); System.out.println(" "); System.out.println(" Encrypted the credentials"); System.out.println(" "); System.out.println("Username = "******"Password = "******" "); System.out.println("Applying encrption check specification"); System.out.println(" "); ApplicationSpecification<CredentialsDTO> encryptSpecification = new EncryptedCredentialsSpecification(credentialDTO); System.out.println( "Are credentials encrypted = " + encryptSpecification.isSatisfiedBy(credentialDTOEncrypt)); System.out.println(" "); try { Thread.currentThread(); Thread.sleep(2000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } // For Presentation // 3. Validate userEntry. if (encryptSpecification.isSatisfiedBy(credentialDTOEncrypt)) { System.out.println("UserName and password are Encrypted"); System.out.println(" "); System.out.println( " *************************************************************************************"); System.out.println(" "); System.out.println( " ******************* Registering user in the Database ********************************"); System.out.println(" "); CustomerDTO responseCutomer = userManager.updateUser(customer); CustomerDTO insertedUser = userManager.selectCustomer(responseCutomer); System.out.println("User successfully registered new id = " + insertedUser.getId()); assertNotNull("Failed to Insert User", insertedUser); try { Thread.currentThread(); Thread.sleep(2000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println( " ******************* Registeration process is complete ********************************"); System.out.println(" "); } } } }