/src/test/java/com/paypal/core/soap/SignatureSOAPHeaderAuthStrategyTest.java

https://gitlab.com/CORP-RESELLER/sdk-core-java · Java · 104 lines · 82 code · 22 blank · 0 comment · 0 complexity · 539736ea58bfe672590ba547bbe8ed08 MD5 · raw file

  1. package com.paypal.core.soap;
  2. import java.io.ByteArrayInputStream;
  3. import javax.xml.parsers.DocumentBuilder;
  4. import javax.xml.parsers.DocumentBuilderFactory;
  5. import junit.framework.Assert;
  6. import org.testng.annotations.Test;
  7. import org.w3c.dom.Document;
  8. import org.w3c.dom.Element;
  9. import org.w3c.dom.NodeList;
  10. import com.paypal.core.credential.SignatureCredential;
  11. import com.paypal.core.credential.SubjectAuthorization;
  12. import com.paypal.core.credential.TokenAuthorization;
  13. public class SignatureSOAPHeaderAuthStrategyTest {
  14. @Test
  15. public void generateHeaderStrategyForTokenTest() throws Exception{
  16. SignatureCredential signatureCredential = new SignatureCredential("testusername","testpassword","testsignature");
  17. SignatureSOAPHeaderAuthStrategy signatureSOAPHeaderAuthStrategy = new SignatureSOAPHeaderAuthStrategy();
  18. TokenAuthorization tokenAuthorization = new TokenAuthorization("accessToken","tokenSecret");
  19. signatureSOAPHeaderAuthStrategy.setThirdPartyAuthorization(tokenAuthorization);
  20. signatureCredential.setThirdPartyAuthorization(tokenAuthorization);
  21. String payload = signatureSOAPHeaderAuthStrategy.generateHeaderStrategy(signatureCredential);
  22. Assert.assertEquals("<ns:RequesterCredentials/>", payload);
  23. }
  24. @Test
  25. public void generateHeaderStrategyForSubjectTest() throws Exception{
  26. SignatureCredential signatureCredential = new SignatureCredential("testusername","testpassword","testsignature");
  27. SignatureSOAPHeaderAuthStrategy signatureSOAPHeaderAuthStrategy = new SignatureSOAPHeaderAuthStrategy();
  28. SubjectAuthorization subjectAuthorization = new SubjectAuthorization("testsubject");
  29. signatureSOAPHeaderAuthStrategy.setThirdPartyAuthorization(subjectAuthorization);
  30. signatureCredential.setThirdPartyAuthorization(subjectAuthorization);
  31. String payload = signatureSOAPHeaderAuthStrategy.generateHeaderStrategy(signatureCredential);
  32. Document dom = loadXMLFromString(payload);
  33. Element docEle = dom.getDocumentElement();
  34. NodeList credential = docEle.getElementsByTagName("ebl:Credentials");
  35. NodeList user = ((Element)credential.item(0)).getElementsByTagName("ebl:Username");
  36. NodeList psw = ((Element)credential.item(0)).getElementsByTagName("ebl:Password");
  37. NodeList sign = ((Element)credential.item(0)).getElementsByTagName("ebl:Signature");
  38. NodeList subject = ((Element)credential.item(0)).getElementsByTagName("ebl:Subject");
  39. String username= user.item(0).getTextContent();
  40. String password = psw.item(0).getTextContent();
  41. String signature = sign.item(0).getTextContent();
  42. String sub = subject.item(0).getTextContent();
  43. Assert.assertEquals("testusername", username);
  44. Assert.assertEquals("testpassword", password);
  45. Assert.assertEquals("testsignature", signature);
  46. Assert.assertEquals("testsubject",sub);
  47. }
  48. @Test
  49. public void generateHeaderStrategyForNonThirdPartyTest() throws Exception{
  50. SignatureCredential signatureCredential = new SignatureCredential("testusername","testpassword","testsignature");
  51. SignatureSOAPHeaderAuthStrategy signatureSOAPHeaderAuthStrategy = new SignatureSOAPHeaderAuthStrategy();
  52. String payload = signatureSOAPHeaderAuthStrategy.generateHeaderStrategy(signatureCredential);
  53. Document dom = loadXMLFromString(payload);
  54. Element docEle = dom.getDocumentElement();
  55. NodeList credential = docEle.getElementsByTagName("ebl:Credentials");
  56. NodeList user = ((Element)credential.item(0)).getElementsByTagName("ebl:Username");
  57. NodeList psw = ((Element)credential.item(0)).getElementsByTagName("ebl:Password");
  58. NodeList sign = ((Element)credential.item(0)).getElementsByTagName("ebl:Signature");
  59. NodeList subject = ((Element)credential.item(0)).getElementsByTagName("ebl:Subject");
  60. String username= user.item(0).getTextContent();
  61. String password = psw.item(0).getTextContent();
  62. String signature = sign.item(0).getTextContent();
  63. Object sub = subject.item(0);
  64. Assert.assertEquals("testusername", username);
  65. Assert.assertEquals("testpassword", password);
  66. Assert.assertEquals("testsignature", signature);
  67. Assert.assertNull(sub);
  68. }
  69. @Test
  70. public void setGetThirdPartyAuthorization(){
  71. SignatureSOAPHeaderAuthStrategy signatureSOAPHeaderAuthStrategy = new SignatureSOAPHeaderAuthStrategy();
  72. SubjectAuthorization subjectAuthorization = new SubjectAuthorization("testsubject");
  73. signatureSOAPHeaderAuthStrategy.setThirdPartyAuthorization(subjectAuthorization);
  74. Assert.assertNotNull(signatureSOAPHeaderAuthStrategy.getThirdPartyAuthorization());
  75. }
  76. private Document loadXMLFromString(String xml) throws Exception
  77. {
  78. ByteArrayInputStream stream = new ByteArrayInputStream(xml.getBytes());
  79. DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
  80. return builder.parse(stream);
  81. }
  82. }