From 7da4e106b8a99da28ef24bc27a3b901ca2883c99 Mon Sep 17 00:00:00 2001 From: Gabriele Vaccari Date: Fri, 23 Mar 2018 11:08:54 +0100 Subject: [PATCH 1/2] Fixed test cases, XMLFormatter spacer and mvn resources structure --- .gitignore | 8 + .../berryworks/edireader/util/FileUtil.java | 4 +- .../edireader/util/XmlFormatter.java | 3 +- .../edireader/EDIAbstractReaderTest.java | 33 ++-- .../edireader/demo/EDItoXMLTest.java | 40 ++-- .../edireader/test/utils/TestResources.java | 42 +++++ .../edireader/util/EDItoXMLTestCase.java | 23 --- .../edireader/util/SplitterTest.java | 36 ++-- .../edireader/util/VerboseTestCase.java | 47 ----- .../util/dom/DomBuildingSaxHandlerTest.java | 37 ++-- .../test/resources/EDItoXMLTest.canIndent.xml | 21 +++ .../test/resources/SplitterTest.testMain.edi | 1 + testresults/x12/split-0001.xml | 172 ------------------ 13 files changed, 153 insertions(+), 314 deletions(-) create mode 100644 edireader/src/test/java/com/berryworks/edireader/test/utils/TestResources.java delete mode 100644 edireader/src/test/java/com/berryworks/edireader/util/EDItoXMLTestCase.java delete mode 100644 edireader/src/test/java/com/berryworks/edireader/util/VerboseTestCase.java create mode 100644 edireader/src/test/resources/EDItoXMLTest.canIndent.xml create mode 100644 edireader/src/test/resources/SplitterTest.testMain.edi delete mode 100644 testresults/x12/split-0001.xml diff --git a/.gitignore b/.gitignore index 32858aa..e39e886 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,11 @@ +\.settings/ +\.project +testresults/ +edireader/target/ +edireader/\.settings/ +edireader/\.classpath +edireader/\.project + *.class # Mobile Tools for Java (J2ME) diff --git a/edireader/src/main/java/com/berryworks/edireader/util/FileUtil.java b/edireader/src/main/java/com/berryworks/edireader/util/FileUtil.java index 04683fc..927d39a 100644 --- a/edireader/src/main/java/com/berryworks/edireader/util/FileUtil.java +++ b/edireader/src/main/java/com/berryworks/edireader/util/FileUtil.java @@ -36,8 +36,8 @@ public static String fileToString(String filename) throws IOException { return StandardCharsets.UTF_8.decode(ByteBuffer.wrap(encoded)).toString(); } - public static void stringToFile(String data, String filename) throws IOException { - try (Writer writer = new FileWriter(filename)) { + public static void stringToFile(String data, String filename) throws IOException { + try(Writer writer = new FileWriter(filename)) { writer.write(data); } } diff --git a/edireader/src/main/java/com/berryworks/edireader/util/XmlFormatter.java b/edireader/src/main/java/com/berryworks/edireader/util/XmlFormatter.java index d0602d8..9a3e147 100644 --- a/edireader/src/main/java/com/berryworks/edireader/util/XmlFormatter.java +++ b/edireader/src/main/java/com/berryworks/edireader/util/XmlFormatter.java @@ -26,8 +26,7 @@ public class XmlFormatter extends FilterWriter { private final static String SEPARATOR = System.getProperty("line.separator"); - - private final static String INDENT = " "; + private final static String INDENT = "\t"; private char mostRecentCharOfInterest; private String currentIndent = ""; diff --git a/edireader/src/test/java/com/berryworks/edireader/EDIAbstractReaderTest.java b/edireader/src/test/java/com/berryworks/edireader/EDIAbstractReaderTest.java index 7471c98..37c19e1 100644 --- a/edireader/src/test/java/com/berryworks/edireader/EDIAbstractReaderTest.java +++ b/edireader/src/test/java/com/berryworks/edireader/EDIAbstractReaderTest.java @@ -4,23 +4,34 @@ package com.berryworks.edireader; -import com.berryworks.edireader.benchmark.EDITestData; -import com.berryworks.edireader.error.ErrorMessages; -import com.berryworks.edireader.util.BranchingWriter; -import com.berryworks.edireader.util.VerboseTestCase; -import org.junit.Before; -import org.junit.Test; -import org.xml.sax.*; -import org.xml.sax.helpers.DefaultHandler; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertSame; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; import java.io.IOException; import java.io.StringReader; import java.io.StringWriter; import java.io.Writer; -import static org.junit.Assert.*; +import org.junit.Before; +import org.junit.Test; +import org.xml.sax.ContentHandler; +import org.xml.sax.EntityResolver; +import org.xml.sax.ErrorHandler; +import org.xml.sax.InputSource; +import org.xml.sax.SAXException; +import org.xml.sax.SAXNotSupportedException; +import org.xml.sax.SAXParseException; +import org.xml.sax.helpers.DefaultHandler; + +import com.berryworks.edireader.benchmark.EDITestData; +import com.berryworks.edireader.error.ErrorMessages; +import com.berryworks.edireader.util.BranchingWriter; -public class EDIAbstractReaderTest extends VerboseTestCase { +public class EDIAbstractReaderTest { EDIReader reader; @@ -68,8 +79,6 @@ public void testSyntaxElements() throws Exception { // We call them mainly for path coverage purposes. reader.getSubSubDelimiter(); reader.getRepetitionSeparator(); - - if (verbose) System.out.println(reader.toString()); } @Test diff --git a/edireader/src/test/java/com/berryworks/edireader/demo/EDItoXMLTest.java b/edireader/src/test/java/com/berryworks/edireader/demo/EDItoXMLTest.java index 021646f..711e508 100644 --- a/edireader/src/test/java/com/berryworks/edireader/demo/EDItoXMLTest.java +++ b/edireader/src/test/java/com/berryworks/edireader/demo/EDItoXMLTest.java @@ -1,14 +1,19 @@ package com.berryworks.edireader.demo; -import com.berryworks.edireader.benchmark.EDITestData; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import java.io.IOException; +import java.io.StringReader; +import java.io.StringWriter; + import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.xml.sax.SAXException; -import java.io.IOException; -import java.io.StringReader; -import java.io.StringWriter; +import com.berryworks.edireader.benchmark.EDITestData; +import com.berryworks.edireader.test.utils.TestResources; public class EDItoXMLTest { @@ -67,7 +72,7 @@ public void withLeadingSpacesInData() { } @Test - public void canIndent() { + public void canIndent() throws Exception { StringReader reader = new StringReader(TINY_INTERCHANGE); StringWriter writer = new StringWriter(); ediToXml.setInputReader(reader); @@ -76,27 +81,10 @@ public void canIndent() { ediToXml.run(); String xmlText = writer.toString(); - Assert.assertEquals("\n" + - "\n" + - " \n" + - " \n" + - "
\n" + - " \n" + - " \n" + - "
\n" + - " \n" + - " \n" + - " \n" + - " \n" + - " 11\n" + - " 07141005162 \n" + - " 040714\n" + - " 1003\n" + - " \n" + - " \n" + - " \n" + - " \n" + - "", xmlText); + String benchmark = TestResources.getAsString("EDItoXMLTest.canIndent.xml"); + + assertTrue(xmlText.length() == benchmark.length()); + assertEquals(benchmark, xmlText); } } diff --git a/edireader/src/test/java/com/berryworks/edireader/test/utils/TestResources.java b/edireader/src/test/java/com/berryworks/edireader/test/utils/TestResources.java new file mode 100644 index 0000000..d9b6be7 --- /dev/null +++ b/edireader/src/test/java/com/berryworks/edireader/test/utils/TestResources.java @@ -0,0 +1,42 @@ +package com.berryworks.edireader.test.utils; + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStream; +import java.net.URI; +import java.net.URISyntaxException; +import java.nio.file.Files; +import java.nio.file.Paths; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; + +import org.w3c.dom.Document; + +public class TestResources { + + public static String getAsString(String name) throws IOException, URISyntaxException { + URI uri = TestResources.class.getResource("/" + name).toURI(); + return new String(Files.readAllBytes(Paths.get(uri))); + } + + public static File getAsFile(String name) throws URISyntaxException { + return new File(TestResources.class.getResource("/" + name).toURI()); + } + + public static InputStream getAsStream(String name) throws FileNotFoundException { + return TestResources.class.getResourceAsStream("/" + name); + } + + public static Document getAsDOM(String file) throws Exception { + DocumentBuilderFactory fac = DocumentBuilderFactory.newInstance(); + fac.setNamespaceAware(true); + DocumentBuilder parser = fac.newDocumentBuilder(); + InputStream fis = getAsStream(file); + Document doc = parser.parse(fis); + fis.close(); + return doc; + } + +} diff --git a/edireader/src/test/java/com/berryworks/edireader/util/EDItoXMLTestCase.java b/edireader/src/test/java/com/berryworks/edireader/util/EDItoXMLTestCase.java deleted file mode 100644 index f215545..0000000 --- a/edireader/src/test/java/com/berryworks/edireader/util/EDItoXMLTestCase.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.berryworks.edireader.util; - -import org.custommonkey.xmlunit.XMLTestCase; - -public class EDItoXMLTestCase extends XMLTestCase { - - protected String testdataPath, testresultsPath; - - @Override - public void setUp() throws Exception { - super.setUp(); - MyTestCase testCase = (new MyTestCase()); - testdataPath = testCase.getTestdataPath(); - testresultsPath = testCase.getTestresultsPath(); - } - - public void testNothing() { - } - - private class MyTestCase extends VerboseTestCase { - - } -} diff --git a/edireader/src/test/java/com/berryworks/edireader/util/SplitterTest.java b/edireader/src/test/java/com/berryworks/edireader/util/SplitterTest.java index 4260e22..b3c2177 100644 --- a/edireader/src/test/java/com/berryworks/edireader/util/SplitterTest.java +++ b/edireader/src/test/java/com/berryworks/edireader/util/SplitterTest.java @@ -12,11 +12,14 @@ import com.berryworks.edireader.splitter.ClosingDetails; import com.berryworks.edireader.splitter.HandlerFactory; import com.berryworks.edireader.splitter.SplittingHandler; +import com.berryworks.edireader.test.utils.TestResources; import com.berryworks.edireader.util.dom.DocumentUtil; import com.berryworks.edireader.util.sax.SAXObjectHandler; import com.berryworks.edireader.util.sax.SAXObjectReader; import org.custommonkey.xmlunit.Diff; +import org.junit.Rule; import org.junit.Test; +import org.junit.rules.TemporaryFolder; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.xml.sax.*; @@ -31,8 +34,10 @@ import static org.junit.Assert.*; -public class SplitterTest extends VerboseTestCase { +public class SplitterTest { + @Rule public TemporaryFolder tmp = new TemporaryFolder(); + private Reader inputReader; @Test @@ -146,24 +151,25 @@ public void testTwoInterchangeTwoDocumentsEachIntoDOMs() throws Exception { @Test public void testMain() throws Exception { + File testFile = TestResources.getAsFile("SplitterTest.testMain.edi"); + File outputFile = new File(testFile.getParentFile(), "split-0000.xml"); + outputFile.deleteOnExit(); PrintStream systemOut = System.out; final ByteArrayOutputStream redirectedOut = new ByteArrayOutputStream(); - System.setOut(new PrintStream(redirectedOut)); + System.setOut(new PrintStream(redirectedOut)); - - FileUtil.stringToFile(EDITestData.getAnsiInterchange(2), "toSplit.edi"); - - String args[] = new String[]{"toSplit.edi", "-o", getTestresultsPath() + "x12/split-0000.xml"}; + String args[] = new String[]{testFile.getAbsolutePath(), "-o", outputFile.getAbsolutePath()}; EDISplitter.main(args); System.setOut(systemOut); - - assertEquals("\nEDI input parsed into 2 XML output files\n", redirectedOut.toString()); + + String sep = System.getProperty("line.separator"); + assertEquals(sep + "EDI input parsed into 2 XML output files" + sep, redirectedOut.toString()); assertEquals(2, EDISplitter.getCount()); - File file = new File(getTestresultsPath() + "x12/split-0002.xml"); + File file = new File(outputFile.getParentFile(), "split-0002.xml"); assertNotNull(file); assertTrue(file.exists()); @@ -312,7 +318,7 @@ public void run() { } catch (IOException | SAXException e) { System.err.println(getClass().getName() + " caught " + e); } - if (verbose) trace(getClass().getName() + " run() complete"); + System.out.println(getClass().getName() + " run() complete"); } public int getSAXEventsWritten() { @@ -334,18 +340,18 @@ public void run() { try { while (!shutdown) { - if (verbose) trace("available in transformer input stream: " + inputStream.available()); + System.out.println("Available in transformer input stream: " + inputStream.available()); DOMResult domResult = new DOMResult(); SAXSource source = new SAXSource(reader, inputSource); - if (verbose) trace("calling transform"); + System.out.println("Calling transform"); TransformerFactory.newInstance().newTransformer().transform(source, domResult); - if (verbose) trace("return from transform"); + System.out.println("Return from transform"); if (document == null) document = (Document) domResult.getNode(); } } catch (Exception e) { - if (verbose) trace(getClass().getName() + " caught " + e); - if (verbose) trace(getClass().getName() + " run() complete"); + System.out.println(getClass().getName() + " caught " + e); + System.out.println(getClass().getName() + " run() complete"); } } diff --git a/edireader/src/test/java/com/berryworks/edireader/util/VerboseTestCase.java b/edireader/src/test/java/com/berryworks/edireader/util/VerboseTestCase.java deleted file mode 100644 index 9c6dc86..0000000 --- a/edireader/src/test/java/com/berryworks/edireader/util/VerboseTestCase.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.berryworks.edireader.util; - -import java.io.File; - -public abstract class VerboseTestCase { - protected boolean verbose; - - // TODO These should probably be in a static TestDirectories class - private String testdataPath, testresultsPath; - - public VerboseTestCase() { - checkVerbose(); - } - - private void checkVerbose() { - if (System.getProperty("verbose") != null) { - verbose = true; - System.out.println("verbose test output"); - } - } - - protected void trace(String msg) { - System.out.println(msg); - } - - public String getTestdataPath() { - if (testdataPath == null) { - testdataPath = "testdata"; - File directory = new File(testdataPath); - if (!directory.exists() || !directory.isDirectory()) { - testdataPath = "../testdata"; - } - } - return testdataPath + "/"; - } - - public String getTestresultsPath() { - if (testresultsPath == null) { - testresultsPath = "testresults"; - File directory = new File(testresultsPath); - if (!directory.exists() || !directory.isDirectory()) { - testresultsPath = "../testresults"; - } - } - return testresultsPath + "/"; - } -} diff --git a/edireader/src/test/java/com/berryworks/edireader/util/dom/DomBuildingSaxHandlerTest.java b/edireader/src/test/java/com/berryworks/edireader/util/dom/DomBuildingSaxHandlerTest.java index 1394f38..19d50a2 100644 --- a/edireader/src/test/java/com/berryworks/edireader/util/dom/DomBuildingSaxHandlerTest.java +++ b/edireader/src/test/java/com/berryworks/edireader/util/dom/DomBuildingSaxHandlerTest.java @@ -4,27 +4,34 @@ package com.berryworks.edireader.util.dom; -import com.berryworks.edireader.EDIReader; -import com.berryworks.edireader.EDIReaderFactory; -import com.berryworks.edireader.benchmark.EDITestData; -import com.berryworks.edireader.util.VerboseTestCase; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.fail; + +import java.io.IOException; + +import javax.xml.parsers.ParserConfigurationException; + import org.junit.Before; import org.junit.Test; -import org.w3c.dom.*; +import org.w3c.dom.Attr; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.NamedNodeMap; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; import org.xml.sax.ContentHandler; import org.xml.sax.InputSource; -import javax.xml.parsers.ParserConfigurationException; -import java.io.IOException; -import java.io.InputStream; - -import static org.junit.Assert.*; +import com.berryworks.edireader.EDIReader; +import com.berryworks.edireader.EDIReaderFactory; +import com.berryworks.edireader.benchmark.EDITestData; -public class DomBuildingSaxHandlerTest extends VerboseTestCase { +public class DomBuildingSaxHandlerTest { private InputSource inputSource; private ContentHandler saxHandler; - private InputStream inputStream; + //private InputStream inputStream; @Before public void setUp() throws IOException, ParserConfigurationException { @@ -64,7 +71,7 @@ private void assertDomsAreEquivalent(Document baselineDom, Document dom) { } private void compareElements(Element baseline, Element element) { - if (verbose) trace("comparing " + baseline.getNodeName() + " with " + element.getNodeName()); + //System.out.println("comparing " + baseline.getNodeName() + " with " + element.getNodeName()); assertEquals("Node names do not match", baseline.getNodeName(), element.getNodeName()); NodeList childNodes = element.getChildNodes(); @@ -87,12 +94,12 @@ private void compareElements(Element baseline, Element element) { assertEquals("Nodes do not have the same number of attributes", baselineAttributes.getLength(), attributes.getLength()); for (int i = 0; i < baselineAttributes.getLength(); i++) { Node baselineNode = baselineAttributes.item(i); - Node childNode = attributes.item(i); + //Node childNode = attributes.item(i); Attr attr = (Attr) baselineNode; String name = attr.getName(); String value = attr.getValue(); - if (verbose) trace("attribute " + name + " has value " + value); + //System.out.println("attribute " + name + " has value " + value); Node node = attributes.getNamedItem(name); assertNotNull("Missing attribute: " + name, node); diff --git a/edireader/src/test/resources/EDItoXMLTest.canIndent.xml b/edireader/src/test/resources/EDItoXMLTest.canIndent.xml new file mode 100644 index 0000000..86d661e --- /dev/null +++ b/edireader/src/test/resources/EDItoXMLTest.canIndent.xml @@ -0,0 +1,21 @@ + + + + +
+ + +
+ + + + + 11 + 07141005162 + 040714 + 1003 + + + + + \ No newline at end of file diff --git a/edireader/src/test/resources/SplitterTest.testMain.edi b/edireader/src/test/resources/SplitterTest.testMain.edi new file mode 100644 index 0000000..d204c08 --- /dev/null +++ b/edireader/src/test/resources/SplitterTest.testMain.edi @@ -0,0 +1 @@ +ISA~00~ ~00~ ~ZZ~04000 ~ZZ~58401 ~040714~1003~U~00204~000038449~1~P~<$GS~AG~04000~58401~040714~1003~38327~X~002040CHRY$ST~824~000042460$BGN~11~07141005162~040714~1003$N1~SU~~92~58401O$N1~SF~~92~58401O$N1~ST~~92~05304$N1~MA~~92~05304$OTI~IA~SI~AC32804~~~~~~~856$REF~BM~AC32804$REF~PK~00032804$REF~PM~52069902AA$DTM~009~040714~1003~ED$DTM~011~040714$OTI~IA~SI~AC32804~~~~~~~856$REF~BM~AC32804$REF~PK~00032804$REF~PM~0CP00015$DTM~009~040714~1003~ED$DTM~011~040714$OTI~IA~SI~AC32804~~~~~~~856$REF~BM~AC32804$REF~PK~00032804$REF~PM~0CD03536$DTM~009~040714~1003~ED$DTM~011~040714$OTI~IA~SI~AC32804~~~~~~~856$REF~BM~AC32804$REF~PK~00032804$REF~PM~0CP00016$DTM~009~040714~1003~ED$DTM~011~040714$SE~31~000042460$ST~824~000042460$BGN~11~07141005162~040714~1003$N1~SU~~92~58401O$N1~SF~~92~58401O$N1~ST~~92~05304$N1~MA~~92~05304$OTI~IA~SI~AC32804~~~~~~~856$REF~BM~AC32804$REF~PK~00032804$REF~PM~52069902AA$DTM~009~040714~1003~ED$DTM~011~040714$OTI~IA~SI~AC32804~~~~~~~856$REF~BM~AC32804$REF~PK~00032804$REF~PM~0CP00015$DTM~009~040714~1003~ED$DTM~011~040714$OTI~IA~SI~AC32804~~~~~~~856$REF~BM~AC32804$REF~PK~00032804$REF~PM~0CD03536$DTM~009~040714~1003~ED$DTM~011~040714$OTI~IA~SI~AC32804~~~~~~~856$REF~BM~AC32804$REF~PK~00032804$REF~PM~0CP00016$DTM~009~040714~1003~ED$DTM~011~040714$SE~31~000042460$GE~2~38327$IEA~1~000038449$ \ No newline at end of file diff --git a/testresults/x12/split-0001.xml b/testresults/x12/split-0001.xml deleted file mode 100644 index c686a48..0000000 --- a/testresults/x12/split-0001.xml +++ /dev/null @@ -1,172 +0,0 @@ - - - - -
- - -
- - - - - 11 - 07141005162 - 040714 - 1003 - - - - SU - 92 - 58401O - - - - - SF - 92 - 58401O - - - - - ST - 92 - 05304 - - - - - MA - 92 - 05304 - - - - - IA - SI - AC32804 - 856 - - - BM - AC32804 - - - PK - 00032804 - - - PM - 52069902AA - - - 009 - 040714 - 1003 - ED - - - 011 - 040714 - - - - - IA - SI - AC32804 - 856 - - - BM - AC32804 - - - PK - 00032804 - - - PM - 0CP00015 - - - 009 - 040714 - 1003 - ED - - - 011 - 040714 - - - - - IA - SI - AC32804 - 856 - - - BM - AC32804 - - - PK - 00032804 - - - PM - 0CD03536 - - - 009 - 040714 - 1003 - ED - - - 011 - 040714 - - - - - IA - SI - AC32804 - 856 - - - BM - AC32804 - - - PK - 00032804 - - - PM - 0CP00016 - - - 009 - 040714 - 1003 - ED - - - 011 - 040714 - - - - - - \ No newline at end of file From b860957f98ebcb08f30c242025772f9ebefc8c36 Mon Sep 17 00:00:00 2001 From: Gabriele Vaccari Date: Wed, 28 Mar 2018 10:22:12 +0200 Subject: [PATCH 2/2] added X12 837 --- .../berryworks/edireader/plugin/ANSI_837.java | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 edireader/src/main/java/com/berryworks/edireader/plugin/ANSI_837.java diff --git a/edireader/src/main/java/com/berryworks/edireader/plugin/ANSI_837.java b/edireader/src/main/java/com/berryworks/edireader/plugin/ANSI_837.java new file mode 100644 index 0000000..5b2f583 --- /dev/null +++ b/edireader/src/main/java/com/berryworks/edireader/plugin/ANSI_837.java @@ -0,0 +1,34 @@ +package com.berryworks.edireader.plugin; + +import com.berryworks.edireader.Plugin; + +public class ANSI_837 extends Plugin { + + public ANSI_837() { + super("837", "Health Care Claim"); + loops = new LoopDescriptor[]{ + new LoopDescriptor("2300", "CLM", 2, "/2000/2300"), + new LoopDescriptor("2300", "CLM", 2, "/2000"), + new LoopDescriptor("2305", "CR7", 3, "/2000/2300/2305"), + new LoopDescriptor("2305", "CR7", 3, "/2000/2300"), + new LoopDescriptor("2000", "HL", 1, ANY_CONTEXT), + new LoopDescriptor("2440", "LQ", 4, "/2000/2300/2400/2440"), + new LoopDescriptor("2440", "LQ", 4, "/2000/2300/2400"), + new LoopDescriptor("2400", "LX", 3, "/2000/2300/2400"), + new LoopDescriptor("2400", "LX", 3, "/2000/2300"), + new LoopDescriptor("2330", "NM1", 4, "/2000/2300/2320/2330"), + new LoopDescriptor("2420", "NM1", 4, "/2000/2300/2400/2420"), + new LoopDescriptor("2310", "NM1", 3, "/2000/2300/2310"), + new LoopDescriptor("2330", "NM1", 4, "/2000/2300/2320"), + new LoopDescriptor("2420", "NM1", 4, "/2000/2300/2400"), + new LoopDescriptor("2010", "NM1", 2, "/2000/2010"), + new LoopDescriptor("2310", "NM1", 3, "/2000/2300"), + new LoopDescriptor("2010", "NM1", 2, "/2000"), + new LoopDescriptor("1000", "NM1", 1, ANY_CONTEXT), + new LoopDescriptor("2320", "SBR", 3, "/2000/2300/2320"), + new LoopDescriptor("2320", "SBR", 3, "/2000/2300"), + new LoopDescriptor(CURRENT, "SBR", 1, "/2000"), + new LoopDescriptor("2430", "SVD", 4, "/2000/2300/2400/2430"), + new LoopDescriptor("2430", "SVD", 4, "/2000/2300/2400")}; + } +}