myfaces-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mynewsgro...@arcor.de
Subject Aw: Re: How to test custom ExtVal constrains with new Myfaces Test
Date Tue, 14 Sep 2010 07:51:17 GMT
Hi,

what will be the differences between myfaces-webapptest and myfaces-test?

Tom


----- Original Nachricht ----
Von:     Gerhard <gerhard.petracek@gmail.com>
An:      MyFaces Discussion <users@myfaces.apache.org>
Datum:   10.09.2010 12:15
Betreff: Re: How to test custom ExtVal constrains with new Myfaces Test

> hi tom,
> 
> i haven?t checked the latest impl. of myfaces-test - the original impl. was
> too simple. so i had to fix some parts.
> for now you could use our internal infrastructure [1]. (if you are using
> jsf
> 2, you have to create a stand-alone test-project based on jsf 1.2.)
> 
> we don't plan to upgrade the internal test infrastructure to jsf 2, because
> we plan to switch to the upcoming myfaces-webapptest.
> (it allows executing the tests in combination with myfaces-core as well as
> mojarra -> the tests will be more reliable.)
> 
> regards,
> gerhard
> 
> [1]
> https://svn.apache.org/repos/asf/myfaces/extensions/validator/trunk/test-mod
> ules/
> 
> http://www.irian.at
> 
> Your JSF powerhouse -
> JSF Consulting, Development and
> Courses in English and German
> 
> Professional Support for Apache MyFaces
> 
> 
> 2010/9/10 <mynewsgroups@arcor.de>
> 
> > Hi,
> >
> > I had a look into https://issues.apache.org/jira/browse/EXTVAL-4, which
> is
> > about testing ExtVal itself using Shale.
> >
> > Adopting this for testing my own custom ExtVal contraints using Myfaces
> > Test 1.0.0 doesn't work, it seems ExtVal and the mock value expressions
> do
> > not work together. Or am I missing something?
> >
> > Thanks,
> > Tom
> >
> > ---
> >
> > public class CustomCrossValidationsTest extends
> > AbstractJsfConfigurableMockTestCase {
> >
> >        // simple class with 2 string properties
> >        private DummyDialogDaten daten;
> >
> >        private HtmlInputText input1;
> >        private HtmlInputText input2;
> >
> >        @Override
> >        protected void setUpRenderKit() throws Exception {
> >
> >                RenderKitFactory renderKitFactory = (RenderKitFactory)
> > FactoryFinder.getFactory(FactoryFinder.RENDER_KIT_FACTORY);
> >                renderKit = new ExtValRenderKit(new MockRenderKit());
> >
> >  renderKitFactory.addRenderKit(RenderKitFactory.HTML_BASIC_RENDER_KIT,
> > renderKit);
> >
> >                Renderer renderer = new TextRenderer();
> >                renderKit.addRenderer("javax.faces.Input",
> > "javax.faces.Text", renderer);
> >        }
> >
> >        @Before
> >        @Override
> >        public void setUp() throws Exception {
> >
> >                super.setUp();
> >
> >                lifecycle.addPhaseListener(new
> > BeanValidationStartupListener());
> >                lifecycle.addPhaseListener(new
> > PropertyValidationModuleStartupListener());
> >                lifecycle.addPhaseListener(new ExtValStartupListener());
> >
> >                daten = new DummyDialogDaten();
> >
> >                HtmlForm form = new HtmlForm();
> >                form.setId("form");
> >                facesContext.getViewRoot().getChildren().add(form);
> >                input1 = new HtmlInputText();
> >                input1.setId("input1");
> >                input1.addValidator(new BeanValidator());
> >                form.getChildren().add(input1);
> >                input2 = new HtmlInputText();
> >                input2.setId("input2");
> >                input1.addValidator(new BeanValidator());
> >                form.getChildren().add(input2);
> >        }
> >
> >        @Override
> >        public void tearDown() throws Exception {
> >                super.tearDown();
> >                daten = null;
> >                input1 = null;
> >                input2 = null;
> >        }
> >
> >        @Test
> >        public void test() {
> >
> >
> >  facesContext.getExternalContext().getRequestMap().put("testBean",
> daten);
> >
> >                // Startup-Listener ausfuehren
> >                lifecycle.execute(facesContext);
> >
> >                ValueExpression exp =
> > createValueExpression("#{testBean.string1}");
> >                input1.setValueExpression("value", exp);
> >
> >                exp = createValueExpression("#{testBean.string2}");
> >                input2.setValueExpression("value", exp);
> >
> >                input1.setSubmittedValue("");
> >                input2.setSubmittedValue("");
> >
> >                // validate
> >                input1.validate(facesContext);
> >                input2.validate(facesContext);
> >
> >        // update model since it is necessary for crossval
> >                input1.updateModel(facesContext);
> >                input2.updateModel(facesContext);
> >
> >                processCrossValidation();
> >        }
> >
> >        protected ValueExpression createValueExpression(String valueExp) {
> >                return new MockValueExpression(valueExp, String.class);
> >                // or using which returns MockCompositeValueExpression
> >                // ExpressionFactory factory =
> >                // facesContext.getApplication().getExpressionFactory();
> >                // return
> > factory.createValueExpression(facesContext.getELContext(),
> >                // valueExp, String.class);
> >        }
> >
> >        protected void processCrossValidation() {
> >                new CrossValidationPhaseListener().afterPhase(new
> > PhaseEvent(facesContext, PhaseId.ANY_PHASE, lifecycle));
> >        }
> > }
> >
> >
> >
> > Heute erleben, was morgen Trend wird - das kann man auf der IFA in
> Berlin.
> > Oder auf arcor.de: Wir stellen Ihnen die wichtigsten News, Trends und
> > Gadgets der IFA vor. Natürlich mit dabei: das brandneue IPTV-Angebot von
> > Vodafone! Alles rund um die Internationale Funkausstellung in Berlin
> finden
> > Sie hier: http://www.arcor.de/rd/footer.ifa2010
> >
> 

Heute erleben, was morgen Trend wird - das kann man auf der IFA in Berlin. Oder auf arcor.de:
Wir stellen Ihnen die wichtigsten News, Trends und Gadgets der IFA vor. Natürlich mit dabei:
das brandneue IPTV-Angebot von Vodafone! Alles rund um die Internationale Funkausstellung
in Berlin finden Sie hier: http://www.arcor.de/rd/footer.ifa2010

Mime
View raw message