// ============================================================================ // // 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.dq.helper; import java.util.ArrayList; import java.util.List; import junit.framework.Assert; import org.junit.Test; import org.talend.cwm.helper.TaggedValueHelper; import org.talend.dataquality.reports.ReportsFactory; import org.talend.dataquality.reports.TdReport; import org.talend.designer.core.model.utils.emf.talendfile.ContextParameterType; import org.talend.designer.core.model.utils.emf.talendfile.ContextType; import org.talend.designer.core.model.utils.emf.talendfile.TalendFileFactory; import orgomg.cwm.objectmodel.core.CoreFactory; import orgomg.cwm.objectmodel.core.TaggedValue; /** * created by xqliu on Aug 6, 2013 Detailled comment * */ public class ContextHelperTest { /** * Test method for {@link org.talend.dq.helper.ContextHelper#isContextVar(java.lang.String)}. */ @Test public void testIsContextVar() { String varName = null; Assert.assertFalse(ContextHelper.isContextVar(varName)); varName = ""; //$NON-NLS-1$ Assert.assertFalse(ContextHelper.isContextVar(varName)); varName = " "; //$NON-NLS-1$ Assert.assertFalse(ContextHelper.isContextVar(varName)); varName = "varName"; //$NON-NLS-1$ Assert.assertFalse(ContextHelper.isContextVar(varName)); varName = "context.varName"; //$NON-NLS-1$ Assert.assertTrue(ContextHelper.isContextVar(varName)); } /** * Test method for * {@link org.talend.dq.helper.ContextHelper#getContextValue(java.util.List, java.lang.String, java.lang.String)}. */ @Test public void testGetContextValue() { List<ContextType> contexts = new ArrayList<ContextType>(); ContextType ct = TalendFileFactory.eINSTANCE.createContextType(); ct.setName("default"); //$NON-NLS-1$ ContextParameterType cpt = TalendFileFactory.eINSTANCE.createContextParameterType(); cpt.setName("abc"); //$NON-NLS-1$ cpt.setValue("123"); //$NON-NLS-1$ ct.getContextParameter().add(cpt); contexts.add(ct); String defaultContextName = "default"; //$NON-NLS-1$ String str = "context.abc"; //$NON-NLS-1$ Assert.assertEquals("123", ContextHelper.getContextValue(contexts, defaultContextName, str)); //$NON-NLS-1$ str = "context.xyz"; //$NON-NLS-1$ Assert.assertEquals(str, ContextHelper.getContextValue(contexts, defaultContextName, str)); str = "realValue"; //$NON-NLS-1$ Assert.assertEquals(str, ContextHelper.getContextValue(contexts, defaultContextName, str)); } /** * Test method for {@link org.talend.dq.helper.ContextHelper#getOutputFolderFromReports(java.util.List)}. */ @Test public void testGetOutputFolderFromReports() { String empty = ""; //$NON-NLS-1$ String blank = " "; //$NON-NLS-1$ String defaultStr = "default"; //$NON-NLS-1$ String var1 = "context.outputFolder"; //$NON-NLS-1$ String var1a = "outputFolder"; //$NON-NLS-1$ String var2 = "context.of2"; //$NON-NLS-1$ String var2a = "of2"; //$NON-NLS-1$ String folder1 = "/home/user/talend/a"; //$NON-NLS-1$ String folder2 = "/home/user/talend/b"; //$NON-NLS-1$ Assert.assertNull(ContextHelper.getOutputFolderFromReports(null)); Assert.assertNull(ContextHelper.getOutputFolderFromReports(new ArrayList<TdReport>())); List<TdReport> reports = new ArrayList<TdReport>(); TdReport tdReport = ReportsFactory.eINSTANCE.createTdReport(); tdReport.setDefaultContext(defaultStr); TaggedValue tv = CoreFactory.eINSTANCE.createTaggedValue(); tv.setTag(TaggedValueHelper.OUTPUT_FOLDER_TAG); tv.setValue(empty); tdReport.getTaggedValue().add(tv); reports.add(tdReport); Assert.assertNull(ContextHelper.getOutputFolderFromReports(reports)); tv.setValue(blank); Assert.assertNull(ContextHelper.getOutputFolderFromReports(reports)); tv.setValue(folder1); Assert.assertEquals(folder1, ContextHelper.getOutputFolderFromReports(reports)); tv.setValue(var1); Assert.assertEquals(var1, ContextHelper.getOutputFolderFromReports(reports)); TdReport tdReport2 = ReportsFactory.eINSTANCE.createTdReport(); tdReport2.setDefaultContext(defaultStr); TaggedValue tv2 = CoreFactory.eINSTANCE.createTaggedValue(); tv2.setTag(TaggedValueHelper.OUTPUT_FOLDER_TAG); tv2.setValue(empty); tdReport2.getTaggedValue().add(tv2); reports.add(tdReport2); ContextType ct = TalendFileFactory.eINSTANCE.createContextType(); ct.setName(defaultStr); ContextParameterType cpt = TalendFileFactory.eINSTANCE.createContextParameterType(); cpt.setName(var1a); cpt.setValue(folder1); ct.getContextParameter().add(cpt); tdReport.getContext().add(ct); ContextType ct2 = TalendFileFactory.eINSTANCE.createContextType(); ct2.setName(defaultStr); ContextParameterType cpt2 = TalendFileFactory.eINSTANCE.createContextParameterType(); cpt2.setName(var2a); cpt2.setValue(folder2); ct2.getContextParameter().add(cpt2); tdReport2.getContext().add(ct2); // both context, different output folder tv.setValue(var1); tv2.setValue(var2); Assert.assertNull(ContextHelper.getOutputFolderFromReports(reports)); // both context, same output folder cpt2.setValue(folder1); ct2.getContextParameter().clear(); ct2.getContextParameter().add(cpt2); tdReport2.getContext().clear(); tdReport2.getContext().add(ct2); String temp = ContextHelper.getOutputFolderFromReports(reports); Assert.assertTrue(var1.equals(temp) || var2.equals(temp)); // both real folder, different output folder tv.setValue(folder1); tdReport.getTaggedValue().clear(); tdReport.getTaggedValue().add(tv); tv2.setValue(folder2); tdReport2.getTaggedValue().clear(); tdReport2.getTaggedValue().add(tv2); Assert.assertNull(ContextHelper.getOutputFolderFromReports(reports)); // both real folder, same output folder tv2.setValue(folder1); tdReport2.getTaggedValue().clear(); tdReport2.getTaggedValue().add(tv2); Assert.assertEquals(folder1, ContextHelper.getOutputFolderFromReports(reports)); // context and real folder, different output folder tv2.setValue(var2); tdReport2.getTaggedValue().clear(); tdReport2.getTaggedValue().add(tv2); cpt2.setValue(folder2); ct2.getContextParameter().clear(); ct2.getContextParameter().add(cpt2); tdReport2.getContext().clear(); tdReport2.getContext().add(ct2); Assert.assertNull(ContextHelper.getOutputFolderFromReports(reports)); // context and real folder, same output folder cpt2.setValue(folder1); ct2.getContextParameter().clear(); ct2.getContextParameter().add(cpt2); tdReport2.getContext().clear(); tdReport2.getContext().add(ct2); Assert.assertEquals(folder1, ContextHelper.getOutputFolderFromReports(reports)); // one report's output folder is empty(mean default location) tv2.setValue(empty); tdReport2.getTaggedValue().clear(); tdReport2.getTaggedValue().add(tv2); Assert.assertNull(ContextHelper.getOutputFolderFromReports(reports)); // one report's output folder is blank(mean default location) tv2.setValue(blank); tdReport2.getTaggedValue().clear(); tdReport2.getTaggedValue().add(tv2); Assert.assertNull(ContextHelper.getOutputFolderFromReports(reports)); } }