package xapi.ui.html.impl; import javax.inject.Named; import org.junit.Before; import org.junit.Test; import xapi.inject.X_Inject; import xapi.test.Assert; import xapi.ui.api.StyleService; import xapi.ui.autoui.api.BeanValueProvider; import xapi.ui.autoui.api.UserInterfaceFactory; import xapi.ui.html.X_Html; import xapi.ui.html.api.El; import xapi.ui.html.api.Html; import xapi.ui.html.api.HtmlSnippet; @Html( body = @El( className = "$name", html = "Hello World" )) @Named(HtmlSnippetTest.NAME) public class HtmlSnippetTest { public static final String NAME = "html-snippet"; private StyleService<?> ctx; @SuppressWarnings("rawtypes") @Before public void setup() { ctx = new StyleService<StyleService>() { @Override public StyleService addCss(final String css, final int priority) { return this; } @Override public void loadGoogleFonts(String ... fonts) { addCss(X_Html.toGoogleFontUrl(fonts), 0); } @Override public void flushCss() { } }; } @Test public void testHelloWorld() { final HtmlSnippet<HtmlSnippetTest> snippet = createSnippet(this); final String result = snippet.convert(this); Assert.assertEquals("<div class=\"" + NAME + "\" >Hello World</div>", result); } @Test public void testHelloWorld_Static() { final String result = X_Html.toHtml(HtmlSnippetTest.class, this, ctx); Assert.assertEquals("<div class=\"" + NAME + "\" >Hello World</div>", result); } private HtmlSnippet<HtmlSnippetTest> createSnippet( final HtmlSnippetTest test) { return new HtmlSnippet<>(test.getClass().getAnnotation(Html.class), toValues(test), ctx); } private BeanValueProvider toValues(final HtmlSnippetTest test) { final UserInterfaceFactory factory = X_Inject .singleton(UserInterfaceFactory.class); return factory.getBeanProvider(test.getClass()); } }