package org.dashbuilder.validations.dataset;
import com.google.gwtmockito.GwtMockitoTestRunner;
import org.dashbuilder.dataset.def.CSVDataSetDef;
import org.dashbuilder.dataset.validation.groups.CSVDataSetDefFilePathValidation;
import org.dashbuilder.dataset.validation.groups.CSVDataSetDefFileURLValidation;
import org.dashbuilder.dataset.validation.groups.CSVDataSetDefValidation;
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 CSVDataSetDefValidatorTest extends AbstractValidationTest {
@Mock
CSVDataSetDef csvDataSetDef;
private CSVDataSetDefValidator tested;
@Before
public void setup() {
super.setup();
tested = spy(new CSVDataSetDefValidator( validator));
}
@Test
public void testValidateAttributesUsingFilePath() {
final boolean isUsingFilePath = true;
tested.validateCustomAttributes( csvDataSetDef, isUsingFilePath);
verify(validator, times(1)).validate(csvDataSetDef, CSVDataSetDefValidation.class, CSVDataSetDefFilePathValidation.class);
}
@Test
public void testValidateAttributesUsingFileUrl() {
final boolean isUsingFilePath = false;
tested.validateCustomAttributes( csvDataSetDef, isUsingFilePath);
verify(validator, times(1)).validate(csvDataSetDef, CSVDataSetDefValidation.class, CSVDataSetDefFileURLValidation.class);
}
@Test
public void testValidateUsingFilePath() {
final boolean isCacheEnabled = true;
final boolean isPushEnabled = true;
final boolean isRefreshEnabled = true;
final boolean isUsingFilePath = true;
tested.validate(csvDataSetDef, isCacheEnabled, isPushEnabled, isRefreshEnabled, isUsingFilePath);
verify(validator, times(1)).validate(csvDataSetDef,
DataSetDefBasicAttributesGroup.class,
DataSetDefProviderTypeGroup.class,
DataSetDefCacheRowsValidation.class,
DataSetDefPushSizeValidation.class,
DataSetDefRefreshIntervalValidation.class,
CSVDataSetDefValidation.class,
CSVDataSetDefFilePathValidation.class);
}
@Test
public void testValidateUsingFileUrl() {
final boolean isCacheEnabled = true;
final boolean isPushEnabled = true;
final boolean isRefreshEnabled = true;
final boolean isUsingFilePath = false;
tested.validate(csvDataSetDef, isCacheEnabled, isPushEnabled, isRefreshEnabled, isUsingFilePath);
verify(validator, times(1)).validate(csvDataSetDef,
DataSetDefBasicAttributesGroup.class,
DataSetDefProviderTypeGroup.class,
DataSetDefCacheRowsValidation.class,
DataSetDefPushSizeValidation.class,
DataSetDefRefreshIntervalValidation.class,
CSVDataSetDefValidation.class,
CSVDataSetDefFileURLValidation.class);
}
@Test
public void testValidateNoCache() {
final boolean isCacheEnabled = false;
final boolean isPushEnabled = true;
final boolean isRefreshEnabled = true;
final boolean isUsingFilePath = false;
tested.validate(csvDataSetDef, isCacheEnabled, isPushEnabled, isRefreshEnabled, isUsingFilePath);
verify(validator, times(1)).validate(csvDataSetDef,
DataSetDefBasicAttributesGroup.class,
DataSetDefProviderTypeGroup.class,
DataSetDefPushSizeValidation.class,
DataSetDefRefreshIntervalValidation.class,
CSVDataSetDefValidation.class,
CSVDataSetDefFileURLValidation.class);
}
@Test
public void testValidateNoPush() {
final boolean isCacheEnabled = true;
final boolean isPushEnabled = false;
final boolean isRefreshEnabled = true;
final boolean isUsingFilePath = false;
tested.validate(csvDataSetDef, isCacheEnabled, isPushEnabled, isRefreshEnabled, isUsingFilePath);
verify(validator, times(1)).validate(csvDataSetDef,
DataSetDefBasicAttributesGroup.class,
DataSetDefProviderTypeGroup.class,
DataSetDefCacheRowsValidation.class,
DataSetDefRefreshIntervalValidation.class,
CSVDataSetDefValidation.class,
CSVDataSetDefFileURLValidation.class);
}
@Test
public void testValidateNoRefresh() {
final boolean isCacheEnabled = true;
final boolean isPushEnabled = true;
final boolean isRefreshEnabled = false;
final boolean isUsingFilePath = false;
tested.validate(csvDataSetDef, isCacheEnabled, isPushEnabled, isRefreshEnabled, isUsingFilePath);
verify(validator, times(1)).validate(csvDataSetDef,
DataSetDefBasicAttributesGroup.class,
DataSetDefProviderTypeGroup.class,
DataSetDefCacheRowsValidation.class,
DataSetDefPushSizeValidation.class,
CSVDataSetDefValidation.class,
CSVDataSetDefFileURLValidation.class);
}
}