You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by mi...@apache.org on 2005/06/21 08:53:35 UTC
cvs commit: jakarta-tapestry/framework/src/test/org/apache/tapestry/components TestIfElse.java
mindbridge 2005/06/20 23:53:35
Added: framework/src/test/org/apache/tapestry/components
TestIfElse.java
Log:
Adding the Unit tests for the If and Else components
Revision Changes Path
1.1 jakarta-tapestry/framework/src/test/org/apache/tapestry/components/TestIfElse.java
Index: TestIfElse.java
===================================================================
// Copyright 2005 The Apache Software Foundation
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package org.apache.tapestry.components;
import org.apache.hivemind.impl.DefaultClassResolver;
import org.apache.tapestry.IBinding;
import org.apache.tapestry.IForm;
import org.apache.tapestry.IMarkupWriter;
import org.apache.tapestry.IRender;
import org.apache.tapestry.IRequestCycle;
import org.apache.tapestry.TapestryUtils;
import org.apache.tapestry.services.DataSqueezer;
import org.apache.tapestry.spec.IComponentSpecification;
import org.apache.tapestry.util.io.DataSqueezerImpl;
import org.easymock.MockControl;
/**
* Tests for {@link org.apache.tapestry.components.If}
* and {@link org.apache.tapestry.components.Else}
* components.
*
* @author Mindbridge
* @since 4.0
*/
public class TestIfElse extends BaseComponentTestCase
{
private IRender newRender(IMarkupWriter writer, IRequestCycle cycle)
{
IRender render = (IRender) newMock(IRender.class);
render.render(writer, cycle);
return render;
}
public void testRenderPlainTrue()
{
MockControl cyclec = newControl(IRequestCycle.class);
IRequestCycle cycle = (IRequestCycle) cyclec.getMock();
cycle.isRewinding();
cyclec.setReturnValue(false);
cycle.getAttribute(TapestryUtils.FORM_ATTRIBUTE);
cyclec.setReturnValue(null);
cycle.setAttribute(IfBean.IF_VALUE_ATTRIBUTE, Boolean.TRUE);
cycle.getAttribute(IfBean.IF_VALUE_ATTRIBUTE);
cyclec.setReturnValue(Boolean.TRUE);
IMarkupWriter writer = newWriter();
IRender body = newRender(writer, cycle);
IRender body2 = newRender();
replayControls();
IfBean conditional = (IfBean) newInstance(IfBean.class, new Object[]
{ "condition", Boolean.TRUE });
conditional.addBody(body);
conditional.render(writer, cycle);
ElseBean reverse = (ElseBean) newInstance(ElseBean.class);
reverse.addBody(body2);
reverse.render(writer, cycle);
verifyControls();
}
public void testRenderPlainFalse()
{
MockControl cyclec = newControl(IRequestCycle.class);
IRequestCycle cycle = (IRequestCycle) cyclec.getMock();
cycle.isRewinding();
cyclec.setReturnValue(false);
cycle.getAttribute(TapestryUtils.FORM_ATTRIBUTE);
cyclec.setReturnValue(null);
cycle.setAttribute(IfBean.IF_VALUE_ATTRIBUTE, Boolean.FALSE);
cycle.getAttribute(IfBean.IF_VALUE_ATTRIBUTE);
cyclec.setReturnValue(Boolean.FALSE);
cycle.isRewinding();
cyclec.setReturnValue(false);
IMarkupWriter writer = newWriter();
IRender body = newRender();
IRender body2 = newRender(writer, cycle);
replayControls();
IfBean conditional = (IfBean) newInstance(IfBean.class, new Object[]
{ "condition", Boolean.FALSE });
conditional.addBody(body);
conditional.render(writer, cycle);
ElseBean reverse = (ElseBean) newInstance(ElseBean.class);
reverse.addBody(body2);
reverse.render(writer, cycle);
verifyControls();
}
public void testRenderInFormTrue()
{
IfBean conditional = (IfBean) newInstance(TestIfBean.class,
new Object[] { "condition", Boolean.TRUE });
MockControl formc = newControl(IForm.class);
IForm form = (IForm) formc.getMock();
MockControl cyclec = newControl(IRequestCycle.class);
IRequestCycle cycle = (IRequestCycle) cyclec.getMock();
cycle.isRewinding();
cyclec.setReturnValue(false);
cycle.getAttribute(TapestryUtils.FORM_ATTRIBUTE);
cyclec.setReturnValue(form);
form.getElementId(conditional);
formc.setReturnValue("If");
form.addHiddenValue("If", "T");
cycle.setAttribute(IfBean.IF_VALUE_ATTRIBUTE, Boolean.TRUE);
cycle.getAttribute(IfBean.IF_VALUE_ATTRIBUTE);
cyclec.setReturnValue(Boolean.TRUE);
IMarkupWriter writer = newWriter();
IRender body = newRender(writer, cycle);
IRender body2 = newRender();
replayControls();
conditional.addBody(body);
conditional.render(writer, cycle);
ElseBean reverse = (ElseBean) newInstance(ElseBean.class);
reverse.addBody(body2);
reverse.render(writer, cycle);
verifyControls();
}
public void testRenderInFormFalse()
{
IfBean conditional = (IfBean) newInstance(TestIfBean.class,
new Object[] { "condition", Boolean.FALSE });
MockControl cyclec = newControl(IRequestCycle.class);
IRequestCycle cycle = (IRequestCycle) cyclec.getMock();
MockControl formc = newControl(IForm.class);
IForm form = (IForm) formc.getMock();
cycle.isRewinding();
cyclec.setReturnValue(false);
cycle.getAttribute(TapestryUtils.FORM_ATTRIBUTE);
cyclec.setReturnValue(form);
form.getElementId(conditional);
formc.setReturnValue("If");
form.addHiddenValue("If", "F");
cycle.setAttribute(IfBean.IF_VALUE_ATTRIBUTE, Boolean.FALSE);
cycle.getAttribute(IfBean.IF_VALUE_ATTRIBUTE);
cyclec.setReturnValue(Boolean.FALSE);
cycle.isRewinding();
cyclec.setReturnValue(false);
IMarkupWriter writer = newWriter();
IRender body = newRender();
IRender body2 = newRender(writer, cycle);
replayControls();
conditional.addBody(body);
conditional.render(writer, cycle);
ElseBean reverse = (ElseBean) newInstance(ElseBean.class);
reverse.addBody(body2);
reverse.render(writer, cycle);
verifyControls();
}
public void testIgnoreElementWhenRewindingTrue()
{
IfBean conditional = (IfBean) newInstance(TestIfBean.class,
new Object[] { "condition", Boolean.TRUE, "element", "div" });
MockControl formc = newControl(IForm.class);
IForm form = (IForm) formc.getMock();
MockControl cyclec = newControl(IRequestCycle.class);
IRequestCycle cycle = (IRequestCycle) cyclec.getMock();
cycle.isRewinding();
cyclec.setReturnValue(true);
cycle.getAttribute(TapestryUtils.FORM_ATTRIBUTE);
cyclec.setReturnValue(form);
form.getElementId(conditional);
formc.setReturnValue("If");
cycle.getParameter("If");
cyclec.setReturnValue("T");
cycle.setAttribute(IfBean.IF_VALUE_ATTRIBUTE, Boolean.TRUE);
cycle.getAttribute(IfBean.IF_VALUE_ATTRIBUTE);
cyclec.setReturnValue(Boolean.TRUE);
IMarkupWriter writer = newWriter();
IRender body = newRender(writer, cycle);
IRender body2 = newRender();
replayControls();
conditional.addBody(body);
conditional.render(writer, cycle);
ElseBean reverse = (ElseBean) newInstance(ElseBean.class);
reverse.addBody(body2);
reverse.render(writer, cycle);
verifyControls();
}
public void testIgnoreElementWhenRewindingFalse()
{
IfBean conditional = (IfBean) newInstance(TestIfBean.class,
new Object[] { "condition", Boolean.TRUE, "element", "div" });
MockControl formc = newControl(IForm.class);
IForm form = (IForm) formc.getMock();
MockControl cyclec = newControl(IRequestCycle.class);
IRequestCycle cycle = (IRequestCycle) cyclec.getMock();
cycle.isRewinding();
cyclec.setReturnValue(true);
cycle.getAttribute(TapestryUtils.FORM_ATTRIBUTE);
cyclec.setReturnValue(form);
form.getElementId(conditional);
formc.setReturnValue("If");
cycle.getParameter("If");
cyclec.setReturnValue("F");
cycle.setAttribute(IfBean.IF_VALUE_ATTRIBUTE, Boolean.FALSE);
cycle.getAttribute(IfBean.IF_VALUE_ATTRIBUTE);
cyclec.setReturnValue(Boolean.FALSE);
cycle.isRewinding();
cyclec.setReturnValue(true);
IMarkupWriter writer = newWriter();
IRender body = newRender();
IRender body2 = newRender(writer, cycle);
replayControls();
conditional.addBody(body);
conditional.render(writer, cycle);
ElseBean reverse = (ElseBean) newInstance(ElseBean.class);
reverse.addBody(body2);
reverse.render(writer, cycle);
verifyControls();
}
public void testElement()
{
IBinding informal = newBinding("informal-value");
IComponentSpecification spec = newSpec("informal", null);
MockControl cyclec = newControl(IRequestCycle.class);
IRequestCycle cycle = (IRequestCycle) cyclec.getMock();
cycle.isRewinding();
cyclec.setReturnValue(false);
cycle.getAttribute(TapestryUtils.FORM_ATTRIBUTE);
cyclec.setReturnValue(null);
IMarkupWriter writer = newWriter();
IRender body = newRender(writer, cycle);
writer.begin("div");
writer.attribute("informal", "informal-value");
writer.end("div");
cycle.setAttribute(IfBean.IF_VALUE_ATTRIBUTE, Boolean.TRUE);
replayControls();
IfBean conditional = (IfBean) newInstance(TestIfBean.class, new Object[]
{ "condition", Boolean.TRUE, "element", "div", "specification", spec });
conditional.addBody(body);
conditional.setBinding("informal", informal);
conditional.render(writer, cycle);
verifyControls();
}
public static abstract class TestIfBean extends IfBean
{
public TestIfBean() {
}
public DataSqueezer getDataSqueezer() {
return new DataSqueezerImpl(new DefaultClassResolver());
}
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: tapestry-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tapestry-dev-help@jakarta.apache.org