// ============================================================================
//
// 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.dataprofiler.core.ui.editor.analysis.drilldown;
import java.util.ArrayList;
import java.util.List;
import org.junit.Assert;
import org.junit.Test;
import org.talend.core.model.metadata.builder.connection.ConnectionFactory;
import org.talend.core.model.metadata.builder.connection.MetadataTable;
import org.talend.cwm.helper.TableHelper;
import org.talend.cwm.helper.ViewHelper;
import org.talend.cwm.relational.RelationalFactory;
import org.talend.cwm.relational.TdColumn;
import org.talend.cwm.relational.TdTable;
import org.talend.cwm.relational.TdView;
/**
* DOC talend class global comment. Detailled comment
*/
public class DrillDownEditorInputRealTest {
/**
* Test method for
* {@link org.talend.dataprofiler.core.ui.editor.analysis.drilldown.DrillDownEditorInput#getColumnsByTdColumn(org.talend.cwm.relational.TdColumn)}
* . case1 :for table case
*/
@Test
public void testGetColumnsByTdColumnCase1() {
TdColumn currentTdColumn = RelationalFactory.eINSTANCE.createTdColumn();
TdColumn secondTdColumn = RelationalFactory.eINSTANCE.createTdColumn();
TdTable createTdTable = RelationalFactory.eINSTANCE.createTdTable();
TableHelper.addColumn(createTdTable, currentTdColumn);
TableHelper.addColumn(createTdTable, secondTdColumn);
DrillDownEditorInput drillDownEditorInput = new DrillDownEditorInput();
List<TdColumn> allofTdColumn = drillDownEditorInput.getColumnsByTdColumn(currentTdColumn);
Assert.assertEquals(createTdTable.getColumns().size(), allofTdColumn.size());
}
/**
* Test method for
* {@link org.talend.dataprofiler.core.ui.editor.analysis.drilldown.DrillDownEditorInput#getColumnsByTdColumn(org.talend.cwm.relational.TdColumn)}
* . case2 :for view case
*/
@Test
public void testGetColumnsByTdColumnCase2() {
TdColumn currentTdColumn = RelationalFactory.eINSTANCE.createTdColumn();
TdColumn secondTdColumn = RelationalFactory.eINSTANCE.createTdColumn();
TdView createTdView = RelationalFactory.eINSTANCE.createTdView();
List<TdColumn> tdColumns = new ArrayList<TdColumn>();
tdColumns.add(currentTdColumn);
tdColumns.add(secondTdColumn);
ViewHelper.addColumns(createTdView, tdColumns);
DrillDownEditorInput drillDownEditorInput = new DrillDownEditorInput();
List<TdColumn> allofTdColumn = drillDownEditorInput.getColumnsByTdColumn(currentTdColumn);
Assert.assertEquals(createTdView.getColumns().size(), allofTdColumn.size());
}
/**
* Test method for
* {@link org.talend.dataprofiler.core.ui.editor.analysis.drilldown.DrillDownEditorInput#getColumnsByTdColumn(org.talend.cwm.relational.TdColumn)}
* . case3 :table is null
*/
@Test
public void testGetColumnsByTdColumnCase3() {
TdColumn currentTdColumn = RelationalFactory.eINSTANCE.createTdColumn();
TdColumn secondTdColumn = RelationalFactory.eINSTANCE.createTdColumn();
TdView createTdView = RelationalFactory.eINSTANCE.createTdView();
List<TdColumn> tdColumns = new ArrayList<TdColumn>();
tdColumns.add(currentTdColumn);
tdColumns.add(secondTdColumn);
DrillDownEditorInput drillDownEditorInput = new DrillDownEditorInput();
List<TdColumn> allofTdColumn = drillDownEditorInput.getColumnsByTdColumn(currentTdColumn);
Assert.assertEquals(createTdView.getColumns().size(), allofTdColumn.size());
}
/**
* Test method for
* {@link org.talend.dataprofiler.core.ui.editor.analysis.drilldown.DrillDownEditorInput#getColumnsByTdColumn(org.talend.cwm.relational.TdColumn)}
* . case4 :the parent of column is not belong to columnSet(for example MetadataTable)
*/
@Test
public void testGetColumnsByTdColumnCase4() {
TdColumn currentTdColumn = RelationalFactory.eINSTANCE.createTdColumn();
TdColumn secondTdColumn = RelationalFactory.eINSTANCE.createTdColumn();
List<TdColumn> tdColumns = new ArrayList<TdColumn>();
tdColumns.add(currentTdColumn);
tdColumns.add(secondTdColumn);
MetadataTable createMetadataTable = ConnectionFactory.eINSTANCE.createMetadataTable();
createMetadataTable.getFeature().addAll(tdColumns);
DrillDownEditorInput drillDownEditorInput = new DrillDownEditorInput();
List<TdColumn> allofTdColumn = drillDownEditorInput.getColumnsByTdColumn(currentTdColumn);
Assert.assertEquals(0, allofTdColumn.size());
}
}