/sitebricks/src/test/java/com/google/sitebricks/rendering/control/WidgetRegistryTest.java

http://github.com/dhanji/sitebricks · Java · 38 lines · 29 code · 6 blank · 3 comment · 0 complexity · b71395fd57497b59d1a2ca4b4e015945 MD5 · raw file

  1. package com.google.sitebricks.rendering.control;
  2. import com.google.inject.Injector;
  3. import com.google.sitebricks.MvelEvaluator;
  4. import com.google.sitebricks.Renderable;
  5. import com.google.sitebricks.compiler.EvaluatorCompiler;
  6. import com.google.sitebricks.compiler.ExpressionCompileException;
  7. import com.google.sitebricks.routing.PageBook;
  8. import static org.easymock.EasyMock.createMock;
  9. import static org.easymock.EasyMock.createNiceMock;
  10. import org.testng.annotations.DataProvider;
  11. import org.testng.annotations.Test;
  12. /**
  13. * @author Dhanji R. Prasanna (dhanji@gmail.com)
  14. */
  15. public class WidgetRegistryTest {
  16. private static final String WIDGETS_AND_KEYS = "widgetsAndKeys";
  17. @DataProvider(name = WIDGETS_AND_KEYS)
  18. public Object[][] get() {
  19. return new Object[][] {
  20. { "twidg", TextFieldWidget.class },
  21. { "teasdasxt", RepeatWidget.class },
  22. { "sastext", ShowIfWidget.class },
  23. };
  24. }
  25. @Test(dataProvider = WIDGETS_AND_KEYS)
  26. public final void storeRetrieveWidgets(final String key, final Class<Renderable> expected) throws ExpressionCompileException {
  27. final WidgetRegistry registry = new DefaultWidgetRegistry(new MvelEvaluator(), createNiceMock(PageBook.class), createNiceMock(Injector.class));
  28. registry.add(key, expected);
  29. Renderable widget = registry.newWidget(key, "some=expression", new ProceedingWidgetChain(), createMock(EvaluatorCompiler.class));
  30. assert expected.isInstance(widget) : "Wrong widget returned";
  31. }
  32. }