package org.dashbuilder.validations.dataset; import com.google.gwtmockito.GwtMockitoTestRunner; import org.dashbuilder.dataset.def.BeanDataSetDef; import org.dashbuilder.dataset.validation.groups.BeanDataSetDefValidation; 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.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 BeanDataSetDefValidatorTest extends AbstractValidationTest { @Mock BeanDataSetDef beanDataSetDef; private BeanDataSetDefValidator tested; @Before public void setup() { super.setup(); tested = spy(new BeanDataSetDefValidator( validator )); } @Test public void testValidateAttributes() { tested.validateCustomAttributes( beanDataSetDef); verify(validator, times(1)).validate(beanDataSetDef, BeanDataSetDefValidation.class); } @Test public void testValidate() { final boolean isCacheEnabled = true; final boolean isPushEnabled = true; final boolean isRefreshEnabled = true; tested.validate(beanDataSetDef, isCacheEnabled, isPushEnabled, isRefreshEnabled); verify(validator, times(1)).validate(beanDataSetDef, DataSetDefBasicAttributesGroup.class, DataSetDefProviderTypeGroup.class, DataSetDefCacheRowsValidation.class, DataSetDefPushSizeValidation.class, DataSetDefRefreshIntervalValidation.class, BeanDataSetDefValidation.class); } @Test public void testValidateNoCache() { final boolean isCacheEnabled = false; final boolean isPushEnabled = true; final boolean isRefreshEnabled = true; tested.validate(beanDataSetDef, isCacheEnabled, isPushEnabled, isRefreshEnabled); verify(validator, times(1)).validate(beanDataSetDef, DataSetDefBasicAttributesGroup.class, DataSetDefProviderTypeGroup.class, DataSetDefPushSizeValidation.class, DataSetDefRefreshIntervalValidation.class, BeanDataSetDefValidation.class); } @Test public void testValidateNoPush() { final boolean isCacheEnabled = true; final boolean isPushEnabled = false; final boolean isRefreshEnabled = true; tested.validate(beanDataSetDef, isCacheEnabled, isPushEnabled, isRefreshEnabled); verify(validator, times(1)).validate(beanDataSetDef, DataSetDefBasicAttributesGroup.class, DataSetDefProviderTypeGroup.class, DataSetDefCacheRowsValidation.class, DataSetDefRefreshIntervalValidation.class, BeanDataSetDefValidation.class); } @Test public void testValidateNoRefresh() { final boolean isCacheEnabled = true; final boolean isPushEnabled = true; final boolean isRefreshEnabled = false; tested.validate(beanDataSetDef, isCacheEnabled, isPushEnabled, isRefreshEnabled); verify(validator, times(1)).validate(beanDataSetDef, DataSetDefBasicAttributesGroup.class, DataSetDefProviderTypeGroup.class, DataSetDefCacheRowsValidation.class, DataSetDefPushSizeValidation.class, BeanDataSetDefValidation.class); } }