Advertisement
Guest User

Untitled

a guest
Jun 19th, 2018
194
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.64 KB | None | 0 0
  1. package lapr.project.model;
  2.  
  3. import lapr.project.utils.StringUtil;
  4. import org.junit.jupiter.api.Test;
  5. import org.w3c.dom.Document;
  6. import org.w3c.dom.Element;
  7. import org.w3c.dom.Node;
  8.  
  9. import javax.xml.parsers.DocumentBuilder;
  10. import javax.xml.parsers.DocumentBuilderFactory;
  11. import java.util.ArrayList;
  12. import java.util.List;
  13.  
  14. import static org.junit.jupiter.api.Assertions.*;
  15.  
  16.  
  17. /**
  18. * Class to demonstrate a Candidatura simple example.
  19. *
  20. * @author Nuno Bettencourt [nmb@isep.ipp.pt] on 29/05/16.
  21. */
  22. public class ApplicationTest {
  23.  
  24. /**
  25. * StringUtil variable to access utils for Strings.
  26. */
  27. private StringUtil stringUtil = new StringUtil();
  28.  
  29. /**
  30. * Get OS independent line break.
  31. *
  32. * @return OS independent line break "%n".
  33. */
  34. private String getLineBreak() {
  35. if (stringUtil == null) {
  36. stringUtil = new StringUtil();
  37. }
  38. return stringUtil.getLineBreak();
  39. }
  40.  
  41. @Test
  42. public void ensureXMLElementExportToStringIsValid() throws Exception {
  43. String expected = "<application>" + getLineBreak() +
  44. "<description>MyApplication</description>" + getLineBreak() +
  45. "<keywords>" + getLineBreak() +
  46. "<keyword>" + getLineBreak() +
  47. "<value>Doors</value>" + getLineBreak() +
  48. "</keyword>" + getLineBreak() +
  49. "<keyword>" + getLineBreak() +
  50. "<value>Windows</value>" + getLineBreak() +
  51. "</keyword>" + getLineBreak() +
  52. "</keywords>" + getLineBreak() +
  53. "</application>" + getLineBreak();
  54.  
  55. List<Keyword> keywordList = new ArrayList<>();
  56. keywordList.add(new Keyword("Doors"));
  57. keywordList.add(new Keyword("Windows"));
  58. Application application = new Application("MyApplication", keywordList);
  59. String result = application.exportContentToString();
  60. assertEquals(expected, result);
  61. }
  62.  
  63. @Test
  64. public void ensureImportFromXMLElementNodeIsValid() throws Exception {
  65. List<Keyword> keywordList = new ArrayList<>();
  66. keywordList.add(new Keyword("Doors"));
  67. keywordList.add(new Keyword("Windows"));
  68.  
  69. Application expected = new Application("MyApplication", keywordList);
  70.  
  71. DocumentBuilderFactory factory =
  72. DocumentBuilderFactory.newInstance();
  73.  
  74. //Create document builder
  75. DocumentBuilder builder = factory.newDocumentBuilder();
  76.  
  77. //Obtain a new document
  78. Document document = builder.newDocument();
  79.  
  80. //Create root element
  81. Element elementCandidatura = document.createElement("application");
  82.  
  83. //Create a sub-element
  84. Element elementDescription = document.createElement("description");
  85.  
  86. //Set the sub-element value
  87. elementDescription.setTextContent("MyApplication");
  88.  
  89. //Add sub-element to root element
  90. elementCandidatura.appendChild(elementDescription);
  91.  
  92. //Create a sub-element
  93. Element elementKeywords = document.createElement("keywords");
  94.  
  95. //iterate over keywords
  96. for (Keyword keyword : keywordList) {
  97. Node keywordNode = keyword.exportContentToXMLNode();
  98. elementKeywords.appendChild(document.importNode(keywordNode, true));
  99. }
  100.  
  101. elementCandidatura.appendChild(elementKeywords);
  102.  
  103. //Add root element to document
  104. document.appendChild(elementCandidatura);
  105.  
  106. Application result = new Application();
  107. result = result.importContentFromXMLNode(elementCandidatura);
  108.  
  109. assertEquals(expected, result);
  110. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement