PageRenderTime 26ms CodeModel.GetById 17ms RepoModel.GetById 0ms app.codeStats 1ms

/src/test/java/ru/aristar/jnuget/rss/NugetPrefixFilterTest.java

https://code.google.com/p/jnuget/
Java | 93 lines | 67 code | 4 blank | 22 comment | 0 complexity | fd0a56a52499794f905fd729e7714ab1 MD5 | raw file
  1. package ru.aristar.jnuget.rss;
  2. import java.io.ByteArrayInputStream;
  3. import java.io.ByteArrayOutputStream;
  4. import java.io.InputStream;
  5. import java.io.StringWriter;
  6. import java.util.HashMap;
  7. import java.util.Map;
  8. import javax.xml.transform.Transformer;
  9. import javax.xml.transform.TransformerFactory;
  10. import javax.xml.transform.sax.SAXSource;
  11. import javax.xml.transform.stream.StreamResult;
  12. import static org.junit.Assert.*;
  13. import org.junit.Test;
  14. import org.xml.sax.InputSource;
  15. import org.xml.sax.XMLReader;
  16. import org.xml.sax.helpers.XMLReaderFactory;
  17. import ru.aristar.jnuget.Version;
  18. /**
  19. * ???? ???????, ???????????? ?????????? ????????? ????????? ??????????? ???? ?
  20. * ???????? ??????? XML?????????
  21. *
  22. * @author sviridov
  23. */
  24. public class NugetPrefixFilterTest {
  25. /**
  26. * ???? ?? ????????????? XML
  27. *
  28. * @throws Exception ?????? ? ???????? ?????
  29. */
  30. @Test
  31. public void testFilterClass() throws Exception {
  32. //GIVEN
  33. InputStream inputStream = this.getClass().getResourceAsStream("/CustomXml/test.prefix.xml");
  34. InputSource inputSource = new InputSource(inputStream);
  35. XMLReader reader = XMLReaderFactory.createXMLReader();
  36. Map<String, String> uriToPrefix = new HashMap<>();
  37. uriToPrefix.put("element_namespace1", "m1");
  38. uriToPrefix.put("element_namespace2", "m2");
  39. uriToPrefix.put("attribute_namespace1", "m3");
  40. NugetPrefixFilter filter = new NugetPrefixFilter(uriToPrefix);
  41. filter.setParent(reader);
  42. SAXSource source = new SAXSource(filter, inputSource);
  43. //WHEN
  44. TransformerFactory transformerFactory = TransformerFactory.newInstance();
  45. Transformer transformer = transformerFactory.newTransformer();
  46. StringWriter stringWriter = new StringWriter();
  47. StreamResult result = new StreamResult(stringWriter);
  48. transformer.transform(source, result);
  49. String xmlString = stringWriter.toString();
  50. //THEN
  51. assertTrue(xmlString.contains("<m2:l/>"));
  52. assertTrue(xmlString.contains("<m2:k m3:val=\"value\">"));
  53. assertTrue(xmlString.contains("</m1:root>"));
  54. }
  55. /**
  56. * ???? ?? ???????? RSS ???????
  57. *
  58. * @throws Exception ?????? ? ???????? ?????
  59. */
  60. @Test
  61. public void testClearRealRss() throws Exception {
  62. //GIVEN
  63. InputStream inputStream = this.getClass().getResourceAsStream("/CustomXml/real.data.xml");
  64. InputSource inputSource = new InputSource(inputStream);
  65. XMLReader reader = XMLReaderFactory.createXMLReader();
  66. Map<String, String> uriToPrefix = new HashMap<>();
  67. uriToPrefix.put("http://www.w3.org/2005/Atom", "atom");
  68. uriToPrefix.put("http://schemas.microsoft.com/ado/2007/08/dataservices/metadata", "m");
  69. uriToPrefix.put("http://schemas.microsoft.com/ado/2007/08/dataservices/scheme", "ds");
  70. uriToPrefix.put("http://schemas.microsoft.com/ado/2007/08/dataservices", "d");
  71. NugetPrefixFilter filter = new NugetPrefixFilter(uriToPrefix);
  72. filter.setParent(reader);
  73. SAXSource source = new SAXSource(filter, inputSource);
  74. //WHEN
  75. TransformerFactory transformerFactory = TransformerFactory.newInstance();
  76. Transformer transformer = transformerFactory.newTransformer();
  77. ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
  78. StreamResult result = new StreamResult(byteArrayOutputStream);
  79. transformer.transform(source, result);
  80. byteArrayOutputStream.flush();
  81. //THEN
  82. PackageFeed feed = PackageFeed.parse(new ByteArrayInputStream(byteArrayOutputStream.toByteArray()));
  83. assertEquals("?????????? ???????", 1, feed.getEntries().size());
  84. PackageEntry entry = feed.getEntries().get(0);
  85. assertEquals("Content", "http://ws209.neolant.loc:8084/nuget/download/FluentAssertions/1.6.0", entry.getContent().getSrc());
  86. assertEquals("????? ????????", Integer.valueOf(-1), entry.getProperties().getDownloadCount());
  87. assertEquals("?????? ??????", Version.parse("1.6.0"), entry.getProperties().getVersion());
  88. }
  89. }