/* * (c) Copyright 2017 Micro Focus or one of its affiliates. * * Licensed under the MIT License (the "License"); you may not use this file * except in compliance with the License. * * The only warranties for products and services of Micro Focus and its affiliates * and licensors ("Micro Focus") are as may be set forth in the express warranty * statements accompanying such products and services. Nothing herein should be * construed as constituting an additional warranty. Micro Focus shall not be * liable for technical or editorial errors or omissions contained herein. The * information contained herein is subject to change without notice. */ 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; import static junit.framework.TestCase.fail; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.containsString; 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 public void noDatasource() throws ConfigException { try { constructComponentWithoutDatasource().basicValidate(null); fail("Exception should have been thrown"); } catch(final ConfigException e) { assertThat("Exception has the correct message", e.getMessage(), containsString("Datasource must be specified")); } } abstract W constructComponentWithoutDatasource(); }