PageRenderTime 56ms CodeModel.GetById 23ms RepoModel.GetById 0ms app.codeStats 0ms

/contrib-imola/cics-bc/jbi4cics/src/test/java/it/imolinfo/jbi4cics/test/commareaparser/CommareaParserTest.java

https://bitbucket.org/pymma/openesb-components
Java | 600 lines | 519 code | 49 blank | 32 comment | 0 complexity | 7fcc4ed7fb7d61cfb68381dc3a5b2a53 MD5 | raw file
  1. /*******************************************************************************
  2. * Copyright (c) 2005, 2006 Imola Informatica.
  3. * All rights reserved. This program and the accompanying materials
  4. * are made available under the terms of the LGPL License v2.1
  5. * which accompanies this distribution, and is available at
  6. * http://www.gnu.org/licenses/lgpl.html
  7. *******************************************************************************/
  8. package it.imolinfo.jbi4cics.test.commareaparser;
  9. import it.imolinfo.jbi4cics.commareaparser.CommareaLexer;
  10. import it.imolinfo.jbi4cics.commareaparser.CommareaParser;
  11. import it.imolinfo.jbi4cics.exception.ParseException;
  12. import it.imolinfo.jbi4cics.messageformat.commarea.CommareaBeanMappingDescriptor;
  13. import it.imolinfo.jbi4cics.test.BaseCommareaTest;
  14. import it.imolinfo.jbi4cics.typemapping.cobol.CobolType;
  15. import it.imolinfo.jbi4cics.typemapping.cobol.CobolTypeDescriptor;
  16. import java.io.File;
  17. import java.io.FileDescriptor;
  18. import java.io.FileInputStream;
  19. import java.io.FileReader;
  20. import java.io.InputStream;
  21. import java.io.InputStreamReader;
  22. import java.io.Reader;
  23. import java.io.StringReader;
  24. import java.nio.charset.Charset;
  25. import junit.framework.Test;
  26. import junit.framework.TestSuite;
  27. import org.apache.commons.logging.Log;
  28. import org.apache.commons.logging.LogFactory;
  29. public class CommareaParserTest extends BaseCommareaTest {
  30. private static final Charset UTF8 = Charset.forName("UTF-8");
  31. private static Log log = LogFactory.getLog(CommareaParserTest.class);
  32. public CommareaParserTest(String arg) {
  33. super(arg);
  34. }
  35. public void testProvaCommarea() throws Exception {
  36. InputStream is = new FileInputStream(testRootCommarea+"/"+"ProvaCommarea.txt");
  37. CommareaLexer lexer = new CommareaLexer(is);
  38. CommareaParser parser = new CommareaParser(lexer);
  39. try {
  40. parser.commarea_definition();
  41. fail("il test dovrebbe dare un'eccezione");
  42. }
  43. catch (ParseException e){
  44. assertEquals("CIC000001_Occurs_not_supported", e.getMessage());
  45. }
  46. }
  47. public void testProvaCommarea2() throws Exception {
  48. Reader r = new FileReader(testRootCommarea + "/ProvaCommarea2.txt");
  49. verifyProvaCommarea2(r);
  50. }
  51. private static void verifyProvaCommarea2(Reader reader) throws Exception {
  52. // preparazione della commarea di confronto
  53. CommareaBeanMappingDescriptor expectedCommareaBeanMappingDescriptor=new CommareaBeanMappingDescriptor();
  54. CommareaBeanMappingDescriptor expectedCommareaBeanMappingDescriptor2=new CommareaBeanMappingDescriptor();
  55. CobolTypeDescriptor cobolTypeDescriptor;
  56. CobolTypeDescriptor cobolTypeDescriptor2;
  57. // 02 CA-RETCODE1 PIC XXXXX .
  58. cobolTypeDescriptor=new CobolTypeDescriptor();
  59. cobolTypeDescriptor2=new CobolTypeDescriptor();
  60. cobolTypeDescriptor.setType(CobolType.STRING);
  61. cobolTypeDescriptor2.setType(CobolType.STRING);
  62. cobolTypeDescriptor.setStringLength(5);
  63. cobolTypeDescriptor2.setStringLength(5);
  64. cobolTypeDescriptor.setName("CA-RETCODE1");
  65. cobolTypeDescriptor2.setName("CA-RETCODE1");
  66. cobolTypeDescriptor.setPadCharacter(" ");
  67. cobolTypeDescriptor.setJustification(CobolTypeDescriptor.STRING_JUSTIFICATION_LEFT);
  68. cobolTypeDescriptor2.setPadCharacter(" ");
  69. cobolTypeDescriptor2.setJustification(CobolTypeDescriptor.STRING_JUSTIFICATION_LEFT);
  70. cobolTypeDescriptor.setLevel(2);
  71. cobolTypeDescriptor2.setLevel(2);
  72. expectedCommareaBeanMappingDescriptor.addFieldMapping(cobolTypeDescriptor.getName().replace('-','_'),cobolTypeDescriptor.getName(),cobolTypeDescriptor);
  73. expectedCommareaBeanMappingDescriptor2.addFieldMapping(cobolTypeDescriptor2.getName().replace('-','_'),cobolTypeDescriptor2.getName(),cobolTypeDescriptor2);
  74. assertEquals(expectedCommareaBeanMappingDescriptor,expectedCommareaBeanMappingDescriptor2);
  75. // 02 CA-RETCODE2 PIC AAAAA .
  76. cobolTypeDescriptor=new CobolTypeDescriptor();
  77. cobolTypeDescriptor.setType(CobolType.STRING);
  78. cobolTypeDescriptor.setStringLength(5);
  79. cobolTypeDescriptor.setName("CA-RETCODE2");
  80. cobolTypeDescriptor.setPadCharacter(" ");
  81. cobolTypeDescriptor.setJustification(CobolTypeDescriptor.STRING_JUSTIFICATION_LEFT);
  82. cobolTypeDescriptor.setLevel(2);
  83. expectedCommareaBeanMappingDescriptor.addFieldMapping(cobolTypeDescriptor.getName().replace('-','_'),cobolTypeDescriptor.getName(),cobolTypeDescriptor);
  84. // 02 CA-RETCODE3 PIC A(5) .
  85. cobolTypeDescriptor=new CobolTypeDescriptor();
  86. cobolTypeDescriptor.setType(CobolType.STRING);
  87. cobolTypeDescriptor.setStringLength(5);
  88. cobolTypeDescriptor.setName("CA-RETCODE3");
  89. cobolTypeDescriptor.setPadCharacter(" ");
  90. cobolTypeDescriptor.setJustification(CobolTypeDescriptor.STRING_JUSTIFICATION_LEFT);
  91. cobolTypeDescriptor.setLevel(2);
  92. expectedCommareaBeanMappingDescriptor.addFieldMapping(cobolTypeDescriptor.getName().replace('-','_'),cobolTypeDescriptor.getName(),cobolTypeDescriptor);
  93. // 02 CA-RETCODE4 PIC X(5) .
  94. cobolTypeDescriptor=new CobolTypeDescriptor();
  95. cobolTypeDescriptor.setType(CobolType.STRING);
  96. cobolTypeDescriptor.setStringLength(5);
  97. cobolTypeDescriptor.setName("CA-RETCODE4");
  98. cobolTypeDescriptor.setPadCharacter(" ");
  99. cobolTypeDescriptor.setJustification(CobolTypeDescriptor.STRING_JUSTIFICATION_LEFT);
  100. cobolTypeDescriptor.setLevel(2);
  101. expectedCommareaBeanMappingDescriptor.addFieldMapping(cobolTypeDescriptor.getName().replace('-','_'),cobolTypeDescriptor.getName(),cobolTypeDescriptor);
  102. // 02 CA-RETCODE5 PIC 99999 .
  103. cobolTypeDescriptor=new CobolTypeDescriptor();
  104. cobolTypeDescriptor.setType(CobolType.ZONED);
  105. cobolTypeDescriptor.setIntegerPartLength(5);
  106. cobolTypeDescriptor.setName("CA-RETCODE5");
  107. cobolTypeDescriptor.setLevel(2);
  108. expectedCommareaBeanMappingDescriptor.addFieldMapping(cobolTypeDescriptor.getName().replace('-','_'),cobolTypeDescriptor.getName(),cobolTypeDescriptor);
  109. // 02 CA-RETCODE6 PIC 9(5) .
  110. cobolTypeDescriptor=new CobolTypeDescriptor();
  111. cobolTypeDescriptor.setType(CobolType.ZONED);
  112. cobolTypeDescriptor.setIntegerPartLength(5);
  113. cobolTypeDescriptor.setName("CA-RETCODE6");
  114. cobolTypeDescriptor.setLevel(2);
  115. expectedCommareaBeanMappingDescriptor.addFieldMapping(cobolTypeDescriptor.getName().replace('-','_'),cobolTypeDescriptor.getName(),cobolTypeDescriptor);
  116. // 02 CA-RETCODE7 PIC S99999 .
  117. cobolTypeDescriptor=new CobolTypeDescriptor();
  118. cobolTypeDescriptor.setType(CobolType.ZONED);
  119. cobolTypeDescriptor.setIntegerPartLength(5);
  120. cobolTypeDescriptor.setName("CA-RETCODE7");
  121. cobolTypeDescriptor.setSigned(true);
  122. cobolTypeDescriptor.setLevel(2);
  123. expectedCommareaBeanMappingDescriptor.addFieldMapping(cobolTypeDescriptor.getName().replace('-','_'),cobolTypeDescriptor.getName(),cobolTypeDescriptor);
  124. // 02 CA-RETCODE8 PIC S9(5) .
  125. cobolTypeDescriptor=new CobolTypeDescriptor();
  126. cobolTypeDescriptor.setType(CobolType.ZONED);
  127. cobolTypeDescriptor.setIntegerPartLength(5);
  128. cobolTypeDescriptor.setName("CA-RETCODE8");
  129. cobolTypeDescriptor.setSigned(true);
  130. cobolTypeDescriptor.setLevel(2);
  131. expectedCommareaBeanMappingDescriptor.addFieldMapping(cobolTypeDescriptor.getName().replace('-','_'),cobolTypeDescriptor.getName(),cobolTypeDescriptor);
  132. // 02 CA-RETCODE9 PIC +99999 .
  133. cobolTypeDescriptor=new CobolTypeDescriptor();
  134. cobolTypeDescriptor.setType(CobolType.ZONED);
  135. cobolTypeDescriptor.setIntegerPartLength(5);
  136. cobolTypeDescriptor.setName("CA-RETCODE9");
  137. cobolTypeDescriptor.setZonedSignFormat(CobolTypeDescriptor.SIGN_FORMAT_LEADING_SEPARATE);
  138. cobolTypeDescriptor.setSigned(true);
  139. cobolTypeDescriptor.setLevel(2);
  140. expectedCommareaBeanMappingDescriptor.addFieldMapping(cobolTypeDescriptor.getName().replace('-','_'),cobolTypeDescriptor.getName(),cobolTypeDescriptor);
  141. // 02 CA-RETCODE10 PIC +9(5) .
  142. cobolTypeDescriptor=new CobolTypeDescriptor();
  143. cobolTypeDescriptor.setType(CobolType.ZONED);
  144. cobolTypeDescriptor.setIntegerPartLength(5);
  145. cobolTypeDescriptor.setName("CA-RETCODE10");
  146. cobolTypeDescriptor.setZonedSignFormat(CobolTypeDescriptor.SIGN_FORMAT_LEADING_SEPARATE);
  147. cobolTypeDescriptor.setSigned(true);
  148. cobolTypeDescriptor.setLevel(2);
  149. expectedCommareaBeanMappingDescriptor.addFieldMapping(cobolTypeDescriptor.getName().replace('-','_'),cobolTypeDescriptor.getName(),cobolTypeDescriptor);
  150. // 02 CA-RETCODE11 PIC 99999V999 .
  151. cobolTypeDescriptor=new CobolTypeDescriptor();
  152. cobolTypeDescriptor.setType(CobolType.ZONED);
  153. cobolTypeDescriptor.setIntegerPartLength(5);
  154. cobolTypeDescriptor.setDecimalPartLength(3);
  155. cobolTypeDescriptor.setName("CA-RETCODE11");
  156. cobolTypeDescriptor.setLevel(2);
  157. expectedCommareaBeanMappingDescriptor.addFieldMapping(cobolTypeDescriptor.getName().replace('-','_'),cobolTypeDescriptor.getName(),cobolTypeDescriptor);
  158. // 02 CA-RETCODE12 PIC 9(5)V999 .
  159. cobolTypeDescriptor=new CobolTypeDescriptor();
  160. cobolTypeDescriptor.setType(CobolType.ZONED);
  161. cobolTypeDescriptor.setIntegerPartLength(5);
  162. cobolTypeDescriptor.setDecimalPartLength(3);
  163. cobolTypeDescriptor.setName("CA-RETCODE12");
  164. cobolTypeDescriptor.setLevel(2);
  165. expectedCommareaBeanMappingDescriptor.addFieldMapping(cobolTypeDescriptor.getName().replace('-','_'),cobolTypeDescriptor.getName(),cobolTypeDescriptor);
  166. // 02 CA-RETCODE13 PIC S99999V999 .
  167. cobolTypeDescriptor=new CobolTypeDescriptor();
  168. cobolTypeDescriptor.setType(CobolType.ZONED);
  169. cobolTypeDescriptor.setIntegerPartLength(5);
  170. cobolTypeDescriptor.setDecimalPartLength(3);
  171. cobolTypeDescriptor.setName("CA-RETCODE13");
  172. cobolTypeDescriptor.setSigned(true);
  173. cobolTypeDescriptor.setLevel(2);
  174. expectedCommareaBeanMappingDescriptor.addFieldMapping(cobolTypeDescriptor.getName().replace('-','_'),cobolTypeDescriptor.getName(),cobolTypeDescriptor);
  175. // 02 CA-RETCODE14 PIC S9(5)V999 .
  176. cobolTypeDescriptor=new CobolTypeDescriptor();
  177. cobolTypeDescriptor.setType(CobolType.ZONED);
  178. cobolTypeDescriptor.setIntegerPartLength(5);
  179. cobolTypeDescriptor.setDecimalPartLength(3);
  180. cobolTypeDescriptor.setName("CA-RETCODE14");
  181. cobolTypeDescriptor.setSigned(true);
  182. cobolTypeDescriptor.setLevel(2);
  183. expectedCommareaBeanMappingDescriptor.addFieldMapping(cobolTypeDescriptor.getName().replace('-','_'),cobolTypeDescriptor.getName(),cobolTypeDescriptor);
  184. // 02 CA-RETCODE15 PIC +99999V999 .
  185. cobolTypeDescriptor=new CobolTypeDescriptor();
  186. cobolTypeDescriptor.setType(CobolType.ZONED);
  187. cobolTypeDescriptor.setIntegerPartLength(5);
  188. cobolTypeDescriptor.setDecimalPartLength(3);
  189. cobolTypeDescriptor.setName("CA-RETCODE15");
  190. cobolTypeDescriptor.setZonedSignFormat(CobolTypeDescriptor.SIGN_FORMAT_LEADING_SEPARATE);
  191. cobolTypeDescriptor.setSigned(true);
  192. cobolTypeDescriptor.setLevel(2);
  193. expectedCommareaBeanMappingDescriptor.addFieldMapping(cobolTypeDescriptor.getName().replace('-','_'),cobolTypeDescriptor.getName(),cobolTypeDescriptor);
  194. // 02 CA-RETCODE16 PIC +9(5)V999 .
  195. cobolTypeDescriptor=new CobolTypeDescriptor();
  196. cobolTypeDescriptor.setType(CobolType.ZONED);
  197. cobolTypeDescriptor.setIntegerPartLength(5);
  198. cobolTypeDescriptor.setDecimalPartLength(3);
  199. cobolTypeDescriptor.setName("CA-RETCODE16");
  200. cobolTypeDescriptor.setZonedSignFormat(CobolTypeDescriptor.SIGN_FORMAT_LEADING_SEPARATE);
  201. cobolTypeDescriptor.setSigned(true);
  202. cobolTypeDescriptor.setLevel(2);
  203. expectedCommareaBeanMappingDescriptor.addFieldMapping(cobolTypeDescriptor.getName().replace('-','_'),cobolTypeDescriptor.getName(),cobolTypeDescriptor);
  204. // 02 CA-RETCODE17 PIC 99999V(3) .
  205. cobolTypeDescriptor=new CobolTypeDescriptor();
  206. cobolTypeDescriptor.setType(CobolType.ZONED);
  207. cobolTypeDescriptor.setIntegerPartLength(5);
  208. cobolTypeDescriptor.setDecimalPartLength(3);
  209. cobolTypeDescriptor.setName("CA-RETCODE17");
  210. cobolTypeDescriptor.setLevel(2);
  211. expectedCommareaBeanMappingDescriptor.addFieldMapping(cobolTypeDescriptor.getName().replace('-','_'),cobolTypeDescriptor.getName(),cobolTypeDescriptor);
  212. // 02 CA-RETCODE18 PIC 9(5)V(3) .
  213. cobolTypeDescriptor=new CobolTypeDescriptor();
  214. cobolTypeDescriptor.setType(CobolType.ZONED);
  215. cobolTypeDescriptor.setIntegerPartLength(5);
  216. cobolTypeDescriptor.setDecimalPartLength(3);
  217. cobolTypeDescriptor.setName("CA-RETCODE18");
  218. cobolTypeDescriptor.setLevel(2);
  219. expectedCommareaBeanMappingDescriptor.addFieldMapping(cobolTypeDescriptor.getName().replace('-','_'),cobolTypeDescriptor.getName(),cobolTypeDescriptor);
  220. // 02 CA-RETCODE19 PIC S99999V(3) .
  221. cobolTypeDescriptor=new CobolTypeDescriptor();
  222. cobolTypeDescriptor.setType(CobolType.ZONED);
  223. cobolTypeDescriptor.setIntegerPartLength(5);
  224. cobolTypeDescriptor.setDecimalPartLength(3);
  225. cobolTypeDescriptor.setName("CA-RETCODE19");
  226. cobolTypeDescriptor.setSigned(true);
  227. cobolTypeDescriptor.setLevel(2);
  228. expectedCommareaBeanMappingDescriptor.addFieldMapping(cobolTypeDescriptor.getName().replace('-','_'),cobolTypeDescriptor.getName(),cobolTypeDescriptor);
  229. // 02 CA-RETCODE20 PIC S9(5)V(3) .
  230. cobolTypeDescriptor=new CobolTypeDescriptor();
  231. cobolTypeDescriptor.setType(CobolType.ZONED);
  232. cobolTypeDescriptor.setIntegerPartLength(5);
  233. cobolTypeDescriptor.setDecimalPartLength(3);
  234. cobolTypeDescriptor.setName("CA-RETCODE20");
  235. cobolTypeDescriptor.setSigned(true);
  236. cobolTypeDescriptor.setLevel(2);
  237. expectedCommareaBeanMappingDescriptor.addFieldMapping(cobolTypeDescriptor.getName().replace('-','_'),cobolTypeDescriptor.getName(),cobolTypeDescriptor);
  238. // 02 CA-RETCODE21 PIC +99999V(3) .
  239. cobolTypeDescriptor=new CobolTypeDescriptor();
  240. cobolTypeDescriptor.setType(CobolType.ZONED);
  241. cobolTypeDescriptor.setIntegerPartLength(5);
  242. cobolTypeDescriptor.setDecimalPartLength(3);
  243. cobolTypeDescriptor.setName("CA-RETCODE21");
  244. cobolTypeDescriptor.setZonedSignFormat(CobolTypeDescriptor.SIGN_FORMAT_LEADING_SEPARATE);
  245. cobolTypeDescriptor.setSigned(true);
  246. cobolTypeDescriptor.setLevel(2);
  247. expectedCommareaBeanMappingDescriptor.addFieldMapping(cobolTypeDescriptor.getName().replace('-','_'),cobolTypeDescriptor.getName(),cobolTypeDescriptor);
  248. // 02 CA-RETCODE22 PIC +9(5)V(3) .
  249. cobolTypeDescriptor=new CobolTypeDescriptor();
  250. cobolTypeDescriptor.setType(CobolType.ZONED);
  251. cobolTypeDescriptor.setIntegerPartLength(5);
  252. cobolTypeDescriptor.setDecimalPartLength(3);
  253. cobolTypeDescriptor.setName("CA-RETCODE22");
  254. cobolTypeDescriptor.setZonedSignFormat(CobolTypeDescriptor.SIGN_FORMAT_LEADING_SEPARATE);
  255. cobolTypeDescriptor.setSigned(true);
  256. cobolTypeDescriptor.setLevel(2);
  257. expectedCommareaBeanMappingDescriptor.addFieldMapping(cobolTypeDescriptor.getName().replace('-','_'),cobolTypeDescriptor.getName(),cobolTypeDescriptor);
  258. CommareaLexer lexer = new CommareaLexer(reader);
  259. CommareaParser parser = new CommareaParser(lexer);
  260. CommareaBeanMappingDescriptor commareaBeanMappingDescriptor = parser.commarea_definition();
  261. log.info("commareaBeanMappingDescriptor: " + commareaBeanMappingDescriptor);
  262. assertEquals(expectedCommareaBeanMappingDescriptor,commareaBeanMappingDescriptor);
  263. }
  264. public void testVinciCommarea2() throws Exception {
  265. InputStream is = new FileInputStream(testRootCommarea+"/"+"VinciCommarea2.txt");
  266. CommareaLexer lexer = new CommareaLexer(is);
  267. CommareaParser parser = new CommareaParser(lexer);
  268. CommareaBeanMappingDescriptor commareaBeanMappingDescriptor = parser.commarea_definition();
  269. log.info("commareaBeanMappingDescriptor: " + commareaBeanMappingDescriptor);
  270. }
  271. public void testVinciCommarea() throws Exception {
  272. InputStream is = new FileInputStream(testRootCommarea+"/"+"VinciCommarea.txt");
  273. CommareaLexer lexer = new CommareaLexer(is);
  274. CommareaParser parser = new CommareaParser(lexer);
  275. CommareaBeanMappingDescriptor commareaBeanMappingDescriptor = parser.commarea_definition();
  276. log.info("commareaBeanMappingDescriptor: " + commareaBeanMappingDescriptor);
  277. }
  278. public void testCommareaStartingWithSpace() throws Exception {
  279. doParse("CommareaStartingWithSpace.txt");
  280. }
  281. public void testCommareaStartingWithTab() throws Exception {
  282. doParse("CommareaStartingWithTab.txt");
  283. }
  284. public void testCommareaWithTrailingSpaces() throws Exception {
  285. doParse("CommareaWithTrailingSpaces.txt");
  286. }
  287. public void testCommareaStartingWithBlankLine() throws Exception {
  288. doParse("CommareaStartingWithBlankLine.txt");
  289. }
  290. public void testCommareaStartingWithBlankLines() throws Exception {
  291. doParse("CommareaStartingWithBlankLines.txt");
  292. }
  293. private static void doParse(final String fileName) throws Exception {
  294. InputStream is = new FileInputStream(testRootCommarea + "/" + fileName);
  295. CommareaLexer lexer = new CommareaLexer(is);
  296. CommareaParser parser = new CommareaParser(lexer);
  297. parser.commarea_definition();
  298. }
  299. public void testStarComment() throws Exception {
  300. // This commarea contains special characters, so is written on a UTF-8 file
  301. Reader r = new InputStreamReader(new FileInputStream(
  302. "src/test/etc/commareas/CommareaWithStarComment.txt"), UTF8);
  303. verifyProvaCommarea2(r);
  304. }
  305. public void testSlashComment() throws Exception {
  306. // This commarea contains special characters, so is written on a UTF-8 file
  307. Reader r = new InputStreamReader(new FileInputStream(
  308. "src/test/etc/commareas/CommareaWithSlashComment.txt"), UTF8);
  309. verifyProvaCommarea2(r);
  310. }
  311. public void testCommentAtBeginOfFile() throws Exception {
  312. Reader r = new StringReader("*Commento a inizio file \r\n"
  313. + "02 CA-RETCODE1 PIC XXXXX .\n"
  314. + "02 CA-RETCODE2 PIC AAAAA .\n"
  315. + "02 CA-RETCODE3 PIC A(5) .\n"
  316. + "02 CA-RETCODE4 PIC X(5) .\n"
  317. + "02 CA-RETCODE5 PIC 99999 .\n"
  318. + "02 CA-RETCODE6 PIC 9(5) .\n"
  319. + "02 CA-RETCODE7 PIC S99999 .\n"
  320. + "02 CA-RETCODE8 PIC S9(5) .\n"
  321. + "02 CA-RETCODE9 PIC +99999 .\n"
  322. + "02 CA-RETCODE10 PIC +9(5) .\n"
  323. + "02 CA-RETCODE11 PIC 99999V999 .\n"
  324. + "02 CA-RETCODE12 PIC 9(5)V999 .\n"
  325. + "02 CA-RETCODE13 PIC S99999V999 .\n"
  326. + "02 CA-RETCODE14 PIC S9(5)V999 .\n"
  327. + "02 CA-RETCODE15 PIC +99999V999 .\n"
  328. + "02 CA-RETCODE16 PIC +9(5)V999 .\n"
  329. + "02 CA-RETCODE17 PIC 99999V(3) .\n"
  330. + "02 CA-RETCODE18 PIC 9(5)V(3) .\n"
  331. + "02 CA-RETCODE19 PIC S99999V(3) .\n"
  332. + "02 CA-RETCODE20 PIC S9(5)V(3) .\n"
  333. + "02 CA-RETCODE21 PIC +99999V(3) .\n"
  334. + "02 CA-RETCODE22 PIC +9(5)V(3) .\n"
  335. + "\n");
  336. verifyProvaCommarea2(r);
  337. }
  338. public void testCommentAtBeginOfFileWithBlankLines() throws Exception {
  339. Reader r = new StringReader(" \n"
  340. + "*Commento a inizio file \r\n"
  341. + "\n"
  342. + "02 CA-RETCODE1 PIC XXXXX .\n"
  343. + "02 CA-RETCODE2 PIC AAAAA .\n"
  344. + "02 CA-RETCODE3 PIC A(5) .\n"
  345. + "02 CA-RETCODE4 PIC X(5) .\n"
  346. + "02 CA-RETCODE5 PIC 99999 .\n"
  347. + "02 CA-RETCODE6 PIC 9(5) .\n"
  348. + "02 CA-RETCODE7 PIC S99999 .\n"
  349. + "02 CA-RETCODE8 PIC S9(5) .\n"
  350. + "02 CA-RETCODE9 PIC +99999 .\n"
  351. + "02 CA-RETCODE10 PIC +9(5) .\n"
  352. + "02 CA-RETCODE11 PIC 99999V999 .\n"
  353. + "02 CA-RETCODE12 PIC 9(5)V999 .\n"
  354. + "02 CA-RETCODE13 PIC S99999V999 .\n"
  355. + "02 CA-RETCODE14 PIC S9(5)V999 .\n"
  356. + "02 CA-RETCODE15 PIC +99999V999 .\n"
  357. + "02 CA-RETCODE16 PIC +9(5)V999 .\n"
  358. + "02 CA-RETCODE17 PIC 99999V(3) .\n"
  359. + "02 CA-RETCODE18 PIC 9(5)V(3) .\n"
  360. + "02 CA-RETCODE19 PIC S99999V(3) .\n"
  361. + "02 CA-RETCODE20 PIC S9(5)V(3) .\n"
  362. + "02 CA-RETCODE21 PIC +99999V(3) .\n"
  363. + "02 CA-RETCODE22 PIC +9(5)V(3) .\n"
  364. + "\n");
  365. verifyProvaCommarea2(r);
  366. }
  367. public void testCommentAtEndOfFile() throws Exception {
  368. Reader r = new StringReader("02 CA-RETCODE1 PIC XXXXX .\n"
  369. + "02 CA-RETCODE2 PIC AAAAA .\n"
  370. + "02 CA-RETCODE3 PIC A(5) .\n"
  371. + "02 CA-RETCODE4 PIC X(5) .\n"
  372. + "02 CA-RETCODE5 PIC 99999 .\n"
  373. + "02 CA-RETCODE6 PIC 9(5) .\n"
  374. + "02 CA-RETCODE7 PIC S99999 .\n"
  375. + "02 CA-RETCODE8 PIC S9(5) .\n"
  376. + "02 CA-RETCODE9 PIC +99999 .\n"
  377. + "02 CA-RETCODE10 PIC +9(5) .\n"
  378. + "02 CA-RETCODE11 PIC 99999V999 .\n"
  379. + "02 CA-RETCODE12 PIC 9(5)V999 .\n"
  380. + "02 CA-RETCODE13 PIC S99999V999 .\n"
  381. + "02 CA-RETCODE14 PIC S9(5)V999 .\n"
  382. + "02 CA-RETCODE15 PIC +99999V999 .\n"
  383. + "02 CA-RETCODE16 PIC +9(5)V999 .\n"
  384. + "02 CA-RETCODE17 PIC 99999V(3) .\n"
  385. + "02 CA-RETCODE18 PIC 9(5)V(3) .\n"
  386. + "02 CA-RETCODE19 PIC S99999V(3) .\n"
  387. + "02 CA-RETCODE20 PIC S9(5)V(3) .\n"
  388. + "02 CA-RETCODE21 PIC +99999V(3) .\n"
  389. + "02 CA-RETCODE22 PIC +9(5)V(3) .\n"
  390. + "* Ciao \n");
  391. verifyProvaCommarea2(r);
  392. }
  393. public void testCodeCommented() throws Exception {
  394. Reader r = new StringReader("02 CA-RETCODE1 PIC XXXXX .\n"
  395. + "/02 CA-RETCODE2 PIC AAA .\n"
  396. + "02 CA-RETCODE2 PIC AAAAA .\n"
  397. + "02 CA-RETCODE3 PIC A(5) .\n"
  398. + "02 CA-RETCODE4 PIC X(5) .\n"
  399. + "02 CA-RETCODE5 PIC 99999 .\n"
  400. + "02 CA-RETCODE6 PIC 9(5) .\n"
  401. + "02 CA-RETCODE7 PIC S99999 .\n"
  402. + "02 CA-RETCODE8 PIC S9(5) .\n"
  403. + "02 CA-RETCODE9 PIC +99999 .\n"
  404. + "02 CA-RETCODE10 PIC +9(5) .\n"
  405. + "02 CA-RETCODE11 PIC 99999V999 .\n"
  406. + "02 CA-RETCODE12 PIC 9(5)V999 .\n"
  407. + "02 CA-RETCODE13 PIC S99999V999 .\n"
  408. + "02 CA-RETCODE14 PIC S9(5)V999 .\n"
  409. + "02 CA-RETCODE15 PIC +99999V999 .\n"
  410. + "02 CA-RETCODE16 PIC +9(5)V999 .\n"
  411. + "02 CA-RETCODE17 PIC 99999V(3) .\n"
  412. + "02 CA-RETCODE18 PIC 9(5)V(3) .\n"
  413. + "02 CA-RETCODE19 PIC S99999V(3) .\n"
  414. + "02 CA-RETCODE20 PIC S9(5)V(3) .\n"
  415. + "02 CA-RETCODE21 PIC +99999V(3) .\n"
  416. + "02 CA-RETCODE22 PIC +9(5)V(3) .\n"
  417. + "*02 CA-RETCODE23 PIC +9(5)V(3) .\n");
  418. verifyProvaCommarea2(r);
  419. }
  420. public void testBlankLineInsideCode() throws Exception {
  421. Reader r = new StringReader("02 CA-RETCODE1 PIC XXXXX .\n"
  422. + "02 CA-RETCODE2 PIC AAAAA .\n"
  423. + "02 CA-RETCODE3 PIC A(5) .\n"
  424. + "02 CA-RETCODE4 PIC X(5) .\n"
  425. + "02 CA-RETCODE5 PIC 99999 .\n"
  426. + "02 CA-RETCODE6 PIC 9(5) .\n"
  427. + "02 CA-RETCODE7 PIC S99999 .\n"
  428. + "02 CA-RETCODE8 PIC S9(5) .\n"
  429. + "02 CA-RETCODE9 PIC +99999 .\n"
  430. + "02 CA-RETCODE10 PIC +9(5) .\n"
  431. + "02 CA-RETCODE11 PIC 99999V999 .\n"
  432. + "02 CA-RETCODE12 PIC 9(5)V999 .\n"
  433. + " \n"
  434. + "02 CA-RETCODE13 PIC S99999V999 .\n"
  435. + "02 CA-RETCODE14 PIC S9(5)V999 .\n"
  436. + "02 CA-RETCODE15 PIC +99999V999 .\n"
  437. + "02 CA-RETCODE16 PIC +9(5)V999 .\n"
  438. + "02 CA-RETCODE17 PIC 99999V(3) .\n"
  439. + "02 CA-RETCODE18 PIC 9(5)V(3) .\n"
  440. + "02 CA-RETCODE19 PIC S99999V(3) .\n"
  441. + "02 CA-RETCODE20 PIC S9(5)V(3) .\n"
  442. + "02 CA-RETCODE21 PIC +99999V(3) .\n"
  443. + "02 CA-RETCODE22 PIC +9(5)V(3) .\n"
  444. + "\n");
  445. verifyProvaCommarea2(r);
  446. }
  447. public void testBlankLinesInsideCode() throws Exception {
  448. Reader r = new StringReader("02 CA-RETCODE1 PIC XXXXX .\n"
  449. + "02 CA-RETCODE2 PIC AAAAA .\n"
  450. + "02 CA-RETCODE3 PIC A(5) .\n"
  451. + "02 CA-RETCODE4 PIC X(5) .\n"
  452. + "02 CA-RETCODE5 PIC 99999 .\n"
  453. + "02 CA-RETCODE6 PIC 9(5) .\n"
  454. + "02 CA-RETCODE7 PIC S99999 .\n"
  455. + "02 CA-RETCODE8 PIC S9(5) .\n"
  456. + "02 CA-RETCODE9 PIC +99999 .\n"
  457. + "02 CA-RETCODE10 PIC +9(5) .\n"
  458. + "02 CA-RETCODE11 PIC 99999V999 .\n"
  459. + "02 CA-RETCODE12 PIC 9(5)V999 .\n"
  460. + " \n"
  461. + " \t \n"
  462. + "\t\n"
  463. + "\n"
  464. + "02 CA-RETCODE13 PIC S99999V999 .\n"
  465. + "02 CA-RETCODE14 PIC S9(5)V999 .\n"
  466. + "02 CA-RETCODE15 PIC +99999V999 .\n"
  467. + "02 CA-RETCODE16 PIC +9(5)V999 .\n"
  468. + "02 CA-RETCODE17 PIC 99999V(3) .\n"
  469. + "02 CA-RETCODE18 PIC 9(5)V(3) .\n"
  470. + "02 CA-RETCODE19 PIC S99999V(3) .\n"
  471. + "02 CA-RETCODE20 PIC S9(5)V(3) .\n"
  472. + "02 CA-RETCODE21 PIC +99999V(3) .\n"
  473. + "02 CA-RETCODE22 PIC +9(5)V(3) .\n"
  474. + "\n");
  475. verifyProvaCommarea2(r);
  476. }
  477. public void testCommareaEndingWithBlankLines() throws Exception {
  478. Reader r = new StringReader("02 CA-RETCODE1 PIC XXXXX .\n"
  479. + "02 CA-RETCODE2 PIC AAAAA .\n"
  480. + "02 CA-RETCODE3 PIC A(5) .\n"
  481. + "02 CA-RETCODE4 PIC X(5) .\n"
  482. + "02 CA-RETCODE5 PIC 99999 .\n"
  483. + "02 CA-RETCODE6 PIC 9(5) .\n"
  484. + "02 CA-RETCODE7 PIC S99999 .\n"
  485. + "02 CA-RETCODE8 PIC S9(5) .\n"
  486. + "02 CA-RETCODE9 PIC +99999 .\n"
  487. + "02 CA-RETCODE10 PIC +9(5) .\n"
  488. + "02 CA-RETCODE11 PIC 99999V999 .\n"
  489. + "02 CA-RETCODE12 PIC 9(5)V999 .\n"
  490. + "02 CA-RETCODE13 PIC S99999V999 .\n"
  491. + "02 CA-RETCODE14 PIC S9(5)V999 .\n"
  492. + "02 CA-RETCODE15 PIC +99999V999 .\n"
  493. + "02 CA-RETCODE16 PIC +9(5)V999 .\n"
  494. + "02 CA-RETCODE17 PIC 99999V(3) .\n"
  495. + "02 CA-RETCODE18 PIC 9(5)V(3) .\n"
  496. + "02 CA-RETCODE19 PIC S99999V(3) .\n"
  497. + "02 CA-RETCODE20 PIC S9(5)V(3) .\n"
  498. + "02 CA-RETCODE21 PIC +99999V(3) .\n"
  499. + "02 CA-RETCODE22 PIC +9(5)V(3) .\n"
  500. + " \n"
  501. + "\t\n"
  502. + "\n"
  503. + "\r\n"
  504. + " \t \n"
  505. + "\t \n");
  506. verifyProvaCommarea2(r);
  507. }
  508. public void testNoNewLineAtEndOfFile() throws Exception {
  509. Reader r = new StringReader("02 CA-RETCODE1 PIC XXXXX .\n"
  510. + "02 CA-RETCODE2 PIC AAAAA .\n"
  511. + "02 CA-RETCODE3 PIC A(5) .\n"
  512. + "02 CA-RETCODE4 PIC X(5) .\n"
  513. + "02 CA-RETCODE5 PIC 99999 .\n"
  514. + "02 CA-RETCODE6 PIC 9(5) .\n"
  515. + "02 CA-RETCODE7 PIC S99999 .\n"
  516. + "02 CA-RETCODE8 PIC S9(5) .\n"
  517. + "02 CA-RETCODE9 PIC +99999 .\n"
  518. + "02 CA-RETCODE10 PIC +9(5) .\n"
  519. + "02 CA-RETCODE11 PIC 99999V999 .\n"
  520. + "02 CA-RETCODE12 PIC 9(5)V999 .\n"
  521. + "02 CA-RETCODE13 PIC S99999V999 .\n"
  522. + "02 CA-RETCODE14 PIC S9(5)V999 .\n"
  523. + "02 CA-RETCODE15 PIC +99999V999 .\n"
  524. + "02 CA-RETCODE16 PIC +9(5)V999 .\n"
  525. + "02 CA-RETCODE17 PIC 99999V(3) .\n"
  526. + "02 CA-RETCODE18 PIC 9(5)V(3) .\n"
  527. + "02 CA-RETCODE19 PIC S99999V(3) .\n"
  528. + "02 CA-RETCODE20 PIC S9(5)V(3) .\n"
  529. + "02 CA-RETCODE21 PIC +99999V(3) .\n"
  530. + "02 CA-RETCODE22 PIC +9(5)V(3) .");
  531. verifyProvaCommarea2(r);
  532. }
  533. public void testCommareaWithoutNewLines() throws Exception {
  534. CommareaLexer lexer
  535. = new CommareaLexer(new StringReader("02 CA-RETCODE1 PIC XXXXX."));
  536. CommareaParser parser = new CommareaParser(lexer);
  537. CommareaBeanMappingDescriptor actual = parser.commarea_definition();
  538. CommareaBeanMappingDescriptor expected
  539. = new CommareaBeanMappingDescriptor();
  540. CobolTypeDescriptor descriptor = new CobolTypeDescriptor();
  541. descriptor.setType(CobolType.STRING);
  542. descriptor.setStringLength(5);
  543. descriptor.setName("CA-RETCODE1");
  544. descriptor.setPadCharacter(" ");
  545. descriptor.setJustification(CobolTypeDescriptor.STRING_JUSTIFICATION_LEFT);
  546. descriptor.setLevel(2);
  547. expected.addFieldMapping(descriptor.getName().replace('-', '_'),
  548. descriptor.getName(), descriptor);
  549. assertEquals("Commarea con valori inaspettati", expected, actual);
  550. }
  551. }