// ============================================================================ // // 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.service; import static org.junit.Assert.*; import static org.mockito.Mockito.*; import static org.powermock.api.support.membermodification.MemberMatcher.*; import static org.powermock.api.support.membermodification.MemberModifier.*; import java.util.ArrayList; import java.util.List; import org.junit.Assert; import org.junit.Rule; import org.junit.Test; import org.powermock.api.mockito.PowerMockito; import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.junit4.rule.PowerMockRule; import org.talend.core.ITDQRepositoryService; import org.talend.core.model.metadata.builder.connection.DatabaseConnection; import org.talend.core.model.metadata.builder.connection.DelimitedFileConnection; import org.talend.core.model.metadata.builder.connection.MDMConnection; import org.talend.core.model.properties.ConnectionItem; import org.talend.core.model.properties.Property; import org.talend.core.model.repository.IRepositoryViewObject; import org.talend.dataprofiler.core.helper.WorkspaceResourceHelper; import org.talend.dq.helper.EObjectHelper; import org.talend.dq.nodes.SourceFileRepNode; import org.talend.dq.nodes.SourceFileSubFolderNode; import org.talend.repository.model.IRepositoryNode; import org.talend.utils.sugars.ReturnCode; import orgomg.cwm.objectmodel.core.ModelElement; /** * DOC qiongli class global comment. Detailled comment <br/> * * $Id: talend.epf 55206 2011-02-15 17:32:14Z mhirt $ * */ @PrepareForTest({ WorkspaceResourceHelper.class }) public class TOPRepositoryServiceTest { @Rule public PowerMockRule powerMockRule = new PowerMockRule(); private ITDQRepositoryService tdqRepService; /* * (non-Jsdoc) * * @see junit.framework.TestCase#setUp() */ protected void setUp() throws Exception { tdqRepService = new TOPRepositoryService();// (ITDQRepositoryService) // GlobalServiceRegister.getDefault().getService(ITDQRepositoryService.class); } /** * DOC qiongli Comment method "tearDown". * * @throws java.lang.Exception */ // @After // public void tearDown() throws Exception { // } /** * Test method for {@link org.talend.dataprofiler.core.service.TOPRepositoryService#updateImpactOnAnalysis(org.talend.core.model.properties.ConnectionItem)}. */ @Test public void testUpdateImpactOnAnalysis() { // fail("Not yet implemented"); } /** * Test method for {@link org.talend.dataprofiler.core.service.TOPRepositoryService#confirmUpdateAnalysis(org.talend.core.model.properties.ConnectionItem)}. */ @Test public void testConfirmUpdateAnalysis() { // fail("Not yet implemented"); } /** * Test method for {@link org.talend.dataprofiler.core.service.TOPRepositoryService#hasClientDependences(org.talend.core.model.properties.ConnectionItem)}. */ @Test public void testHasClientDependences() { // ConnectionItem connectionItem = mock(ConnectionItem.class); // Connection connection = mock(Connection.class); // when(connectionItem.getConnection()).thenReturn(connection); // List<ModelElement> clientDependences = new ArrayList<ModelElement>(); // ModelElement mod = mock(ModelElement.class); // clientDependences.add(mod); // PowerMockito.mockStatic(EObjectHelper.class); // EObjectHelper eobj = mock(EObjectHelper.class); // when(EObjectHelper.getDependencyClients(connection)).thenReturn(clientDependences); // TOPRepositoryService service = new TOPRepositoryService(); // assertTrue(service.hasClientDependences(connectionItem)); } /** * Test method for * {@link org.talend.dataprofiler.core.service.TOPRepositoryService#sourceFileOpening(org.talend.repository.model.RepositoryNode)} * . */ @Test public void testSourceFileOpening() { // test for SourceFileRepNode SourceFileRepNode fileNodeMock = mock(SourceFileRepNode.class); String nodeLabel = "nodeLabel"; //$NON-NLS-1$ when(fileNodeMock.getLabel()).thenReturn(nodeLabel); stub(method(WorkspaceResourceHelper.class, "sourceFileHasBeenOpened", SourceFileRepNode.class)).toReturn(Boolean.TRUE); //$NON-NLS-1$ TOPRepositoryService service = new TOPRepositoryService(); assertTrue(service.sourceFileOpening(fileNodeMock)); } /** * Test method for * {@link org.talend.dataprofiler.core.service.TOPRepositoryService#sourceFileOpening(org.talend.repository.model.RepositoryNode)} * . */ @Test public void testSourceFileOpening2() { // test for SourceFileSubFolderNode SourceFileSubFolderNode folderNodeMock = mock(SourceFileSubFolderNode.class); SourceFileRepNode nodeMock = mock(SourceFileRepNode.class); List<IRepositoryNode> nodeList = new ArrayList<IRepositoryNode>(); nodeList.add(nodeMock); when(folderNodeMock.getChildren()).thenReturn(nodeList); boolean ok = Boolean.TRUE; String msg = "msg"; //$NON-NLS-1$ ReturnCode rc = new ReturnCode(msg, ok); stub(method(WorkspaceResourceHelper.class, "checkSourceFileNodeOpening", SourceFileRepNode.class)).toReturn(rc); //$NON-NLS-1$ TOPRepositoryService service = new TOPRepositoryService(); assertTrue(service.sourceFileOpening(folderNodeMock)); } /** * Test method for * {@link org.talend.dataprofiler.core.service.TOPRepositoryService#removeAliasInSQLExplorer(org.talend.repository.model.IRepositoryNode)} * . */ public void testRemoveAliasInSQLExplorer() { IRepositoryNode child = mock(IRepositoryNode.class); IRepositoryViewObject obj = mock(IRepositoryViewObject.class); when(child.getObject()).thenReturn(obj); Property pro = mock(Property.class); when(obj.getProperty()).thenReturn(pro); ConnectionItem item = mock(ConnectionItem.class); when(pro.getItem()).thenReturn(item); MDMConnection mdm = mock(MDMConnection.class); DelimitedFileConnection dfile = mock(DelimitedFileConnection.class); DatabaseConnection dbc = mock(DatabaseConnection.class); when(item.getConnection()).thenReturn(dbc).thenReturn(dfile).thenReturn(mdm); List<ModelElement> dependencyClients = new ArrayList<ModelElement>(); ModelElement m1 = mock(ModelElement.class); dependencyClients.add(m1); PowerMockito.mockStatic(EObjectHelper.class); when(EObjectHelper.getDependencyClients(dbc)).thenReturn(dependencyClients); when(EObjectHelper.getDependencyClients(mdm)).thenReturn(dependencyClients); when(EObjectHelper.getDependencyClients(dfile)).thenReturn(dependencyClients); Assert.assertFalse(tdqRepService.removeAliasInSQLExplorer(child)); Assert.assertFalse(tdqRepService.removeAliasInSQLExplorer(child)); Assert.assertFalse(tdqRepService.removeAliasInSQLExplorer(child)); } }