package com.google.sitebricks.rendering.control; import com.google.sitebricks.MvelEvaluator; import com.google.sitebricks.Respond; import com.google.sitebricks.RespondersForTesting; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; import java.util.HashMap; /** * @author Dhanji R. Prasanna (dhanji@gmail.com) */ public class ShowIfWidgetTest { private static final String EXPRESSIONS_AND_EVALS = "expressionsAndEvals"; @DataProvider(name = EXPRESSIONS_AND_EVALS) public Object[][] getExprs() { return new Object[][] { { "visible", true }, { "!visible", false }, { "true", true }, { "false", false }, }; } @Test(dataProvider = EXPRESSIONS_AND_EVALS) public final void hideChildren(String expression, boolean should) { final boolean[] run = new boolean[1]; WidgetChain mockChain = new ProceedingWidgetChain() { @Override public void render(Object bound, Respond respond) { run[0] = true; } }; //try to render widget new ShowIfWidget(mockChain, expression, new MvelEvaluator()) .render(new HashMap<String, Object>() {{ put("visible", true); }}, RespondersForTesting.newRespond()); assert run[0] == should : "ShowIf did not do as it should " + should; } }