/* * Copyright 2001-2008 Geert Bevin <gbevin[remove] at uwyn dot com> * Licensed under the Apache License, Version 2.0 (the "License") * $Id: TestSubmission.java 3918 2008-04-14 17:35:35Z gbevin $ */ package com.uwyn.rife.engine; import com.uwyn.rife.engine.exceptions.*; import com.uwyn.rife.tools.ExceptionUtils; import java.util.LinkedHashMap; import junit.framework.TestCase; public class TestSubmission extends TestCase { public TestSubmission(String name) { super(name); } public void testInstantiation() { Submission submission = null; submission = new Submission(); assertNotNull(submission); } public void testNoInitialParameters() { Submission submission = new Submission(); assertEquals(submission.getParameterNames().size(), 0); } public void testNoInitialNamedBeans() { Submission submission = new Submission(); assertEquals(submission.getBeanNames().size(), 0); } public void testNoInitialBeans() { Submission submission = new Submission(); assertEquals(submission.getBeans().size(), 0); } public void testNoInitialFiles() { Submission submission = new Submission(); assertEquals(submission.getFileNames().size(), 0); } public void testAddParameter() throws EngineException { ElementInfo element = new ElementInfo("element/test4.xml", "/", TestElement4.class.getName(), ElementType.JAVA_CLASS); Submission submission = new Submission(); element.addSubmission("submission1", submission); submission.addParameter("parameter1", null); assertEquals(submission.getParameterNames().size(), 1); submission.addParameter("parameter2", null); assertEquals(submission.getParameterNames().size(), 2); submission.addParameter("parameter3", null); assertEquals(submission.getParameterNames().size(), 3); assertTrue(submission.containsParameter("parameter1")); assertTrue(submission.containsParameter("parameter2")); assertTrue(submission.containsParameter("parameter3")); } public void testAddParameterRegexp() throws EngineException { ElementInfo element = new ElementInfo("element/test4.xml", "/", TestElement4.class.getName(), ElementType.JAVA_CLASS); Submission submission = new Submission(); element.addSubmission("submission1", submission); submission.addParameterRegexp("paramA(\\d+)"); assertEquals(submission.getParameterRegexps().size(), 1); submission.addParameterRegexp("paramB(\\d+)"); assertEquals(submission.getParameterRegexps().size(), 2); submission.addParameterRegexp("paramC(\\d+)"); assertEquals(submission.getParameterRegexps().size(), 3); assertTrue(submission.containsParameter("paramA1")); assertTrue(submission.containsParameter("paramA2")); assertTrue(submission.containsParameter("paramA3")); assertTrue(submission.containsParameter("paramB1")); assertTrue(submission.containsParameter("paramB2")); assertTrue(submission.containsParameter("paramB3")); assertTrue(submission.containsParameter("paramC1")); assertTrue(submission.containsParameter("paramC2")); assertTrue(submission.containsParameter("paramC3")); assertTrue(!submission.containsParameter("paramA")); assertTrue(!submission.containsParameter("paramB")); assertTrue(!submission.containsParameter("paramC")); } public void testAddFile() throws EngineException { ElementInfo element = new ElementInfo("element/test4.xml", "/", TestElement4.class.getName(), ElementType.JAVA_CLASS); Submission submission = new Submission(); element.addSubmission("submission1", submission); submission.addFile("file1"); assertEquals(submission.getFileNames().size(), 1); submission.addFile("file2"); assertEquals(submission.getFileNames().size(), 2); submission.addFile("file3"); assertEquals(submission.getFileNames().size(), 3); assertTrue(submission.containsFile("file1")); assertTrue(submission.containsFile("file2")); assertTrue(submission.containsFile("file3")); } public void testAddBean() throws EngineException { ElementInfo element = new ElementInfo("element/test4.xml", "/", TestElement4.class.getName(), ElementType.JAVA_CLASS); Submission submission = new Submission(); element.addSubmission("submission1", submission); assertFalse(submission.containsNamedBean("bean1")); BeanDeclaration bean1 = new BeanDeclaration("com.uwyn.rife.engine.testelements.submission.BeanImpl", null, null); submission.addBean(bean1, null); assertEquals(submission.getBeanNames().size(), 0); assertEquals(submission.getBeans().size(), 1); assertEquals(submission.getBeans().iterator().next(), bean1); assertEquals(submission.getParameterNames().size(), 22); assertEquals(submission.getFileNames().size(), 3); assertTrue(submission.containsParameter("enum")); assertTrue(submission.containsParameter("string")); assertTrue(submission.containsParameter("stringbuffer")); assertTrue(submission.containsParameter("int")); assertTrue(submission.containsParameter("integer")); assertTrue(submission.containsParameter("char")); assertTrue(submission.containsParameter("boolean")); assertTrue(submission.containsParameter("booleanObject")); assertTrue(submission.containsParameter("byteObject")); assertTrue(submission.containsParameter("double")); assertTrue(submission.containsParameter("doubleObject")); assertTrue(submission.containsParameter("float")); assertTrue(submission.containsParameter("floatObject")); assertTrue(submission.containsParameter("long")); assertTrue(submission.containsParameter("longObject")); assertTrue(submission.containsParameter("short")); assertTrue(submission.containsParameter("shortObject")); assertTrue(submission.containsParameter("date")); assertTrue(submission.containsParameter("dateFormatted")); assertTrue(submission.containsParameter("datesFormatted")); assertTrue(submission.containsParameter("serializableParam")); assertTrue(submission.containsParameter("serializableParams")); assertTrue(submission.containsFile("stringFile")); assertTrue(submission.containsFile("bytesFile")); assertTrue(submission.containsFile("streamFile")); } public void testAddBeanPrefix() throws EngineException { ElementInfo element = new ElementInfo("element/test4.xml", "/", TestElement4.class.getName(), ElementType.JAVA_CLASS); Submission submission = new Submission(); element.addSubmission("submission1", submission); assertFalse(submission.containsNamedBean("bean1")); BeanDeclaration bean1 = new BeanDeclaration("com.uwyn.rife.engine.testelements.submission.BeanImpl", "prefix_", null); submission.addBean(bean1, null); assertEquals(submission.getBeanNames().size(), 0); assertEquals(submission.getBeans().size(), 1); assertEquals(submission.getBeans().iterator().next(), bean1); assertEquals(submission.getParameterNames().size(), 22); assertEquals(submission.getFileNames().size(), 3); assertTrue(submission.containsParameter("prefix_enum")); assertTrue(submission.containsParameter("prefix_string")); assertTrue(submission.containsParameter("prefix_stringbuffer")); assertTrue(submission.containsParameter("prefix_int")); assertTrue(submission.containsParameter("prefix_integer")); assertTrue(submission.containsParameter("prefix_char")); assertTrue(submission.containsParameter("prefix_boolean")); assertTrue(submission.containsParameter("prefix_booleanObject")); assertTrue(submission.containsParameter("prefix_byteObject")); assertTrue(submission.containsParameter("prefix_double")); assertTrue(submission.containsParameter("prefix_doubleObject")); assertTrue(submission.containsParameter("prefix_float")); assertTrue(submission.containsParameter("prefix_floatObject")); assertTrue(submission.containsParameter("prefix_long")); assertTrue(submission.containsParameter("prefix_longObject")); assertTrue(submission.containsParameter("prefix_short")); assertTrue(submission.containsParameter("prefix_shortObject")); assertTrue(submission.containsParameter("prefix_date")); assertTrue(submission.containsParameter("prefix_dateFormatted")); assertTrue(submission.containsParameter("prefix_datesFormatted")); assertTrue(submission.containsParameter("prefix_serializableParam")); assertTrue(submission.containsParameter("prefix_serializableParams")); assertTrue(submission.containsFile("prefix_stringFile")); assertTrue(submission.containsFile("prefix_bytesFile")); assertTrue(submission.containsFile("prefix_streamFile")); } public void testAddBeanGroup() throws EngineException { ElementInfo element = new ElementInfo("element/test4.xml", "/", TestElement4.class.getName(), ElementType.JAVA_CLASS); Submission submission = new Submission(); element.addSubmission("submission1", submission); assertFalse(submission.containsNamedBean("bean1")); BeanDeclaration bean1 = new BeanDeclaration("com.uwyn.rife.engine.testelements.submission.BeanImpl", null, "somegroup"); submission.addBean(bean1, null); assertEquals(submission.getBeanNames().size(), 0); assertEquals(submission.getBeans().size(), 1); assertEquals(submission.getBeans().iterator().next(), bean1); assertEquals(submission.getParameterNames().size(), 5); assertEquals(submission.getFileNames().size(), 0); assertTrue(submission.containsParameter("enum")); assertTrue(submission.containsParameter("string")); assertTrue(submission.containsParameter("int")); assertTrue(submission.containsParameter("longObject")); assertTrue(submission.containsParameter("short")); } public void testAddBeanGroupPrefix() throws EngineException { ElementInfo element = new ElementInfo("element/test4.xml", "/", TestElement4.class.getName(), ElementType.JAVA_CLASS); Submission submission = new Submission(); element.addSubmission("submission1", submission); assertFalse(submission.containsNamedBean("bean1")); BeanDeclaration bean1 = new BeanDeclaration("com.uwyn.rife.engine.testelements.submission.BeanImpl", "prefix_", "somegroup"); submission.addBean(bean1, null); assertEquals(submission.getBeanNames().size(), 0); assertEquals(submission.getBeans().size(), 1); assertEquals(submission.getBeans().iterator().next(), bean1); assertEquals(submission.getParameterNames().size(), 5); assertEquals(submission.getFileNames().size(), 0); assertTrue(submission.containsParameter("prefix_enum")); assertTrue(submission.containsParameter("prefix_string")); assertTrue(submission.containsParameter("prefix_int")); assertTrue(submission.containsParameter("prefix_longObject")); assertTrue(submission.containsParameter("prefix_short")); } public void testAddNamedBean() throws EngineException { ElementInfo element = new ElementInfo("element/test4.xml", "/", TestElement4.class.getName(), ElementType.JAVA_CLASS); Submission submission = new Submission(); element.addSubmission("submission1", submission); assertFalse(submission.containsNamedBean("bean1")); BeanDeclaration bean1 = new BeanDeclaration("com.uwyn.rife.engine.testelements.submission.BeanImpl", null, null); submission.addBean(bean1, "bean1"); assertTrue(submission.containsNamedBean("bean1")); assertEquals(submission.getBeanNames().size(), 1); assertEquals(submission.getBeanNames().iterator().next(), "bean1"); assertEquals(submission.getBeans().size(), 1); assertEquals(submission.getBeans().iterator().next(), bean1); assertEquals(submission.getParameterNames().size(), 22); assertEquals(submission.getFileNames().size(), 3); assertTrue(submission.containsParameter("enum")); assertTrue(submission.containsParameter("string")); assertTrue(submission.containsParameter("stringbuffer")); assertTrue(submission.containsParameter("int")); assertTrue(submission.containsParameter("integer")); assertTrue(submission.containsParameter("char")); assertTrue(submission.containsParameter("boolean")); assertTrue(submission.containsParameter("booleanObject")); assertTrue(submission.containsParameter("byteObject")); assertTrue(submission.containsParameter("double")); assertTrue(submission.containsParameter("doubleObject")); assertTrue(submission.containsParameter("float")); assertTrue(submission.containsParameter("floatObject")); assertTrue(submission.containsParameter("long")); assertTrue(submission.containsParameter("longObject")); assertTrue(submission.containsParameter("short")); assertTrue(submission.containsParameter("shortObject")); assertTrue(submission.containsParameter("date")); assertTrue(submission.containsParameter("dateFormatted")); assertTrue(submission.containsParameter("datesFormatted")); assertTrue(submission.containsParameter("serializableParam")); assertTrue(submission.containsParameter("serializableParams")); assertTrue(submission.containsFile("stringFile")); assertTrue(submission.containsFile("bytesFile")); assertTrue(submission.containsFile("streamFile")); BeanDeclaration bean2 = submission.getNamedBean("bean1"); assertNotNull(bean2); assertEquals(bean1, bean2); } public void testAddNamedBeanPrefix() throws EngineException { ElementInfo element = new ElementInfo("element/test4.xml", "/", TestElement4.class.getName(), ElementType.JAVA_CLASS); Submission submission = new Submission(); element.addSubmission("submission1", submission); assertFalse(submission.containsNamedBean("bean1")); BeanDeclaration bean1 = new BeanDeclaration("com.uwyn.rife.engine.testelements.submission.BeanImpl", "prefix_", null); submission.addBean(bean1, "bean1"); assertTrue(submission.containsNamedBean("bean1")); assertEquals(submission.getBeanNames().size(), 1); assertEquals(submission.getBeanNames().iterator().next(), "bean1"); assertEquals(submission.getBeans().size(), 1); assertEquals(submission.getBeans().iterator().next(), bean1); assertEquals(submission.getParameterNames().size(), 22); assertEquals(submission.getFileNames().size(), 3); assertTrue(submission.containsParameter("prefix_enum")); assertTrue(submission.containsParameter("prefix_string")); assertTrue(submission.containsParameter("prefix_stringbuffer")); assertTrue(submission.containsParameter("prefix_int")); assertTrue(submission.containsParameter("prefix_integer")); assertTrue(submission.containsParameter("prefix_char")); assertTrue(submission.containsParameter("prefix_boolean")); assertTrue(submission.containsParameter("prefix_booleanObject")); assertTrue(submission.containsParameter("prefix_byteObject")); assertTrue(submission.containsParameter("prefix_double")); assertTrue(submission.containsParameter("prefix_doubleObject")); assertTrue(submission.containsParameter("prefix_float")); assertTrue(submission.containsParameter("prefix_floatObject")); assertTrue(submission.containsParameter("prefix_long")); assertTrue(submission.containsParameter("prefix_longObject")); assertTrue(submission.containsParameter("prefix_short")); assertTrue(submission.containsParameter("prefix_shortObject")); assertTrue(submission.containsParameter("prefix_date")); assertTrue(submission.containsParameter("prefix_dateFormatted")); assertTrue(submission.containsParameter("prefix_datesFormatted")); assertTrue(submission.containsParameter("prefix_serializableParam")); assertTrue(submission.containsParameter("prefix_serializableParams")); assertTrue(submission.containsFile("prefix_stringFile")); assertTrue(submission.containsFile("prefix_bytesFile")); assertTrue(submission.containsFile("prefix_streamFile")); BeanDeclaration bean2 = submission.getNamedBean("bean1"); assertNotNull(bean2); assertEquals(bean1, bean2); } public void testAddDuplicateParameter() { ElementInfo element = new ElementInfo("element/test4.xml", "/", TestElement4.class.getName(), ElementType.JAVA_CLASS); Submission submission = new Submission(); element.addSubmission("submission1", submission); try { submission.addParameter("parameter1", null); } catch (EngineException e) { assertTrue(ExceptionUtils.getExceptionStackTrace(e), false); } assertEquals(submission.getParameterNames().size(), 1); try { submission.addParameter("parameter1", null); fail(); } catch (ParameterExistsException e) { assertSame(e.getDeclarationName(), "element/test4.xml"); assertEquals(e.getSubmissionName(), "submission1"); assertEquals(e.getParameterName(), "parameter1"); } catch (EngineException e) { assertTrue(ExceptionUtils.getExceptionStackTrace(e), false); } assertEquals(submission.getParameterNames().size(), 1); } public void testAddDuplicateFile() { ElementInfo element = new ElementInfo("element/test4.xml", "/", TestElement4.class.getName(), ElementType.JAVA_CLASS); Submission submission = new Submission(); element.addSubmission("submission1", submission); try { submission.addFile("file1"); } catch (EngineException e) { assertTrue(ExceptionUtils.getExceptionStackTrace(e), false); } assertEquals(submission.getFileNames().size(), 1); try { submission.addFile("file1"); fail(); } catch (FileExistsException e) { assertSame(e.getDeclarationName(), "element/test4.xml"); assertEquals(e.getSubmissionName(), "submission1"); assertEquals(e.getFileName(), "file1"); } catch (EngineException e) { assertTrue(ExceptionUtils.getExceptionStackTrace(e), false); } assertEquals(submission.getFileNames().size(), 1); } public void testAddDuplicateNamedBean() { ElementInfo element = new ElementInfo("element/test4.xml", "/", TestElement4.class.getName(), ElementType.JAVA_CLASS); Submission submission = new Submission(); element.addSubmission("submission1", submission); try { submission.addBean(new BeanDeclaration("com.uwyn.rife.engine.testelements.submission.BeanImpl", null, null), "bean1"); } catch (EngineException e) { assertTrue(ExceptionUtils.getExceptionStackTrace(e), false); } assertEquals(submission.getBeanNames().size(), 1); try { submission.addBean(new BeanDeclaration("com.uwyn.rife.engine.testelements.submission.BeanImpl", "prefix_", null), "bean1"); fail(); } catch (NamedSubmissionBeanExistsException e) { assertSame(e.getDeclarationName(), "element/test4.xml"); assertEquals(e.getSubmissionName(), "submission1"); assertEquals(e.getBeanName(), "bean1"); } catch (EngineException e) { assertTrue(ExceptionUtils.getExceptionStackTrace(e), false); } assertEquals(submission.getBeanNames().size(), 1); } public void testAddBeanUnknownGroup() { ElementInfo element = new ElementInfo("element/test4.xml", "/", TestElement4.class.getName(), ElementType.JAVA_CLASS); Submission submission = new Submission(); element.addSubmission("submission1", submission); try { submission.addBean(new BeanDeclaration("com.uwyn.rife.engine.testelements.submission.BeanImpl", null, "unknown"), null); } catch (SubmissionBeanGroupNotFoundException e) { assertSame(e.getDeclarationName(), "element/test4.xml"); assertEquals(e.getSubmissionName(), "submission1"); assertEquals(e.getClassName(), "com.uwyn.rife.engine.testelements.submission.BeanImpl"); assertEquals(e.getGroupName(), "unknown"); } catch (EngineException e) { assertTrue(ExceptionUtils.getExceptionStackTrace(e), false); } assertEquals(submission.getBeanNames().size(), 0); assertEquals(submission.getBeans().size(), 0); try { submission.addBean(new BeanDeclaration("com.uwyn.rife.engine.testelements.submission.BeanImpl", null, "unknown"), "bean1"); } catch (NamedSubmissionBeanGroupNotFoundException e) { assertSame(e.getDeclarationName(), "element/test4.xml"); assertEquals(e.getSubmissionName(), "submission1"); assertEquals(e.getClassName(), "com.uwyn.rife.engine.testelements.submission.BeanImpl"); assertEquals(e.getGroupName(), "unknown"); assertEquals(e.getBeanName(), "bean1"); } catch (EngineException e) { assertTrue(ExceptionUtils.getExceptionStackTrace(e), false); } assertEquals(submission.getBeanNames().size(), 0); assertEquals(submission.getBeans().size(), 0); } public void testAddBeanGroupOnNonValidationClass() { ElementInfo element = new ElementInfo("element/test4.xml", "/", TestElement4.class.getName(), ElementType.JAVA_CLASS); Submission submission = new Submission(); element.addSubmission("submission1", submission); try { submission.addBean(new BeanDeclaration("com.uwyn.rife.engine.testelements.submission.BeanPojo", null, "thegroup"), null); } catch (SubmissionBeanGroupRequiresValidatedConstrainedException e) { assertSame(e.getDeclarationName(), "element/test4.xml"); assertEquals(e.getSubmissionName(), "submission1"); assertEquals(e.getClassName(), "com.uwyn.rife.engine.testelements.submission.BeanPojo"); assertEquals(e.getGroupName(), "thegroup"); } catch (EngineException e) { assertTrue(ExceptionUtils.getExceptionStackTrace(e), false); } assertEquals(submission.getBeanNames().size(), 0); assertEquals(submission.getBeans().size(), 0); try { submission.addBean(new BeanDeclaration("com.uwyn.rife.engine.testelements.submission.BeanPojo", null, "thegroup"), "bean1"); } catch (NamedSubmissionBeanGroupRequiresValidatedConstrainedException e) { assertSame(e.getDeclarationName(), "element/test4.xml"); assertEquals(e.getSubmissionName(), "submission1"); assertEquals(e.getClassName(), "com.uwyn.rife.engine.testelements.submission.BeanPojo"); assertEquals(e.getGroupName(), "thegroup"); assertEquals(e.getBeanName(), "bean1"); } catch (EngineException e) { assertTrue(ExceptionUtils.getExceptionStackTrace(e), false); } assertEquals(submission.getBeanNames().size(), 0); assertEquals(submission.getBeans().size(), 0); } public void testValidateBeanName() throws EngineException { ElementInfo element = new ElementInfo("element/test4.xml", "/", TestElement4.class.getName(), ElementType.JAVA_CLASS); Submission submission = new Submission(); element.addSubmission("submission1", submission); try { submission.validateBeanName("bean1"); fail(); } catch (NamedSubmissionBeanUnknownException e) { assertSame(e.getDeclarationName(), "element/test4.xml"); assertEquals(e.getSubmissionName(), "submission1"); assertEquals(e.getBeanName(), "bean1"); } catch (EngineException e) { assertTrue(ExceptionUtils.getExceptionStackTrace(e), false); } submission.addBean(new BeanDeclaration("com.uwyn.rife.engine.testelements.submission.BeanImpl", null, null), "bean1"); try { submission.validateBeanName("bean1"); assertTrue(true); } catch (EngineException e) { assertTrue(ExceptionUtils.getExceptionStackTrace(e), false); } } public void testGetNamedBean() throws EngineException { ElementInfo element = new ElementInfo("element/test4.xml", "/", TestElement4.class.getName(), ElementType.JAVA_CLASS); Submission submission = new Submission(); element.addSubmission("submission1", submission); try { submission.getNamedBean("bean1"); fail(); } catch (NamedSubmissionBeanUnknownException e) { assertSame(e.getDeclarationName(), "element/test4.xml"); assertEquals(e.getSubmissionName(), "submission1"); assertEquals(e.getBeanName(), "bean1"); } catch (EngineException e) { assertTrue(ExceptionUtils.getExceptionStackTrace(e), false); } submission.addBean(new BeanDeclaration("com.uwyn.rife.engine.testelements.submission.BeanImpl", "prf", null), "bean1"); try { assertEquals(submission.getNamedBean("bean1").getClassname(), "com.uwyn.rife.engine.testelements.submission.BeanImpl"); assertEquals(submission.getNamedBean("bean1").getPrefix(), "prf"); assertTrue(true); } catch (EngineException e) { assertTrue(ExceptionUtils.getExceptionStackTrace(e), false); } } public void testParameterRegexpConflict() { ElementInfo element = new ElementInfo("element/test4.xml", "/", TestElement4.class.getName(), ElementType.JAVA_CLASS); Submission submission = new Submission(); element.addSubmission("submission1", submission); try { submission.addParameterRegexp("parameterregexp(\\d+)"); } catch (EngineException e) { assertTrue(ExceptionUtils.getExceptionStackTrace(e), false); } assertEquals(submission.getParameterRegexps().size(), 1); element.addInput("input1", null); try { submission.addParameterRegexp("input(.*)"); fail(); } catch (ParameterRegexpInputConflictException e) { assertSame(e.getDeclarationName(), "element/test4.xml"); assertEquals(e.getSubmissionName(), "submission1"); assertEquals(e.getInputName(), "input1"); assertEquals(e.getConflictName(), "^input(.*)$"); } catch (EngineException e) { assertTrue(ExceptionUtils.getExceptionStackTrace(e), false); } assertEquals(submission.getParameterRegexps().size(), 1); element.addIncookie("incookie1", null); try { submission.addParameterRegexp("incookie(.*)"); fail(); } catch (ParameterRegexpIncookieConflictException e) { assertSame(e.getDeclarationName(), "element/test4.xml"); assertEquals(e.getSubmissionName(), "submission1"); assertEquals(e.getIncookieName(), "incookie1"); assertEquals(e.getConflictName(), "^incookie(.*)$"); } catch (EngineException e) { assertTrue(ExceptionUtils.getExceptionStackTrace(e), false); } assertEquals(submission.getParameterRegexps().size(), 1); submission.addParameter("parameter1", null); try { submission.addParameterRegexp("parameter(\\d+)"); fail(); } catch (ParameterRegexpParameterConflictException e) { assertSame(e.getDeclarationName(), "element/test4.xml"); assertEquals(e.getSubmissionName(), "submission1"); assertEquals(e.getParameterName(), "parameter1"); assertEquals(e.getConflictName(), "^parameter(\\d+)$"); } catch (EngineException e) { assertTrue(ExceptionUtils.getExceptionStackTrace(e), false); } assertEquals(submission.getParameterRegexps().size(), 1); submission.addFile("file1"); try { submission.addParameterRegexp("file(\\d+)"); fail(); } catch (ParameterRegexpFileConflictException e) { assertSame(e.getDeclarationName(), "element/test4.xml"); assertEquals(e.getSubmissionName(), "submission1"); assertEquals(e.getFileName(), "file1"); assertEquals(e.getConflictName(), "^file(\\d+)$"); } catch (EngineException e) { assertTrue(ExceptionUtils.getExceptionStackTrace(e), false); } assertEquals(submission.getParameterRegexps().size(), 1); element.setGlobalVars(new LinkedHashMap<String, GlobalVar>() {{ put("globalvar1", new GlobalVar(null)); }}); try { submission.addParameterRegexp("globalvar(.*)"); fail(); } catch (ParameterRegexpGlobalVarConflictException e) { assertSame(e.getDeclarationName(), "element/test4.xml"); assertEquals(e.getSubmissionName(), "submission1"); assertEquals(e.getGlobalVarName(), "globalvar1"); assertEquals(e.getConflictName(), "^globalvar(.*)$"); } catch (EngineException e) { assertTrue(ExceptionUtils.getExceptionStackTrace(e), false); } assertEquals(submission.getParameterRegexps().size(), 1); element.setGlobalCookies(new LinkedHashMap<String, String>() {{ put("globalcookie1", null); }}); try { submission.addParameterRegexp("globalcookie(.*)"); fail(); } catch (ParameterRegexpGlobalCookieConflictException e) { assertSame(e.getDeclarationName(), "element/test4.xml"); assertEquals(e.getSubmissionName(), "submission1"); assertEquals(e.getGlobalCookieName(), "globalcookie1"); assertEquals(e.getConflictName(), "^globalcookie(.*)$"); } catch (EngineException e) { assertTrue(ExceptionUtils.getExceptionStackTrace(e), false); } assertEquals(submission.getParameterRegexps().size(), 1); } public void testParameterConflicts() { ElementInfo element = new ElementInfo("element/test4.xml", "/", TestElement4.class.getName(), ElementType.JAVA_CLASS); Submission submission = new Submission(); element.addSubmission("submission1", submission); try { submission.addParameter("parameter1", null); } catch (EngineException e) { assertTrue(ExceptionUtils.getExceptionStackTrace(e), false); } assertEquals(submission.getParameterNames().size(), 1); element.addInput("input1", null); try { submission.addParameter("input1", null); fail(); } catch (ParameterInputConflictException e) { assertSame(e.getDeclarationName(), "element/test4.xml"); assertEquals(e.getSubmissionName(), "submission1"); assertEquals(e.getConflictName(), "input1"); } catch (EngineException e) { assertTrue(ExceptionUtils.getExceptionStackTrace(e), false); } assertEquals(submission.getParameterNames().size(), 1); element.addIncookie("incookie1", null); try { submission.addParameter("incookie1", null); fail(); } catch (ParameterIncookieConflictException e) { assertSame(e.getDeclarationName(), "element/test4.xml"); assertEquals(e.getSubmissionName(), "submission1"); assertEquals(e.getConflictName(), "incookie1"); } catch (EngineException e) { assertTrue(ExceptionUtils.getExceptionStackTrace(e), false); } assertEquals(submission.getParameterNames().size(), 1); submission.addFile("file1"); try { submission.addParameter("file1", null); fail(); } catch (ParameterFileConflictException e) { assertSame(e.getDeclarationName(), "element/test4.xml"); assertEquals(e.getSubmissionName(), "submission1"); assertEquals(e.getConflictName(), "file1"); } catch (EngineException e) { assertTrue(ExceptionUtils.getExceptionStackTrace(e), false); } assertEquals(submission.getParameterNames().size(), 1); submission.addParameterRegexp("regexpparameter(\\d+)"); try { submission.addParameter("regexpparameter1", null); fail(); } catch (ParameterParameterRegexpConflictException e) { assertSame(e.getDeclarationName(), "element/test4.xml"); assertEquals(e.getSubmissionName(), "submission1"); assertEquals(e.getConflictName(), "regexpparameter1"); assertEquals(e.getParameterRegexp(), "^regexpparameter(\\d+)$"); } catch (EngineException e) { assertTrue(ExceptionUtils.getExceptionStackTrace(e), false); } assertEquals(submission.getFileNames().size(), 1); submission.addFileRegexp("regexpfile(\\d+)"); try { submission.addParameter("regexpfile1", null); fail(); } catch (ParameterFileRegexpConflictException e) { assertSame(e.getDeclarationName(), "element/test4.xml"); assertEquals(e.getSubmissionName(), "submission1"); assertEquals(e.getConflictName(), "regexpfile1"); assertEquals(e.getFileRegexp(), "^regexpfile(\\d+)$"); } catch (EngineException e) { assertTrue(ExceptionUtils.getExceptionStackTrace(e), false); } assertEquals(submission.getFileNames().size(), 1); LinkedHashMap<String, GlobalVar> globals_vars = new LinkedHashMap<String, GlobalVar>(); globals_vars.put("globalvar1", new GlobalVar(null)); element = new ElementInfo("element/test2.xml", "text/html", TestElement2.class.getName(), ElementType.JAVA_CLASS); element.setGlobalVars(globals_vars); submission = new Submission(); element.addSubmission("submission1", submission); try { submission.addParameter("globalvar1", null); fail(); } catch (ParameterGlobalVarConflictException e) { assertEquals(e.getDeclarationName(), "element/test2.xml"); assertEquals(e.getConflictName(), "globalvar1"); } catch (EngineException e) { assertTrue(ExceptionUtils.getExceptionStackTrace(e), false); } assertEquals(submission.getParameterNames().size(), 0); LinkedHashMap<String, String> globals_cookies = new LinkedHashMap<String, String>(); globals_cookies.put("globalcookie1", null); element = new ElementInfo("element/test2.xml", "text/html", TestElement2.class.getName(), ElementType.JAVA_CLASS); element.setGlobalCookies(globals_cookies); submission = new Submission(); element.addSubmission("submission1", submission); try { submission.addParameter("globalcookie1", null); fail(); } catch (ParameterGlobalCookieConflictException e) { assertEquals(e.getDeclarationName(), "element/test2.xml"); assertEquals(e.getConflictName(), "globalcookie1"); } catch (EngineException e) { assertTrue(ExceptionUtils.getExceptionStackTrace(e), false); } assertEquals(submission.getParameterNames().size(), 0); } public void testFileRegexpConflict() { ElementInfo element = new ElementInfo("element/test4.xml", "/", TestElement4.class.getName(), ElementType.JAVA_CLASS); Submission submission = new Submission(); element.addSubmission("submission1", submission); try { submission.addFileRegexp("fileregexp(\\d+)"); } catch (EngineException e) { assertTrue(ExceptionUtils.getExceptionStackTrace(e), false); } assertEquals(submission.getFileRegexps().size(), 1); element.addInput("input1", null); try { submission.addFileRegexp("input(.*)"); fail(); } catch (FileRegexpInputConflictException e) { assertSame(e.getDeclarationName(), "element/test4.xml"); assertEquals(e.getSubmissionName(), "submission1"); assertEquals(e.getInputName(), "input1"); assertEquals(e.getConflictName(), "^input(.*)$"); } catch (EngineException e) { assertTrue(ExceptionUtils.getExceptionStackTrace(e), false); } assertEquals(submission.getFileRegexps().size(), 1); element.addIncookie("incookie1", null); try { submission.addFileRegexp("incookie(.*)"); fail(); } catch (FileRegexpIncookieConflictException e) { assertSame(e.getDeclarationName(), "element/test4.xml"); assertEquals(e.getSubmissionName(), "submission1"); assertEquals(e.getIncookieName(), "incookie1"); assertEquals(e.getConflictName(), "^incookie(.*)$"); } catch (EngineException e) { assertTrue(ExceptionUtils.getExceptionStackTrace(e), false); } assertEquals(submission.getFileRegexps().size(), 1); submission.addFile("file1"); try { submission.addFileRegexp("file(\\d+)"); fail(); } catch (FileRegexpFileConflictException e) { assertSame(e.getDeclarationName(), "element/test4.xml"); assertEquals(e.getSubmissionName(), "submission1"); assertEquals(e.getFileName(), "file1"); assertEquals(e.getConflictName(), "^file(\\d+)$"); } catch (EngineException e) { assertTrue(ExceptionUtils.getExceptionStackTrace(e), false); } assertEquals(submission.getFileRegexps().size(), 1); submission.addParameter("param1", null); try { submission.addFileRegexp("param(\\d+)"); fail(); } catch (FileRegexpParameterConflictException e) { assertSame(e.getDeclarationName(), "element/test4.xml"); assertEquals(e.getSubmissionName(), "submission1"); assertEquals(e.getParameterName(), "param1"); assertEquals(e.getConflictName(), "^param(\\d+)$"); } catch (EngineException e) { assertTrue(ExceptionUtils.getExceptionStackTrace(e), false); } assertEquals(submission.getFileRegexps().size(), 1); element.setGlobalVars(new LinkedHashMap<String, GlobalVar>() {{ put("globalvar1", new GlobalVar(null)); }}); try { submission.addFileRegexp("globalvar(.*)"); fail(); } catch (FileRegexpGlobalVarConflictException e) { assertSame(e.getDeclarationName(), "element/test4.xml"); assertEquals(e.getSubmissionName(), "submission1"); assertEquals(e.getGlobalVarName(), "globalvar1"); assertEquals(e.getConflictName(), "^globalvar(.*)$"); } catch (EngineException e) { assertTrue(ExceptionUtils.getExceptionStackTrace(e), false); } assertEquals(submission.getFileRegexps().size(), 1); element.setGlobalCookies(new LinkedHashMap<String, String>() {{ put("globalcookie1", null); }}); try { submission.addFileRegexp("globalcookie(.*)"); fail(); } catch (FileRegexpGlobalCookieConflictException e) { assertSame(e.getDeclarationName(), "element/test4.xml"); assertEquals(e.getSubmissionName(), "submission1"); assertEquals(e.getGlobalCookieName(), "globalcookie1"); assertEquals(e.getConflictName(), "^globalcookie(.*)$"); } catch (EngineException e) { assertTrue(ExceptionUtils.getExceptionStackTrace(e), false); } assertEquals(submission.getFileRegexps().size(), 1); } public void testFileConflicts() { ElementInfo element = new ElementInfo("element/test4.xml", "/", TestElement4.class.getName(), ElementType.JAVA_CLASS); Submission submission = new Submission(); element.addSubmission("submission1", submission); try { submission.addFile("file1"); } catch (EngineException e) { assertTrue(ExceptionUtils.getExceptionStackTrace(e), false); } assertEquals(submission.getFileNames().size(), 1); element.addInput("input1", null); try { submission.addFile("input1"); fail(); } catch (FileInputConflictException e) { assertSame(e.getDeclarationName(), "element/test4.xml"); assertEquals(e.getSubmissionName(), "submission1"); assertEquals(e.getConflictName(), "input1"); } catch (EngineException e) { assertTrue(ExceptionUtils.getExceptionStackTrace(e), false); } assertEquals(submission.getFileNames().size(), 1); element.addIncookie("incookie1", null); try { submission.addFile("incookie1"); fail(); } catch (FileIncookieConflictException e) { assertSame(e.getDeclarationName(), "element/test4.xml"); assertEquals(e.getSubmissionName(), "submission1"); assertEquals(e.getConflictName(), "incookie1"); } catch (EngineException e) { assertTrue(ExceptionUtils.getExceptionStackTrace(e), false); } assertEquals(submission.getFileNames().size(), 1); submission.addParameter("parameter1", null); try { submission.addFile("parameter1"); fail(); } catch (FileParameterConflictException e) { assertSame(e.getDeclarationName(), "element/test4.xml"); assertEquals(e.getSubmissionName(), "submission1"); assertEquals(e.getConflictName(), "parameter1"); } catch (EngineException e) { assertTrue(ExceptionUtils.getExceptionStackTrace(e), false); } assertEquals(submission.getFileNames().size(), 1); submission.addParameterRegexp("regexpparameter(\\d+)"); try { submission.addFile("regexpparameter1"); fail(); } catch (FileParameterRegexpConflictException e) { assertSame(e.getDeclarationName(), "element/test4.xml"); assertEquals(e.getSubmissionName(), "submission1"); assertEquals(e.getConflictName(), "regexpparameter1"); assertEquals(e.getParameterRegexp(), "^regexpparameter(\\d+)$"); } catch (EngineException e) { assertTrue(ExceptionUtils.getExceptionStackTrace(e), false); } assertEquals(submission.getFileNames().size(), 1); submission.addFileRegexp("regexpfile(\\d+)"); try { submission.addFile("regexpfile1"); fail(); } catch (FileFileRegexpConflictException e) { assertSame(e.getDeclarationName(), "element/test4.xml"); assertEquals(e.getSubmissionName(), "submission1"); assertEquals(e.getConflictName(), "regexpfile1"); assertEquals(e.getFileRegexp(), "^regexpfile(\\d+)$"); } catch (EngineException e) { assertTrue(ExceptionUtils.getExceptionStackTrace(e), false); } assertEquals(submission.getFileNames().size(), 1); LinkedHashMap<String, GlobalVar> globals_vars = new LinkedHashMap<String, GlobalVar>(); globals_vars.put("globalvar1", new GlobalVar(null)); element = new ElementInfo("element/test2.xml", "text/html", TestElement2.class.getName(), ElementType.JAVA_CLASS); element.setGlobalVars(globals_vars); submission = new Submission(); element.addSubmission("submission1", submission); try { submission.addFile("globalvar1"); fail(); } catch (FileGlobalVarConflictException e) { assertEquals(e.getDeclarationName(), "element/test2.xml"); assertEquals(e.getConflictName(), "globalvar1"); } catch (EngineException e) { assertTrue(ExceptionUtils.getExceptionStackTrace(e), false); } assertEquals(submission.getFileNames().size(), 0); LinkedHashMap<String, String> globals_cookies = new LinkedHashMap<String, String>(); globals_cookies.put("globalcookie1", null); element = new ElementInfo("element/test2.xml", "text/html", TestElement2.class.getName(), ElementType.JAVA_CLASS); element.setGlobalCookies(globals_cookies); submission = new Submission(); element.addSubmission("submission1", submission); try { submission.addFile("globalcookie1"); fail(); } catch (FileGlobalCookieConflictException e) { assertEquals(e.getDeclarationName(), "element/test2.xml"); assertEquals(e.getConflictName(), "globalcookie1"); } catch (EngineException e) { assertTrue(ExceptionUtils.getExceptionStackTrace(e), false); } assertEquals(submission.getFileNames().size(), 0); } public void testAddParameterDefaultValues() throws EngineException { ElementInfo element = new ElementInfo("element/test4.xml", "/", TestElement4.class.getName(), ElementType.JAVA_CLASS); Submission submission = new Submission(); element.addSubmission("submission1", submission); assertTrue(false == submission.hasParameterDefaults()); submission.addParameter("parameter1", new String[] {"one","two"}); submission.addParameter("parameter2", new String[] {"three"}); submission.addParameter("parameter3", null); assertTrue(submission.hasParameterDefaults()); assertTrue(submission.hasParameterDefaultValues("parameter1")); assertTrue(submission.hasParameterDefaultValues("parameter2")); assertTrue(false == submission.hasParameterDefaultValues("parameter3")); assertNotNull(submission.getParameterDefaultValues("parameter1")); assertNotNull(submission.getParameterDefaultValues("parameter2")); assertNull(submission.getParameterDefaultValues("parameter3")); assertEquals(2, submission.getParameterDefaultValues("parameter1").length); assertEquals(1, submission.getParameterDefaultValues("parameter2").length); assertEquals("one", submission.getParameterDefaultValues("parameter1")[0]); assertEquals("two", submission.getParameterDefaultValues("parameter1")[1]); assertEquals("three", submission.getParameterDefaultValues("parameter2")[0]); } } class TestElement4 extends Element { public void processElement() throws EngineException { print("the content"); } }