// ============================================================================
//
// Copyright (C) 2006-2016 Talend Inc. - www.talend.com
//
// This source code is available under agreement available at
// %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt
//
// You should have received a copy of the agreement
// along with this program; if not, write to Talend SA
// 9 rue Pages 92150 Suresnes, France
//
// ============================================================================
package org.talend.dataquality.indicators.impl;
import java.text.ParseException;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.talend.commons.utils.SpecialValueDisplay;
import org.talend.dataquality.PluginConstant;
import org.talend.dataquality.indicators.IndicatorsFactory;
/**
* created by talend on Nov 19, 2014 Detailled comment
*
*/
public class FrequencyIndicatorImplTest {
/**
* DOC talend Comment method "setUpBeforeClass".
*
* @throws java.lang.Exception
*/
@BeforeClass
public static void setUpBeforeClass() throws Exception {
}
/**
* DOC talend Comment method "tearDownAfterClass".
*
* @throws java.lang.Exception
*/
@AfterClass
public static void tearDownAfterClass() throws Exception {
}
/**
* DOC talend Comment method "setUp".
*
* @throws java.lang.Exception
*/
@Before
public void setUp() throws Exception {
}
/**
* DOC talend Comment method "tearDown".
*
* @throws java.lang.Exception
*/
@After
public void tearDown() throws Exception {
}
/**
* Test method for {@link org.talend.dataquality.indicators.impl.FrequencyIndicatorImpl#getDBName(java.lang.Object)}
* . case 1 frequency case
*/
@Test
public void testGetDBNameCase1() {
String normalStr = "str"; //$NON-NLS-1$
FrequencyIndicatorImpl createFrequencyIndicator = (FrequencyIndicatorImpl) IndicatorsFactory.eINSTANCE
.createFrequencyIndicator();
// input data is null case
String dbName = createFrequencyIndicator.getDBName(null);
Assert.assertEquals(SpecialValueDisplay.NULL_FIELD, dbName);
// input data is empty string
dbName = createFrequencyIndicator.getDBName(PluginConstant.EMPTY_STRING);
Assert.assertEquals(SpecialValueDisplay.EMPTY_FIELD, dbName);
// input data is one blank space string
dbName = createFrequencyIndicator.getDBName(PluginConstant.SPACE_STRING);
Assert.assertEquals(PluginConstant.SPACE_STRING, dbName);
// input data is two blank space string
dbName = createFrequencyIndicator.getDBName(PluginConstant.SPACE_STRING + PluginConstant.SPACE_STRING);
Assert.assertEquals(PluginConstant.SPACE_STRING + PluginConstant.SPACE_STRING, dbName);
// input data is noraml string
dbName = createFrequencyIndicator.getDBName(normalStr);
Assert.assertEquals(normalStr, dbName);
// input data is noraml string surround space string
dbName = createFrequencyIndicator.getDBName(PluginConstant.SPACE_STRING + normalStr + PluginConstant.SPACE_STRING);
Assert.assertEquals(PluginConstant.SPACE_STRING + normalStr + PluginConstant.SPACE_STRING, dbName);
}
/**
* Test method for {@link org.talend.dataquality.indicators.impl.FrequencyIndicatorImpl#getDBName(java.lang.Object)}
* . case 2 pattern frequency indicator case
*/
@Test
public void testGetDBNameCase2() {
String normalStr = "strAM132h"; //$NON-NLS-1$
FrequencyIndicatorImpl createFrequencyIndicator = (FrequencyIndicatorImpl) IndicatorsFactory.eINSTANCE
.createPatternFreqIndicator();
// input data is null case
String dbName = createFrequencyIndicator.getDBName(null);
Assert.assertEquals(SpecialValueDisplay.NULL_FIELD, dbName);
// input data is empty string
dbName = createFrequencyIndicator.getDBName(PluginConstant.EMPTY_STRING);
Assert.assertEquals(SpecialValueDisplay.EMPTY_FIELD, dbName);
// input data is one blank space string
dbName = createFrequencyIndicator.getDBName(PluginConstant.SPACE_STRING);
Assert.assertEquals(PluginConstant.SPACE_STRING, dbName);
// input data is two blank space string
dbName = createFrequencyIndicator.getDBName(PluginConstant.SPACE_STRING + PluginConstant.SPACE_STRING);
Assert.assertEquals(PluginConstant.SPACE_STRING + PluginConstant.SPACE_STRING, dbName);
// input data is l string
dbName = createFrequencyIndicator.getDBName(normalStr);
Assert.assertEquals("aaaAA999a", dbName); //$NON-NLS-1$
// input data is noraml string surround space string
dbName = createFrequencyIndicator.getDBName(PluginConstant.SPACE_STRING + normalStr + PluginConstant.SPACE_STRING);
Assert.assertEquals(PluginConstant.SPACE_STRING + "aaaAA999a" + PluginConstant.SPACE_STRING, dbName); //$NON-NLS-1$
}
/**
* Test method for {@link org.talend.dataquality.indicators.impl.FrequencyIndicatorImpl#getDBName(java.lang.Object)}
* . case 3 pattern low frequency indicator case
*/
@Test
public void testGetDBNameCase3() {
String normalStr = "strAM132h"; //$NON-NLS-1$
FrequencyIndicatorImpl createFrequencyIndicator = (FrequencyIndicatorImpl) IndicatorsFactory.eINSTANCE
.createPatternLowFreqIndicator();
// input data is null case
String dbName = createFrequencyIndicator.getDBName(null);
Assert.assertEquals(SpecialValueDisplay.NULL_FIELD, dbName);
// input data is empty string
dbName = createFrequencyIndicator.getDBName(PluginConstant.EMPTY_STRING);
Assert.assertEquals(SpecialValueDisplay.EMPTY_FIELD, dbName);
// input data is one blank space string
dbName = createFrequencyIndicator.getDBName(PluginConstant.SPACE_STRING);
Assert.assertEquals(PluginConstant.SPACE_STRING, dbName);
// input data is two blank space string
dbName = createFrequencyIndicator.getDBName(PluginConstant.SPACE_STRING + PluginConstant.SPACE_STRING);
Assert.assertEquals(PluginConstant.SPACE_STRING + PluginConstant.SPACE_STRING, dbName);
// input data is l string
dbName = createFrequencyIndicator.getDBName(normalStr);
Assert.assertEquals("aaaAA999a", dbName); //$NON-NLS-1$
// input data is noraml string surround space string
dbName = createFrequencyIndicator.getDBName(PluginConstant.SPACE_STRING + normalStr + PluginConstant.SPACE_STRING);
Assert.assertEquals(PluginConstant.SPACE_STRING + "aaaAA999a" + PluginConstant.SPACE_STRING, dbName); //$NON-NLS-1$
}
/**
* Test method for {@link org.talend.dataquality.indicators.impl.FrequencyIndicatorImpl#getDBName(java.lang.Object)}
* . case 4 Quarter Frequency Indicator case
*
* @throws ParseException
*/
@Test
public void testGetDBNameCase4() throws ParseException {
String normalStr = "2008-09-20 22:12:55"; //$NON-NLS-1$
FrequencyIndicatorImpl createFrequencyIndicator = (FrequencyIndicatorImpl) IndicatorsFactory.eINSTANCE
.createQuarterFrequencyIndicator();
createFrequencyIndicator.datePattern = "yyyy"; //$NON-NLS-1$
// input data is null case
String dbName = createFrequencyIndicator.getDBName(null);
Assert.assertEquals(SpecialValueDisplay.NULL_FIELD, dbName);
// input data is empty string
dbName = createFrequencyIndicator.getDBName(PluginConstant.EMPTY_STRING);
Assert.assertEquals(SpecialValueDisplay.EMPTY_FIELD, dbName);
// input data is normal string
java.text.SimpleDateFormat timeformat = new java.text.SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); //$NON-NLS-1$
java.util.Date inputDate = timeformat.parse(normalStr);
dbName = createFrequencyIndicator.getDBName(inputDate);
Assert.assertEquals("20083", dbName); //$NON-NLS-1$
}
/**
* Test method for {@link org.talend.dataquality.indicators.impl.FrequencyIndicatorImpl#getDBName(java.lang.Object)}
* . case 5 Quarter Low Frequency Indicator case
*
* @throws ParseException
*/
@Test
public void testGetDBNameCase5() throws ParseException {
String normalStr = "2008-09-20 22:12:55"; //$NON-NLS-1$
FrequencyIndicatorImpl createFrequencyIndicator = (FrequencyIndicatorImpl) IndicatorsFactory.eINSTANCE
.createQuarterLowFrequencyIndicator();
createFrequencyIndicator.datePattern = "yyyy"; //$NON-NLS-1$
// input data is null case
String dbName = createFrequencyIndicator.getDBName(null);
Assert.assertEquals(SpecialValueDisplay.NULL_FIELD, dbName);
// input data is empty string
dbName = createFrequencyIndicator.getDBName(PluginConstant.EMPTY_STRING);
Assert.assertEquals(SpecialValueDisplay.EMPTY_FIELD, dbName);
// input data is normal string
java.text.SimpleDateFormat timeformat = new java.text.SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); //$NON-NLS-1$
java.util.Date inputDate = timeformat.parse(normalStr);
dbName = createFrequencyIndicator.getDBName(inputDate);
Assert.assertEquals("20083", dbName); //$NON-NLS-1$
}
/**
* Test method for {@link org.talend.dataquality.indicators.impl.FrequencyIndicatorImpl#getDBName(java.lang.Object)}
* . case 6 Week Frequency Indicator case
*
* @throws ParseException
*/
@Test
public void testGetDBNameCase6() throws ParseException {
String normalStr = "2008-09-20 22:12:55"; //$NON-NLS-1$
FrequencyIndicatorImpl createFrequencyIndicator = (FrequencyIndicatorImpl) IndicatorsFactory.eINSTANCE
.createWeekFrequencyIndicator();
createFrequencyIndicator.datePattern = "yyyyMM"; //$NON-NLS-1$
// input data is null case
String dbName = createFrequencyIndicator.getDBName(null);
Assert.assertEquals(SpecialValueDisplay.NULL_FIELD, dbName);
// input data is empty string
dbName = createFrequencyIndicator.getDBName(PluginConstant.EMPTY_STRING);
Assert.assertEquals(SpecialValueDisplay.EMPTY_FIELD, dbName);
// input data is noraml string
java.text.SimpleDateFormat timeformat = new java.text.SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); //$NON-NLS-1$
java.util.Date inputDate = timeformat.parse(normalStr);
dbName = createFrequencyIndicator.getDBName(inputDate);
Assert.assertEquals("20080938", dbName); //$NON-NLS-1$
}
/**
* Test method for {@link org.talend.dataquality.indicators.impl.FrequencyIndicatorImpl#getDBName(java.lang.Object)}
* . case 7 Week Low Frequency Indicator case
*
* @throws ParseException
*/
@Test
public void testGetDBNameCase7() throws ParseException {
String normalStr = "2008-09-20 22:12:55"; //$NON-NLS-1$
FrequencyIndicatorImpl createFrequencyIndicator = (FrequencyIndicatorImpl) IndicatorsFactory.eINSTANCE
.createWeekLowFrequencyIndicator();
createFrequencyIndicator.datePattern = "yyyyMM"; //$NON-NLS-1$
// input data is null case
String dbName = createFrequencyIndicator.getDBName(null);
Assert.assertEquals(SpecialValueDisplay.NULL_FIELD, dbName);
// input data is empty string
dbName = createFrequencyIndicator.getDBName(PluginConstant.EMPTY_STRING);
Assert.assertEquals(SpecialValueDisplay.EMPTY_FIELD, dbName);
// input data is noraml string
java.text.SimpleDateFormat timeformat = new java.text.SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); //$NON-NLS-1$
java.util.Date inputDate = timeformat.parse(normalStr);
dbName = createFrequencyIndicator.getDBName(inputDate);
Assert.assertEquals("20080938", dbName); //$NON-NLS-1$
}
}