package com.hp.autonomy.frontend.find.idol.dashboards.widgets; import com.fasterxml.jackson.databind.ObjectMapper; import com.hp.autonomy.frontend.configuration.ConfigException; import com.hp.autonomy.frontend.configuration.ConfigurationComponentTest; import com.hp.autonomy.frontend.find.idol.dashboards.widgets.datasources.WidgetDatasource; import com.hp.autonomy.frontend.find.idol.dashboards.widgets.datasources.WidgetDatasourceMixins; import org.junit.Test; import org.springframework.boot.test.json.JacksonTester; import org.springframework.core.ResolvableType; public abstract class DatasourceDependentWidgetTest<W extends Widget<W, WS> & DatasourceDependentWidget, WS extends WidgetSettings<WS>> extends ConfigurationComponentTest<W> { @Override public void setUp() { final ObjectMapper objectMapper = new ObjectMapper(); objectMapper.addMixIn(WidgetDatasource.class, WidgetDatasourceMixins.class); json = new JacksonTester<>(getClass(), ResolvableType.forClass(getType()), objectMapper); } @Test(expected = ConfigException.class) public void noDatasource() throws ConfigException { constructComponentWithoutDatasource().basicValidate(null); } abstract W constructComponentWithoutDatasource(); }