@Test // if parts user Details are Encrypted public void testValidatedUserDetailsEncryption() { CustomerDTO validatingUser = new CustomerDTO(); validatingUser.setDateOfBirth( DateUtil.formatDate(ApplicationContants.DATE_OF_BIRTH_FORMAT, "12/12/1979")); PaymentDetailsDTO validatingPaymentsDTO = new PaymentDetailsDTO(); validatingPaymentsDTO.setPaymentType(PaymentType.CREDIT_CARD.getPaymentType()); validatingPaymentsDTO.setValue("111111111111"); validatingUser.setPaymentDetails(validatingPaymentsDTO); validatingUser.setEncryptionModule(encryptionModule); customer.encryptUserInformation(); validatingUser.encryptUserInformation(); ApplicationSpecification<CustomerDTO> userDetailsSpecification = new EncryptedUserInformationSpecification(customer); assertTrue( "User details not encrypted properly", userDetailsSpecification.isSatisfiedBy(validatingUser)); }
// Scenario Registration Customer @Before public void init() { // initializeSpring context = new ClassPathXmlApplicationContext("res/spring/application-context-test.xml"); customer = context.getBean(CustomerDTO.class); logonCredentialsDTO = context.getBean(CapturedCredentialsDTO.class); encryptionModule = context.getBean(EncryptionModule.class); paymentDetailsDTO = context.getBean(PaymentDetailsDTO.class); contactInforMationDTO = context.getBean(ContactInformationDTO.class); customerRepository = context.getBean(CustomerRepository.class); customer.setFirstName("Samuel"); customer.setLastname("Sam"); customer.setDateOfBirth( DateUtil.formatDate(ApplicationContants.DATE_OF_BIRTH_FORMAT, "12/12/1979")); // customer payment details paymentDetailsDTO.setPaymentType(PaymentType.CREDIT_CARD.getPaymentType()); paymentDetailsDTO.setValue("111111111111"); customer.setPaymentDetails(paymentDetailsDTO); contactInforMationDTO.setContactType(ContactType.EMAIL.getContactType()); contactInforMationDTO.setContactValue("*****@*****.**"); customer.setContactDetails(contactInforMationDTO); // set Encryption model customer.setEncryptionModule(encryptionModule); // Captured Credentials to validate Password and Captured Password; logonCredentialsDTO.setUserName("userName"); logonCredentialsDTO.setPassword("password"); logonCredentialsDTO.setConfirmPasword("p@ssword!"); // Use a dynamic proxy to lookup for interface userManagerImpl = new UserManagerImpl(customerRepository); userManager = new APSMockObjectGenerator<UserManagerImpl>().mock(userManagerImpl); }
@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(" "); } } } }