// ============================================================================
//
// 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.composite;
import static org.junit.Assert.*;
import static org.mockito.Mockito.*;
import java.util.ArrayList;
import java.util.List;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.runners.MockitoJUnitRunner;
import org.talend.core.model.metadata.builder.connection.MetadataColumn;
import org.talend.cwm.relational.TdColumn;
import org.talend.dq.helper.RepositoryNodeHelper;
import org.talend.dq.nodes.DBColumnRepNode;
import org.talend.dq.nodes.DBTableRepNode;
import org.talend.dq.nodes.DBViewRepNode;
import org.talend.dq.nodes.DFColumnRepNode;
import org.talend.dq.nodes.DFTableRepNode;
import org.talend.repository.model.IRepositoryNode;
import org.talend.repository.model.RepositoryNode;
@RunWith(MockitoJUnitRunner.class)
/**
* DOC yyin class global comment. Detailled comment
*/
public class AnalysisColumnTreeViewerTest {
// @Mock
// private ColumnMasterDetailsPage masterPage;
//
// @Mock
// private Composite parent;
//
// @Mock
// private DQRuleMasterDetailsPage dqPage;
private AnalysisColumnTreeViewer analysisColumnTreeViewer;
private JoinConditionTableViewer joinViewer;
@Before
public void createAnalysisColumnTreeViewer() throws Exception {
// analysisColumnTreeViewer = new AnalysisColumnTreeViewer(parent, masterPage);
// joinViewer = new JoinConditionTableViewer(parent, dqPage);
}
/**
* DOC yyin Comment method "setUp".
*
* @throws java.lang.Exception
*/
@Before
public void setUp() throws Exception {
// createAnalysisColumnTreeViewer();
}
/**
* DOC yyin Comment method "tearDown".
*
* @throws java.lang.Exception
*/
@After
public void tearDown() throws Exception {
}
/**
* Test method for
* {@link org.talend.dataprofiler.core.ui.editor.composite.AbstractColumnDropTree#filterInputData(java.lang.Object[])}
* . This test can NOT initialize the test class, so just copy the modified part into this test class, and test the
* modified part.
*/
@Test
public void testFilterInputData_1() {
MetadataColumn col = mock(MetadataColumn.class);
Object[] params = { col };
Object[] beforeModify = this.filterInputData_before(params);
assertNull(beforeModify);
Object[] result = filterInputData_after(params);
assertNotNull(result);
assertEquals(result.length, 1);
}
// Due to TDQ-9553 : not consider MDM related any more.
Object[] filterInputData_after(Object[] objs) {
List<IRepositoryNode> reposList = new ArrayList<IRepositoryNode>();
for (Object obj : objs) {
if (obj instanceof DBColumnRepNode || obj instanceof DFColumnRepNode) {
reposList.add((RepositoryNode) obj);
}
if (obj instanceof DBTableRepNode || obj instanceof DBViewRepNode || obj instanceof DFTableRepNode) {
List<IRepositoryNode> children = ((IRepositoryNode) obj).getChildren().get(0).getChildren();
reposList.addAll(children);
} else if (obj instanceof TdColumn) {
// MOD yyi 2012-02-29 TDQ-3605 For column set column list.
reposList.add(RepositoryNodeHelper.recursiveFind((TdColumn) obj));
} else if (obj instanceof MetadataColumn) {
// MOD yyin 2012-03-31 TDQ-4994 reopen column set analysis about fileDelimited file all items gone.
// because here did not check this kind of obj so it is not be added in the list
reposList.add(RepositoryNodeHelper.recursiveFind((MetadataColumn) obj));
}
}
if (reposList.size() == 0) {
// MOD yyi 2012-02-29 TDQ-3605 Empty column table.
return null;
}
return reposList.toArray();
}
Object[] filterInputData_before(Object[] objs) {
List<IRepositoryNode> reposList = new ArrayList<IRepositoryNode>();
for (Object obj : objs) {
if (obj instanceof DBColumnRepNode || obj instanceof DFColumnRepNode) {
reposList.add((RepositoryNode) obj);
}
if (obj instanceof DBTableRepNode || obj instanceof DBViewRepNode || obj instanceof DFTableRepNode) {
List<IRepositoryNode> children = ((IRepositoryNode) obj).getChildren().get(0).getChildren();
reposList.addAll(children);
} else if (obj instanceof TdColumn) {
// MOD yyi 2012-02-29 TDQ-3605 For column set column list.
reposList.add(RepositoryNodeHelper.recursiveFind((TdColumn) obj));
}
}
if (reposList.size() == 0) {
// MOD yyi 2012-02-29 TDQ-3605 Empty column table.
return null;
}
return reposList.toArray();
}
}