package org.dashbuilder.validations.dataset; import com.google.gwtmockito.GwtMockitoTestRunner; import org.dashbuilder.dataset.def.ElasticSearchDataSetDef; import org.dashbuilder.dataset.validation.groups.DataSetDefBasicAttributesGroup; import org.dashbuilder.dataset.validation.groups.DataSetDefCacheRowsValidation; import org.dashbuilder.dataset.validation.groups.DataSetDefProviderTypeGroup; import org.dashbuilder.dataset.validation.groups.DataSetDefPushSizeValidation; import org.dashbuilder.dataset.validation.groups.DataSetDefRefreshIntervalValidation; import org.dashbuilder.dataset.validation.groups.ElasticSearchDataSetDefValidation; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import static org.mockito.Mockito.*; @RunWith(GwtMockitoTestRunner.class) public class ElasticSearchDataSetDefValidatorTest extends AbstractValidationTest { @Mock ElasticSearchDataSetDef elasticSearchDataSetDef; private ElasticSearchDataSetDefValidator tested; @Before public void setup() { super.setup(); tested = spy(new ElasticSearchDataSetDefValidator( validator )); } @Test public void testValidateAttributes() { tested.validateCustomAttributes( elasticSearchDataSetDef); verify(validator, times(1)).validate(elasticSearchDataSetDef, ElasticSearchDataSetDefValidation.class); } @Test public void testValidate() { final boolean isCacheEnabled = true; final boolean isPushEnabled = true; final boolean isRefreshEnabled = true; tested.validate(elasticSearchDataSetDef, isCacheEnabled, isPushEnabled, isRefreshEnabled); verify(validator, times(1)).validate(elasticSearchDataSetDef, DataSetDefBasicAttributesGroup.class, DataSetDefProviderTypeGroup.class, DataSetDefCacheRowsValidation.class, DataSetDefPushSizeValidation.class, DataSetDefRefreshIntervalValidation.class, ElasticSearchDataSetDefValidation.class); } @Test public void testValidateNoCache() { final boolean isCacheEnabled = false; final boolean isPushEnabled = true; final boolean isRefreshEnabled = true; tested.validate(elasticSearchDataSetDef, isCacheEnabled, isPushEnabled, isRefreshEnabled); verify(validator, times(1)).validate(elasticSearchDataSetDef, DataSetDefBasicAttributesGroup.class, DataSetDefProviderTypeGroup.class, DataSetDefPushSizeValidation.class, DataSetDefRefreshIntervalValidation.class, ElasticSearchDataSetDefValidation.class); } @Test public void testValidateNoPush() { final boolean isCacheEnabled = true; final boolean isPushEnabled = false; final boolean isRefreshEnabled = true; tested.validate(elasticSearchDataSetDef, isCacheEnabled, isPushEnabled, isRefreshEnabled); verify(validator, times(1)).validate(elasticSearchDataSetDef, DataSetDefBasicAttributesGroup.class, DataSetDefProviderTypeGroup.class, DataSetDefCacheRowsValidation.class, DataSetDefRefreshIntervalValidation.class, ElasticSearchDataSetDefValidation.class); } @Test public void testValidateNoRefresh() { final boolean isCacheEnabled = true; final boolean isPushEnabled = true; final boolean isRefreshEnabled = false; tested.validate(elasticSearchDataSetDef, isCacheEnabled, isPushEnabled, isRefreshEnabled); verify(validator, times(1)).validate(elasticSearchDataSetDef, DataSetDefBasicAttributesGroup.class, DataSetDefProviderTypeGroup.class, DataSetDefCacheRowsValidation.class, DataSetDefPushSizeValidation.class, ElasticSearchDataSetDefValidation.class); } }