Author: alexsmirnov
Date: 2010-10-18 19:49:42 -0400 (Mon, 18 Oct 2010)
New Revision: 19600
Added:
branches/RF-8742/ui/validator/api/src/main/java/org/richfaces/validator/LibraryResource.java
branches/RF-8742/ui/validator/api/src/main/java/org/richfaces/validator/LibraryScript.java
branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/renderkit/html/LibraryScriptFunction.java
branches/RF-8742/ui/validator/ui/src/test/java/org/richfaces/renderkit/html/RendererGetClientSideScriptTest.java
branches/RF-8742/ui/validator/ui/src/test/java/org/richfaces/renderkit/html/RendererGetComponentScriptTest.java
branches/RF-8742/ui/validator/ui/src/test/java/org/richfaces/renderkit/html/ValidatorRendererGetScriptTest.java
Removed:
branches/RF-8742/ui/validator/api/src/main/java/org/richfaces/validator/ClientScript.java
branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/renderkit/html/ScriptObject.java
branches/RF-8742/ui/validator/ui/src/test/java/org/richfaces/renderkit/html/ValidatorRendererTest.java
Modified:
branches/RF-8742/ui/validator/api/src/main/java/org/richfaces/validator/ClientScriptService.java
branches/RF-8742/ui/validator/api/src/main/java/org/richfaces/validator/ValidatorDescriptor.java
branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/renderkit/html/ClientValidatorRenderer.java
branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/renderkit/html/ComponentValidatorScript.java
branches/RF-8742/ui/validator/ui/src/test/java/org/richfaces/renderkit/html/RendererTestBase.java
Log:
OPEN - issue RF-9507: ClientValidatorRendererunit tests and implementation.
https://jira.jboss.org/browse/RF-9507
Deleted:
branches/RF-8742/ui/validator/api/src/main/java/org/richfaces/validator/ClientScript.java
===================================================================
---
branches/RF-8742/ui/validator/api/src/main/java/org/richfaces/validator/ClientScript.java 2010-10-18
17:56:04 UTC (rev 19599)
+++
branches/RF-8742/ui/validator/api/src/main/java/org/richfaces/validator/ClientScript.java 2010-10-18
23:49:42 UTC (rev 19600)
@@ -1,42 +0,0 @@
-/*
- * $Id$
- * JBoss, Home of Professional Open Source
- * Copyright 2010, Red Hat, Inc. and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
- */
-
-package org.richfaces.validator;
-
-/**
- * <p class="changed_added_4_0">
- * This class contains information about JavaScript associated with JSF object (
converter or validator )
- * </p>
- *
- * @author asmirnov(a)exadel.com
- *
- */
-public interface ClientScript {
-
- String getLibrary();
-
- String getResourceName();
-
- String getFunctionName();
-
-}
Modified:
branches/RF-8742/ui/validator/api/src/main/java/org/richfaces/validator/ClientScriptService.java
===================================================================
---
branches/RF-8742/ui/validator/api/src/main/java/org/richfaces/validator/ClientScriptService.java 2010-10-18
17:56:04 UTC (rev 19599)
+++
branches/RF-8742/ui/validator/api/src/main/java/org/richfaces/validator/ClientScriptService.java 2010-10-18
23:49:42 UTC (rev 19600)
@@ -37,6 +37,6 @@
* @return description of client-side script.
* @throws ScriptNotFoundException if no JavaScript code associated with Java class.
*/
- ClientScript getScript(Class<?> javaClass) throws ScriptNotFoundException;
+ LibraryScript getScript(Class<?> javaClass) throws ScriptNotFoundException;
}
Added:
branches/RF-8742/ui/validator/api/src/main/java/org/richfaces/validator/LibraryResource.java
===================================================================
---
branches/RF-8742/ui/validator/api/src/main/java/org/richfaces/validator/LibraryResource.java
(rev 0)
+++
branches/RF-8742/ui/validator/api/src/main/java/org/richfaces/validator/LibraryResource.java 2010-10-18
23:49:42 UTC (rev 19600)
@@ -0,0 +1,9 @@
+package org.richfaces.validator;
+
+public interface LibraryResource {
+
+ String getLibrary();
+
+ String getResourceName();
+
+}
\ No newline at end of file
Property changes on:
branches/RF-8742/ui/validator/api/src/main/java/org/richfaces/validator/LibraryResource.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Copied:
branches/RF-8742/ui/validator/api/src/main/java/org/richfaces/validator/LibraryScript.java
(from rev 19593,
branches/RF-8742/ui/validator/api/src/main/java/org/richfaces/validator/ClientScript.java)
===================================================================
---
branches/RF-8742/ui/validator/api/src/main/java/org/richfaces/validator/LibraryScript.java
(rev 0)
+++
branches/RF-8742/ui/validator/api/src/main/java/org/richfaces/validator/LibraryScript.java 2010-10-18
23:49:42 UTC (rev 19600)
@@ -0,0 +1,38 @@
+/*
+ * $Id$
+ * JBoss, Home of Professional Open Source
+ * Copyright 2010, Red Hat, Inc. and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+ */
+
+package org.richfaces.validator;
+
+/**
+ * <p class="changed_added_4_0">
+ * This class contains information about JavaScript associated with JSF object (
converter or validator )
+ * </p>
+ *
+ * @author asmirnov(a)exadel.com
+ *
+ */
+public interface LibraryScript extends LibraryResource {
+
+ String getName();
+
+}
Property changes on:
branches/RF-8742/ui/validator/api/src/main/java/org/richfaces/validator/LibraryScript.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified:
branches/RF-8742/ui/validator/api/src/main/java/org/richfaces/validator/ValidatorDescriptor.java
===================================================================
---
branches/RF-8742/ui/validator/api/src/main/java/org/richfaces/validator/ValidatorDescriptor.java 2010-10-18
17:56:04 UTC (rev 19599)
+++
branches/RF-8742/ui/validator/api/src/main/java/org/richfaces/validator/ValidatorDescriptor.java 2010-10-18
23:49:42 UTC (rev 19600)
@@ -29,7 +29,7 @@
*
* @return non null map with validator instance parameters.
*/
- Map<String, Object> getValidatorParameters();
+ Map<String, ? extends Object> getValidatorParameters();
/**
* <p class="changed_added_4_0">
Modified:
branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/renderkit/html/ClientValidatorRenderer.java
===================================================================
---
branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/renderkit/html/ClientValidatorRenderer.java 2010-10-18
17:56:04 UTC (rev 19599)
+++
branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/renderkit/html/ClientValidatorRenderer.java 2010-10-18
23:49:42 UTC (rev 19600)
@@ -10,6 +10,7 @@
import org.richfaces.component.UIValidatorScript;
import org.richfaces.component.behavior.ClientValidatorBehavior;
+import org.richfaces.validator.ConverterDescriptor;
import org.richfaces.validator.ScriptNotFoundException;
import org.richfaces.validator.ValidatorDescriptor;
@@ -19,7 +20,11 @@
public class ClientValidatorRenderer extends ClientBehaviorRenderer {
public static final String RENDERER_TYPE =
"org.richfaces.ClientValidatorRenderer";
+
+ public static final String VALUE_VAR = "value";
+ public static final String CONVERTED_VALUE_VAR = "convertedValue";
+
public ClientValidatorRenderer() {
super();
}
@@ -36,25 +41,46 @@
return null;
}
- String buildValidatorScript(ClientBehaviorContext behaviorContext,
ClientValidatorBehavior behavior){
+ /**
+ * <p class="changed_added_4_0">This method builds client-side
validation script and stores it in View resource component</p>
+ * @param behaviorContext
+ * @param behavior
+ * @return name of the JavaScript function to call
+ */
+ String buildAndStoreValidatorScript(ClientBehaviorContext behaviorContext,
ClientValidatorBehavior behavior){
return null;
}
- UIValidatorScript getOrCreateValidatorScriptComponent(ClientBehaviorContext
behaviorContext, ClientValidatorBehavior behavior){
+ UIValidatorScript getOrCreateValidatorScriptResource(ClientBehaviorContext
behaviorContext, ClientValidatorBehavior behavior){
return null;
}
+
ComponentValidatorScript createValidatorScript(ClientBehaviorContext
behaviorContext,
ClientValidatorBehavior behavior) {
return null;
}
- ScriptObject getConverterScript(ClientBehaviorContext behaviorContext,
ClientValidatorBehavior behavior)
+ /**
+ * <p class="changed_added_4_0">Build client-side function call for
Server-side component descriptor.</p>
+ * @param behaviorContext
+ * @param validator
+ * @return
+ * @throws ScriptNotFoundException
+ */
+ LibraryScriptFunction getClientSideConverterScript(ClientBehaviorContext
behaviorContext, ConverterDescriptor converter)
throws ScriptNotFoundException {
return null;
}
- ScriptObject getValidatorScript(ClientBehaviorContext behaviorContext,
ValidatorDescriptor validator)
+ /**
+ * <p class="changed_added_4_0">Build client-side function call for
Server-side component descriptor.</p>
+ * @param behaviorContext
+ * @param validator
+ * @return
+ * @throws ScriptNotFoundException
+ */
+ LibraryScriptFunction getClientSideValidatorScript(ClientBehaviorContext
behaviorContext, ValidatorDescriptor validator)
throws ScriptNotFoundException {
return null;
}
Modified:
branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/renderkit/html/ComponentValidatorScript.java
===================================================================
---
branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/renderkit/html/ComponentValidatorScript.java 2010-10-18
17:56:04 UTC (rev 19599)
+++
branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/renderkit/html/ComponentValidatorScript.java 2010-10-18
23:49:42 UTC (rev 19600)
@@ -1,5 +1,14 @@
package org.richfaces.renderkit.html;
-public class ComponentValidatorScript {
+import java.util.Collection;
+import org.ajax4jsf.javascript.ScriptString;
+import org.richfaces.validator.LibraryResource;
+
+public interface ComponentValidatorScript extends ScriptString {
+
+ String getName();
+
+ Collection<LibraryResource> getResources();
+
}
Copied:
branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/renderkit/html/LibraryScriptFunction.java
(from rev 19593,
branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/renderkit/html/ScriptObject.java)
===================================================================
---
branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/renderkit/html/LibraryScriptFunction.java
(rev 0)
+++
branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/renderkit/html/LibraryScriptFunction.java 2010-10-18
23:49:42 UTC (rev 19600)
@@ -0,0 +1,63 @@
+/*
+ * $Id$
+ * JBoss, Home of Professional Open Source
+ * Copyright 2010, Red Hat, Inc. and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+ */
+
+package org.richfaces.renderkit.html;
+
+import org.ajax4jsf.javascript.JSFunction;
+import org.richfaces.validator.LibraryScript;
+
+/**
+ * <p class="changed_added_4_0"></p>
+ * @author asmirnov(a)exadel.com
+ *
+ */
+public class LibraryScriptFunction extends JSFunction {
+
+ private final String library;
+ private final String resourceName;
+
+ public LibraryScriptFunction(LibraryScript libraryScript, Object... parameters) {
+ super(libraryScript.getName(), parameters);
+ this.library = libraryScript.getLibrary();
+ this.resourceName = libraryScript.getResourceName();
+ }
+
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @return the resourceName
+ */
+ public String getResourceName() {
+ return resourceName;
+ }
+
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @return the library
+ */
+ public String getLibrary() {
+ return library;
+ }
+
+
+
+}
Property changes on:
branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/renderkit/html/LibraryScriptFunction.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Deleted:
branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/renderkit/html/ScriptObject.java
===================================================================
---
branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/renderkit/html/ScriptObject.java 2010-10-18
17:56:04 UTC (rev 19599)
+++
branches/RF-8742/ui/validator/ui/src/main/java/org/richfaces/renderkit/html/ScriptObject.java 2010-10-18
23:49:42 UTC (rev 19600)
@@ -1,73 +0,0 @@
-/*
- * $Id$
- * JBoss, Home of Professional Open Source
- * Copyright 2010, Red Hat, Inc. and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
- */
-
-package org.richfaces.renderkit.html;
-
-import java.util.Collection;
-
-import org.richfaces.validator.ClientScript;
-
-/**
- * <p class="changed_added_4_0"></p>
- * @author asmirnov(a)exadel.com
- *
- */
-public class ScriptObject {
-
- private ClientScript script;
-
- private Collection<Object> parameters;
-
- /**
- * <p class="changed_added_4_0"></p>
- * @return the script
- */
- public ClientScript getScript() {
- return this.script;
- }
-
- /**
- * <p class="changed_added_4_0"></p>
- * @param script the script to set
- */
- public void setScript(ClientScript script) {
- this.script = script;
- }
-
- /**
- * <p class="changed_added_4_0"></p>
- * @return the parameters
- */
- public Collection<Object> getParameters() {
- return this.parameters;
- }
-
- /**
- * <p class="changed_added_4_0"></p>
- * @param parameters the parameters to set
- */
- public void setParameters(Collection<Object> parameters) {
- this.parameters = parameters;
- }
-
-}
Added:
branches/RF-8742/ui/validator/ui/src/test/java/org/richfaces/renderkit/html/RendererGetClientSideScriptTest.java
===================================================================
---
branches/RF-8742/ui/validator/ui/src/test/java/org/richfaces/renderkit/html/RendererGetClientSideScriptTest.java
(rev 0)
+++
branches/RF-8742/ui/validator/ui/src/test/java/org/richfaces/renderkit/html/RendererGetClientSideScriptTest.java 2010-10-18
23:49:42 UTC (rev 19600)
@@ -0,0 +1,108 @@
+package org.richfaces.renderkit.html;
+
+import static org.easymock.EasyMock.*;
+import static org.junit.Assert.*;
+
+import java.util.Map;
+
+import javax.faces.convert.NumberConverter;
+import javax.faces.validator.RegexValidator;
+
+import org.jboss.test.faces.mock.Mock;
+import org.jboss.test.faces.mock.MockTestRunner;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.richfaces.application.ServiceTracker;
+import org.richfaces.validator.ClientScriptService;
+import org.richfaces.validator.ConverterDescriptor;
+import org.richfaces.validator.LibraryScript;
+import org.richfaces.validator.ScriptNotFoundException;
+import org.richfaces.validator.ValidatorDescriptor;
+
+
+(a)RunWith(MockTestRunner.class)
+public class RendererGetClientSideScriptTest extends RendererTestBase {
+
+ @Mock
+ private ValidatorDescriptor descriptor;
+
+ @Mock
+ private ConverterDescriptor converterDescriptor;
+
+ @Mock
+ private ClientScriptService scriptService;
+
+ @Mock
+ private LibraryScript script;
+
+ @Before
+ public void setupService() {
+
expect(factory.getInstance(ClientScriptService.class)).andStubReturn(scriptService);
+ ServiceTracker.setFactory(factory);
+ }
+
+ @After
+ public void releaseService() {
+ ServiceTracker.release();
+ }
+
+ @Test(expected = ScriptNotFoundException.class)
+ public void testGetClientSideScriptNotExists() throws Throwable {
+ expect((Class) descriptor.getValidatorClass()).andReturn(RegexValidator.class);
+ expect(scriptService.getScript(RegexValidator.class)).andThrow(new
ScriptNotFoundException());
+ controller.replay();
+ renderer.getClientSideValidatorScript(behaviorContext, descriptor);
+ controller.verify();
+ }
+
+ @Test(expected = ScriptNotFoundException.class)
+ public void testGetClientSideConverterScriptNotExists() throws Throwable {
+ expect((Class)
converterDescriptor.getValidatorClass()).andReturn(NumberConverter.class);
+ expect(scriptService.getScript(NumberConverter.class)).andThrow(new
ScriptNotFoundException());
+ controller.replay();
+ renderer.getClientSideConverterScript(behaviorContext, converterDescriptor);
+ controller.verify();
+ }
+
+ @Test
+ public void testGetClientSideValidatorScriptFromDescription() throws Exception {
+ expect((Class) descriptor.getValidatorClass()).andReturn(RegexValidator.class);
+ expect(descriptor.getMessage()).andReturn(VALIDATOR_MESSAGE);
+ expect((Map<String, Object>)
descriptor.getValidatorParameters()).andReturn(
+ (Map<String, Object>) VALIDATOR_PARAMS);
+ controller.replay();
+ expect(scriptService.getScript(RegexValidator.class)).andReturn(script);
+ expect(script.getName()).andReturn(REGEX_VALIDATOR);
+ expect(script.getLibrary()).andReturn(ORG_RICHFACES);
+ expect(script.getResourceName()).andReturn(CLIENT_VALIDATORS_JS);
+ LibraryScriptFunction clientSideScript =
renderer.getClientSideValidatorScript(behaviorContext, descriptor);
+ assertEquals(ClientValidatorRenderer.CONVERTED_VALUE_VAR,
clientSideScript.getParameters().get(0));
+ assertEquals(VALIDATOR_MESSAGE, clientSideScript.getParameters().get(1));
+ assertEquals(VALIDATOR_PARAMS, clientSideScript.getParameters().get(2));
+ assertEquals(ORG_RICHFACES, clientSideScript.getLibrary());
+ assertEquals(CLIENT_VALIDATORS_JS, clientSideScript.getResourceName());
+ }
+
+ @Test
+ public void testGetClientSideConverterScriptFromDescription() throws Exception {
+ expect((Class)
converterDescriptor.getValidatorClass()).andReturn(NumberConverter.class);
+ expect(converterDescriptor.getMessage()).andReturn(VALIDATOR_MESSAGE);
+ expect((Map<String, Object>)
converterDescriptor.getValidatorParameters()).andReturn(
+ (Map<String, Object>) VALIDATOR_PARAMS);
+ controller.replay();
+ expect(scriptService.getScript(NumberConverter.class)).andReturn(script);
+ expect(script.getName()).andReturn(REGEX_VALIDATOR);
+ expect(script.getLibrary()).andReturn(ORG_RICHFACES);
+ expect(script.getResourceName()).andReturn(CLIENT_VALIDATORS_JS);
+ LibraryScriptFunction clientSideScript =
+ renderer.getClientSideConverterScript(behaviorContext, converterDescriptor);
+ assertEquals(ClientValidatorRenderer.VALUE_VAR,
clientSideScript.getParameters().get(0));
+ assertEquals(VALIDATOR_MESSAGE, clientSideScript.getParameters().get(1));
+ assertEquals(VALIDATOR_PARAMS, clientSideScript.getParameters().get(2));
+ assertEquals(ORG_RICHFACES, clientSideScript.getLibrary());
+ assertEquals(CLIENT_VALIDATORS_JS, clientSideScript.getResourceName());
+ }
+
+}
Property changes on:
branches/RF-8742/ui/validator/ui/src/test/java/org/richfaces/renderkit/html/RendererGetClientSideScriptTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
branches/RF-8742/ui/validator/ui/src/test/java/org/richfaces/renderkit/html/RendererGetComponentScriptTest.java
===================================================================
---
branches/RF-8742/ui/validator/ui/src/test/java/org/richfaces/renderkit/html/RendererGetComponentScriptTest.java
(rev 0)
+++
branches/RF-8742/ui/validator/ui/src/test/java/org/richfaces/renderkit/html/RendererGetComponentScriptTest.java 2010-10-18
23:49:42 UTC (rev 19600)
@@ -0,0 +1,116 @@
+package org.richfaces.renderkit.html;
+
+import static org.junit.Assert.*;
+
+import javax.faces.component.behavior.ClientBehaviorContext;
+
+import org.ajax4jsf.javascript.JSLiteral;
+import org.junit.Test;
+import org.richfaces.validator.ConverterDescriptor;
+import org.richfaces.validator.LibraryScript;
+import org.richfaces.validator.ScriptNotFoundException;
+import org.richfaces.validator.ValidatorDescriptor;
+
+public class RendererGetComponentScriptTest extends RendererTestBase {
+
+ private static final String NUMBER_CONVERTER = "numConverter";
+
+ /**
+ * <p class="changed_added_4_0">Test generated script for case there
is no client-side converter.</p>
+ */
+ @Test
+ public void testCreateValidatorScriptNoConverter() {
+ ClientValidatorRenderer renderer = createStubRenderer(null,
createValidatorFunction());
+ }
+
+
+ /**
+ * <p class="changed_added_4_0">Test generated script for case there
is no client-side validator scripts.</p>
+ */
+ @Test
+ public void testCreateValidatorScriptNoValidator() {
+ ClientValidatorRenderer renderer =
createStubRenderer(createConverterFunction());
+ }
+
+ /**
+ * <p class="changed_added_4_0">Test generated script for case there
is no client-side script for some validator, but exists for other</p>
+ */
+ @Test
+ public void testCreateValidatorScriptPartialValidator() {
+ fail("Not yet implemented");
+ }
+
+ /**
+ * <p class="changed_added_4_0">Test case when validation does not
required at all.</p>
+ */
+ @Test
+ public void testCreateValidatorScriptEmptyValidator() {
+ fail("Not yet implemented");
+ }
+
+ /**
+ * <p class="changed_added_4_0">Test for case when client side
converter is not required.</p>
+ */
+ @Test
+ public void testCreateValidatorScriptNullConverter() {
+ fail("Not yet implemented");
+ }
+
+ /**
+ * <p class="changed_added_4_0">Test case when all converter and
validators available on client.</p>
+ */
+ @Test
+ public void testCreateValidatorScriptClientOnly() {
+ fail("Not yet implemented");
+ }
+
+ private LibraryScriptFunction createValidatorFunction() {
+ return createFunction(REGEX_VALIDATOR,
ClientValidatorRenderer.CONVERTED_VALUE_VAR, VALIDATOR_MESSAGE);
+ }
+
+ private LibraryScriptFunction createConverterFunction() {
+ return createFunction(NUMBER_CONVERTER, ClientValidatorRenderer.VALUE_VAR,
VALIDATOR_MESSAGE);
+ }
+
+ private LibraryScriptFunction createFunction(final String name,String var,String
message) {
+ LibraryScript libraryScript = new LibraryScript() {
+
+ public String getResourceName() {
+ return CLIENT_VALIDATORS_JS;
+ }
+
+ public String getLibrary() {
+ return ORG_RICHFACES;
+ }
+
+ public String getName() {
+ return name;
+ }
+ };
+ return new LibraryScriptFunction(libraryScript,new
JSLiteral(var),message,VALIDATOR_PARAMS);
+ }
+
+ private ClientValidatorRenderer createStubRenderer(final LibraryScriptFunction
converterFunction, final LibraryScriptFunction ...validatorFunctions){
+ return new ClientValidatorRenderer(){
+
+ private int validatorsCounter = 0;
+ @Override
+ LibraryScriptFunction getClientSideConverterScript(ClientBehaviorContext
behaviorContext,
+ ConverterDescriptor converter) throws ScriptNotFoundException {
+ if(null == converterFunction){
+ throw new ScriptNotFoundException();
+ }
+ return converterFunction;
+ }
+
+ @Override
+ LibraryScriptFunction getClientSideValidatorScript(ClientBehaviorContext
behaviorContext,
+ ValidatorDescriptor validator) throws ScriptNotFoundException {
+ if(validatorsCounter>=validatorFunctions.length){
+ throw new ScriptNotFoundException();
+ }
+ return validatorFunctions[validatorsCounter++];
+ }
+ };
+ }
+}
Property changes on:
branches/RF-8742/ui/validator/ui/src/test/java/org/richfaces/renderkit/html/RendererGetComponentScriptTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified:
branches/RF-8742/ui/validator/ui/src/test/java/org/richfaces/renderkit/html/RendererTestBase.java
===================================================================
---
branches/RF-8742/ui/validator/ui/src/test/java/org/richfaces/renderkit/html/RendererTestBase.java 2010-10-18
17:56:04 UTC (rev 19599)
+++
branches/RF-8742/ui/validator/ui/src/test/java/org/richfaces/renderkit/html/RendererTestBase.java 2010-10-18
23:49:42 UTC (rev 19600)
@@ -1,10 +1,19 @@
package org.richfaces.renderkit.html;
+import java.util.Map;
+
import org.richfaces.component.behavior.BehaviorTestBase;
import org.richfaces.component.behavior.ClientValidatorBehavior;
+import com.google.common.collect.ImmutableMap;
+
public class RendererTestBase extends BehaviorTestBase {
+ protected static final String CLIENT_VALIDATORS_JS =
"clientValidators.js";
+ protected static final String ORG_RICHFACES = "org.richfaces";
+ protected static final String REGEX_VALIDATOR = "regexValidator";
+ protected static final String VALIDATOR_MESSAGE = "Validator Message";
+ protected static final Map<String, ? extends Object> VALIDATOR_PARAMS =
ImmutableMap.of("foo", "value", "bar", 10);
protected ClientValidatorRenderer renderer = new ClientValidatorRenderer();
public RendererTestBase() {
Copied:
branches/RF-8742/ui/validator/ui/src/test/java/org/richfaces/renderkit/html/ValidatorRendererGetScriptTest.java
(from rev 19593,
branches/RF-8742/ui/validator/ui/src/test/java/org/richfaces/renderkit/html/ValidatorRendererTest.java)
===================================================================
---
branches/RF-8742/ui/validator/ui/src/test/java/org/richfaces/renderkit/html/ValidatorRendererGetScriptTest.java
(rev 0)
+++
branches/RF-8742/ui/validator/ui/src/test/java/org/richfaces/renderkit/html/ValidatorRendererGetScriptTest.java 2010-10-18
23:49:42 UTC (rev 19600)
@@ -0,0 +1,31 @@
+package org.richfaces.renderkit.html;
+
+import javax.faces.FacesException;
+import javax.faces.component.behavior.ClientBehavior;
+
+import org.jboss.test.faces.mock.MockTestRunner;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+/**
+ * <p class="changed_added_4_0">Test getScript method for wrong
parameters.</p>
+ * @author asmirnov(a)exadel.com
+ *
+ */
+(a)RunWith(MockTestRunner.class)
+public class ValidatorRendererGetScriptTest extends RendererTestBase {
+
+ @Test(expected=NullPointerException.class)
+ public void testGetScriptNullContext() {
+ renderer.getScript(null, behavior);
+ }
+ @Test(expected=NullPointerException.class)
+ public void testGetScriptNullBehavior() {
+ renderer.getScript(setupBehaviorContext(input), null);
+ }
+
+ @Test(expected=FacesException.class)
+ public void testGetScriptWrongBehavior() {
+ renderer.getScript(null, controller.createNiceMock(ClientBehavior.class));
+ }
+}
Property changes on:
branches/RF-8742/ui/validator/ui/src/test/java/org/richfaces/renderkit/html/ValidatorRendererGetScriptTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Deleted:
branches/RF-8742/ui/validator/ui/src/test/java/org/richfaces/renderkit/html/ValidatorRendererTest.java
===================================================================
---
branches/RF-8742/ui/validator/ui/src/test/java/org/richfaces/renderkit/html/ValidatorRendererTest.java 2010-10-18
17:56:04 UTC (rev 19599)
+++
branches/RF-8742/ui/validator/ui/src/test/java/org/richfaces/renderkit/html/ValidatorRendererTest.java 2010-10-18
23:49:42 UTC (rev 19600)
@@ -1,31 +0,0 @@
-package org.richfaces.renderkit.html;
-
-import javax.faces.FacesException;
-import javax.faces.component.behavior.ClientBehavior;
-
-import org.jboss.test.faces.mock.MockTestRunner;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-/**
- * <p class="changed_added_4_0">Test getScript method for wrong
parameters.</p>
- * @author asmirnov(a)exadel.com
- *
- */
-(a)RunWith(MockTestRunner.class)
-public class ValidatorRendererTest extends RendererTestBase {
-
- @Test(expected=NullPointerException.class)
- public void testGetScriptNullContext() {
- renderer.getScript(null, behavior);
- }
- @Test(expected=NullPointerException.class)
- public void testGetScriptNullBehavior() {
- renderer.getScript(setupBehaviorContext(input), null);
- }
-
- @Test(expected=FacesException.class)
- public void testGetScriptWrongBehavior() {
- renderer.getScript(null, controller.createNiceMock(ClientBehavior.class));
- }
-}