// ============================================================================ // // 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.survivorship.services; import java.util.ArrayList; import java.util.List; import org.junit.Assert; import org.junit.Test; import org.talend.survivorship.model.Column; import org.talend.survivorship.model.DataSet; /** * Create by zshen test for String Service */ public class StringServiceTest { /** * Test method for {@link org.talend.survivorship.services.StringService#putAttributeValues(java.lang.String, boolean)}. */ @Test public void testPutAttributeValues() { List<Column> columnList = generateColumnList(); DataSet dataSet = new DataSet(columnList); dataSet.initData(generateInputData()); StringService ss = new StringService(dataSet); ss.putAttributeValues("firstName", false); //$NON-NLS-1$ ss.putAttributeValues("lastName", false); //$NON-NLS-1$ Assert.assertEquals("longestValueMap size should be 2", 2, ss.longestValueMap.size()); //$NON-NLS-1$ Assert.assertEquals("secondLongestValueMap size should be 2", 2, ss.secondLongestValueMap.size()); //$NON-NLS-1$ Assert.assertEquals("secondShortestValueMap size should be 2", 2, ss.secondShortestValueMap.size()); //$NON-NLS-1$ Assert.assertEquals("shortestValueMap size should be 2", 2, ss.shortestValueMap.size()); //$NON-NLS-1$ Assert.assertEquals("The result of firstName column should be 1", 1, ss.longestValueMap.get("firstName").size()); //$NON-NLS-1$ //$NON-NLS-2$ // there is not 6 because of some data is duplicated Assert.assertEquals("The result of lastName column should be 3", 3, ss.longestValueMap.get("lastName").size()); //$NON-NLS-1$ //$NON-NLS-2$ Assert.assertEquals("The second LongestValueMap of firstName column should be 1", 1, //$NON-NLS-1$ ss.secondLongestValueMap.get("firstName").size()); //$NON-NLS-1$ // because all of input data keep same length so that secondLongestValueMap is empty all of result keep in longestValueMap Assert.assertEquals("The second LongestValueMap of lastName column should be 0", 0, //$NON-NLS-1$ ss.secondLongestValueMap.get("lastName").size()); //$NON-NLS-1$ Assert.assertEquals("The second ShortestValueMap of firstName column should be 3", 3, //$NON-NLS-1$ ss.secondShortestValueMap.get("firstName") //$NON-NLS-1$ .size()); Assert.assertEquals("The second ShortestValueMap of lastName column should be 0", 0, //$NON-NLS-1$ ss.secondShortestValueMap.get("lastName") //$NON-NLS-1$ .size()); Assert.assertEquals("The shortestValueMap of firstName column should be 1", 1, ss.shortestValueMap.get("firstName") //$NON-NLS-1$ //$NON-NLS-2$ .size()); Assert.assertEquals("The shortestValueMap of lastName column should be 3", 3, ss.shortestValueMap.get("lastName") //$NON-NLS-1$ //$NON-NLS-2$ .size()); ss.init(); } /** * Test method for {@link org.talend.survivorship.services.StringService#init()}. */ @Test public void testInit() { List<Column> columnList = generateColumnList(); DataSet dataSet = new DataSet(columnList); dataSet.initData(generateInputData()); StringService ss = new StringService(dataSet); ss.putAttributeValues("firstName", false); //$NON-NLS-1$ ss.putAttributeValues("lastName", false); //$NON-NLS-1$ Assert.assertEquals("longestValueMap size should be 2", 2, ss.longestValueMap.size()); //$NON-NLS-1$ Assert.assertEquals("secondLongestValueMap size should be 2", 2, ss.secondLongestValueMap.size()); //$NON-NLS-1$ Assert.assertEquals("secondShortestValueMap size should be 2", 2, ss.secondShortestValueMap.size()); //$NON-NLS-1$ Assert.assertEquals("shortestValueMap size should be 2", 2, ss.shortestValueMap.size()); //$NON-NLS-1$ ss.init(); Assert.assertEquals("longestValueMap size should be 0", 0, ss.longestValueMap.size()); //$NON-NLS-1$ Assert.assertEquals("secondLongestValueMap size should be 0", 0, ss.secondLongestValueMap.size()); //$NON-NLS-1$ Assert.assertEquals("secondShortestValueMap size should be 0", 0, ss.secondShortestValueMap.size()); //$NON-NLS-1$ Assert.assertEquals("shortestValueMap size should be 0", 0, ss.shortestValueMap.size()); //$NON-NLS-1$ } /** * Test method for * {@link org.talend.survivorship.services.StringService#isLongestValue(java.lang.Object, java.lang.String, boolean)}. */ @Test public void testIsLongestValue() { List<Column> columnList = generateColumnList(); DataSet dataSet = new DataSet(columnList); dataSet.initData(generateInputData()); StringService ss = new StringService(dataSet); ss.putAttributeValues("firstName", false); //$NON-NLS-1$ ss.putAttributeValues("lastName", false); //$NON-NLS-1$ Assert.assertEquals("Brianna should be longest value on the column firstName", true, //$NON-NLS-1$ ss.isLongestValue("Brianna", "firstName", false)); //$NON-NLS-1$ Assert.assertEquals("cook should be longest value on the column lastName", true, //$NON-NLS-1$ ss.isLongestValue("cook", "lastName", false)); //$NON-NLS-1$ Assert.assertEquals("1111 should not be longest value on the column lastName", false, //$NON-NLS-1$ ss.isLongestValue("1111", "lastName", false)); //$NON-NLS-1$ ss.init(); } /** * Test method for * {@link org.talend.survivorship.services.StringService#isSecondLongestValue(java.lang.Object, java.lang.String, boolean)}. */ @Test public void testIsSecondLongestValue() { List<Column> columnList = generateColumnList(); DataSet dataSet = new DataSet(columnList); dataSet.initData(generateInputData()); StringService ss = new StringService(dataSet); ss.putAttributeValues("firstName", false); //$NON-NLS-1$ ss.putAttributeValues("lastName", false); //$NON-NLS-1$ Assert.assertEquals("Ashley should be second longtest value on the column firstName", true, //$NON-NLS-1$ ss.isSecondLongestValue("Ashley", "firstName", false)); //$NON-NLS-1$ Assert.assertEquals("cook should be second longtest value on the column lastName", true, //$NON-NLS-1$ ss.isSecondLongestValue("cook", "lastName", false)); //$NON-NLS-1$ Assert.assertEquals("1111 should not be second longtest value on the column lastName", false, //$NON-NLS-1$ ss.isSecondLongestValue("1111", "lastName", false)); //$NON-NLS-1$ ss.init(); } /** * Test method for * {@link org.talend.survivorship.services.StringService#isShortestValue(java.lang.Object, java.lang.String, boolean)}. */ @Test public void testIsShortestValue() { List<Column> columnList = generateColumnList(); DataSet dataSet = new DataSet(columnList); dataSet.initData(generateInputData()); StringService ss = new StringService(dataSet); ss.putAttributeValues("firstName", false); //$NON-NLS-1$ ss.putAttributeValues("lastName", false); //$NON-NLS-1$ Assert.assertEquals("Eric should be shortest value on the column firstName", true, //$NON-NLS-1$ ss.isShortestValue("Eric", "firstName", false)); //$NON-NLS-1$ Assert.assertEquals("cook should be shortest value on the column lastName", true, //$NON-NLS-1$ ss.isShortestValue("cook", "lastName", false)); //$NON-NLS-1$ Assert.assertEquals("1111 should not be shortest value on the column lastName", false, //$NON-NLS-1$ ss.isShortestValue("1111", "lastName", false)); //$NON-NLS-1$ ss.init(); } /** * Test method for * {@link org.talend.survivorship.services.StringService#isSecondShortestValue(java.lang.Object, java.lang.String, boolean)}. */ @Test public void testIsSecondShortestValue() { List<Column> columnList = generateColumnList(); DataSet dataSet = new DataSet(columnList); dataSet.initData(generateInputData()); StringService ss = new StringService(dataSet); ss.putAttributeValues("firstName", false); //$NON-NLS-1$ ss.putAttributeValues("lastName", false); //$NON-NLS-1$ Assert.assertEquals("Faith should be second shortest value on the column firstName", true, //$NON-NLS-1$ ss.isSecondShortestValue("Faith", "firstName", false)); //$NON-NLS-1$ Assert.assertEquals("cook should be second shortest value on the column lastName", true, //$NON-NLS-1$ ss.isSecondShortestValue("cook", "lastName", false)); //$NON-NLS-1$ Assert.assertEquals("1111 should not be second shortest value on the column lastName", false, //$NON-NLS-1$ ss.isSecondShortestValue("1111", "lastName", false)); //$NON-NLS-1$ ss.init(); } /** * create by zshen generate column list * * @return list of columns */ private List<Column> generateColumnList() { List<Column> columnList = new ArrayList<>(); Column col1 = new Column("firstName", "String"); //$NON-NLS-1$ //$NON-NLS-2$ columnList.add(col1); col1 = new Column("lastName", "String"); //$NON-NLS-1$ //$NON-NLS-2$ columnList.add(col1); return columnList; } /** * Create by zshen generate input data * * @return arrays of input data */ private Object[][] generateInputData() { return new Object[][] { { "Ashley", "cook" }, { "Brianna", "bell" }, { "Chloe", "cook" }, { "David", "bell" }, //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ { "Eric", "cook" }, { "Faith", "adam" } }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ } }