Search in sources :

Example 16 with ReturnCode

use of org.talend.utils.sugars.ReturnCode in project tdq-studio-se by Talend.

the class ImportFactoryTest method testImportParserRuleToStuctureEmptyWithoutDoubleQuote.

/**
 * Test method for
 * {@link org.talend.dataprofiler.core.pattern.ImportFactory#importParserRuleToStucture(org.talend.dataprofiler.core.ui.action.actions.ImportObject, org.eclipse.core.resources.IFolder, boolean, boolean, java.lang.String)}
 * Empty Without Double Quote.
 */
@Test
public void testImportParserRuleToStuctureEmptyWithoutDoubleQuote() throws IOException {
    // the parser rule name, use it to get the imported file name
    // $NON-NLS-1$
    String parserRuleName = "parserRule2";
    // $NON-NLS-1$
    String parserRuleFileName = parserRuleName + "_0.1.rules";
    // the expect expression's values: name and body will add double quote after import, lang will not add double
    // quote after import
    // $NON-NLS-1$
    String name = "\"\"";
    // $NON-NLS-1$
    String lang = "";
    // $NON-NLS-1$
    String body = "\"\"";
    // $NON-NLS-1$
    File dict = new File("");
    // $NON-NLS-1$
    File importFile = new File(dict.getAbsolutePath() + File.separator + "paser_rule.csv");
    if (importFile.exists()) {
        importFile.delete();
    }
    importFile.createNewFile();
    // set the csv file's head
    // $NON-NLS-1$
    String content = "\"Label\"\t\"Purpose\"\t\"Description\"\t\"Author\"\t\"Relative_Path\"\t\"Name\"\t\"Type\"\t\"Value\"\n";
    // set the csv file's content: the clumn's value is empty without double quote
    content += // $NON-NLS-1$
    "\"" + parserRuleName + // $NON-NLS-1$
    "\"\t\"\"\t\"\"\t\"trunk@talend.com\"\t\"\"\t\"\"\t\"\"\t\"\"";
    BufferedWriter output = new BufferedWriter(new FileWriter(importFile));
    output.write(content);
    output.close();
    List<File> pJarfilesMock = new ArrayList<File>();
    ImportObject importObject = ImportObject.createImportObject(importFile, pJarfilesMock);
    IFolder parserRuleFolder = ResourceManager.getOneFolder(EResourceConstant.RULES_PARSER);
    boolean skip = false;
    boolean rename = true;
    // $NON-NLS-1$
    String importItemName = "importItemName";
    List<ReturnCode> importParserRuleToStucture = ImportFactory.importParserRuleToStucture(importObject, parserRuleFolder, skip, rename, importItemName);
    for (ReturnCode rc : importParserRuleToStucture) {
        assertTrue(rc.isOk());
    }
    // the imported parser rule's name is a
    IFile parserRuleFile = parserRuleFolder.getFile(parserRuleFileName);
    ParserRule parserRule = (ParserRule) DQRuleResourceFileHelper.getInstance().findDQRule(parserRuleFile);
    List<TdExpression> expressions = parserRule.getExpression();
    for (TdExpression expression : expressions) {
        assertTrue(name.equals(expression.getName()));
        assertTrue(lang.equals(expression.getLanguage()));
        assertTrue(body.equals(expression.getBody()));
    }
}
Also used : ParserRule(org.talend.dataquality.rules.ParserRule) ReturnCode(org.talend.utils.sugars.ReturnCode) IFile(org.eclipse.core.resources.IFile) TdExpression(org.talend.cwm.relational.TdExpression) FileWriter(java.io.FileWriter) ArrayList(java.util.ArrayList) BufferedWriter(java.io.BufferedWriter) ImportObject(org.talend.dataprofiler.core.ui.action.actions.ImportObject) IFile(org.eclipse.core.resources.IFile) File(java.io.File) IFolder(org.eclipse.core.resources.IFolder) Test(org.junit.Test)

Example 17 with ReturnCode

use of org.talend.utils.sugars.ReturnCode in project tdq-studio-se by Talend.

the class ImportFactoryTest method testImportIndicatorToStucture.

/**
 * Test method for
 * {@link org.talend.dataprofiler.core.pattern.ImportFactory#importIndicatorToStucture(org.talend.dataprofiler.core.ui.action.actions.ImportObject, org.eclipse.core.resources.IFolder, boolean, boolean, java.lang.String)}
 * normal condition: the import file's extension is csv.
 */
@Test
public void testImportIndicatorToStucture() throws Exception {
    // $NON-NLS-1$
    File importFile = createImportFile(UDI_NAME, StringUtilities.getRandomString(8) + ".csv");
    assertTrue(importFile.exists());
    assertTrue(importFile.isFile());
    assertTrue(importFile.length() > 0);
    List<File> pJarfiles = new ArrayList<File>();
    ImportObject importObject = ImportObject.createImportObject(importFile, pJarfiles);
    IFolder udiFolder = ResourceManager.getUDIFolder();
    boolean skip = false;
    boolean rename = true;
    List<ReturnCode> rc = ImportFactory.importIndicatorToStucture(importObject, udiFolder, skip, rename, UDI_NAME);
    assertTrue(rc.size() == 1);
    assertTrue(rc.get(0).isOk());
    IndicatorDefinition indicatorDefinition = null;
    RootContainer<String, IRepositoryViewObject> tdqViewObjects = ProxyRepositoryFactory.getInstance().getTdqRepositoryViewObjects(ERepositoryObjectType.TDQ_USERDEFINE_INDICATORS, ERepositoryObjectType.getFolderName(ERepositoryObjectType.TDQ_USERDEFINE_INDICATORS));
    for (IRepositoryViewObject viewObject : tdqViewObjects.getMembers()) {
        IndicatorDefinition indDefTemp = ((TDQIndicatorDefinitionItem) viewObject.getProperty().getItem()).getIndicatorDefinition();
        if (UDI_NAME.equals(indDefTemp.getName())) {
            indicatorDefinition = indDefTemp;
            break;
        }
    }
    assertNotNull(indicatorDefinition);
    if (indicatorDefinition != null) {
        EList<IndicatorDefinitionParameter> indDefParas = indicatorDefinition.getIndicatorDefinitionParameter();
        assertFalse(indDefParas.isEmpty());
        // String paraString = StringUtils.replace(IND_DEF_PARA_STRING, "\"\"", "\""); //$NON-NLS-1$ //$NON-NLS-2$
        for (IndicatorDefinitionParameter indDefPara : indDefParas) {
            String temp = indDefPara.getKey() + UDIHelper.PARA_SEPARATE_1 + indDefPara.getValue() + UDIHelper.PARA_SEPARATE_2;
            assertTrue(IND_DEF_PARA_STRING.indexOf(temp) > -1);
        }
    }
    importFile.delete();
}
Also used : ReturnCode(org.talend.utils.sugars.ReturnCode) TDQIndicatorDefinitionItem(org.talend.dataquality.properties.TDQIndicatorDefinitionItem) ArrayList(java.util.ArrayList) IndicatorDefinition(org.talend.dataquality.indicators.definition.IndicatorDefinition) ImportObject(org.talend.dataprofiler.core.ui.action.actions.ImportObject) IRepositoryViewObject(org.talend.core.model.repository.IRepositoryViewObject) IndicatorDefinitionParameter(org.talend.dataquality.indicators.definition.IndicatorDefinitionParameter) IFile(org.eclipse.core.resources.IFile) File(java.io.File) IFolder(org.eclipse.core.resources.IFolder) Test(org.junit.Test)

Example 18 with ReturnCode

use of org.talend.utils.sugars.ReturnCode in project tdq-studio-se by Talend.

the class TOPRepositoryServiceTest method testSourceFileOpening2.

/**
 * 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;
    // $NON-NLS-1$
    String msg = "msg";
    ReturnCode rc = new ReturnCode(msg, ok);
    // $NON-NLS-1$
    stub(method(WorkspaceResourceHelper.class, "checkSourceFileNodeOpening", SourceFileRepNode.class)).toReturn(rc);
    TOPRepositoryService service = new TOPRepositoryService();
    assertTrue(service.sourceFileOpening(folderNodeMock));
}
Also used : ReturnCode(org.talend.utils.sugars.ReturnCode) IRepositoryNode(org.talend.repository.model.IRepositoryNode) ArrayList(java.util.ArrayList) SourceFileSubFolderNode(org.talend.dq.nodes.SourceFileSubFolderNode) SourceFileRepNode(org.talend.dq.nodes.SourceFileRepNode) PrepareForTest(org.powermock.core.classloader.annotations.PrepareForTest) Test(org.junit.Test)

Example 19 with ReturnCode

use of org.talend.utils.sugars.ReturnCode in project tdq-studio-se by Talend.

the class ImportFactory method importParserRuleToStucture.

/**
 * DOC xqliu Comment method "importParserRuleToStucture".
 *
 * @param importObject
 * @param selectionFolder
 * @param skip
 * @param rename
 * @param importItemName
 * @return
 */
public static List<ReturnCode> importParserRuleToStucture(ImportObject importObject, IFolder selectionFolder, boolean skip, boolean rename, String importItemName) {
    List<ReturnCode> information = new ArrayList<ReturnCode>();
    Set<String> names = DQRuleResourceFileHelper.getInstance().getAllParserRlueNames(selectionFolder);
    ParserRuleParameters prParameters = new ImportFactory().new ParserRuleParameters();
    File importFile = importObject.getObjFile();
    String fileExtName = getFileExtName(importFile);
    if (FileUtils.isCSV(fileExtName)) {
        // $NON-NLS-1$
        String name = "";
        boolean isNeedToCreate = true;
        try {
            CSVReader reader = FileUtils.createCSVReader(importFile, FileUtils.TEXT_QUAL, FileUtils.ESCAPE_CHAR);
            reader.setSkipEmptyRecords(true);
            reader.readHeaders();
            // $NON-NLS-1$
            java.text.SimpleDateFormat simpleDateFormat = new java.text.SimpleDateFormat("yyyyMMddHHmmssSSS");
            while (reader.readNext()) {
                name = reader.get(ParserRuleToExcelEnum.Label.getLiteral());
                if (names.contains(name)) {
                    if (skip) {
                        information.add(new ReturnCode(DefaultMessagesImpl.getString("ImportFactory.ParserRuleImported", name), // $NON-NLS-1$
                        false));
                        isNeedToCreate = false;
                        break;
                    }
                    if (rename) {
                        // $NON-NLS-1$ //$NON-NLS-2$
                        name = name + "(" + simpleDateFormat.format(new Date()) + Math.random() + ")";
                    }
                }
                prParameters.label = reader.get(ParserRuleToExcelEnum.Label.getLiteral());
                prParameters.auther = reader.get(ParserRuleToExcelEnum.Author.getLiteral());
                prParameters.description = reader.get(ParserRuleToExcelEnum.Description.getLiteral());
                prParameters.purpose = reader.get(ParserRuleToExcelEnum.Purpose.getLiteral());
                ParserRuleTdExpresstion prExpresstion = new ImportFactory().new ParserRuleTdExpresstion();
                prExpresstion.name = addQual(reader.get(ParserRuleToExcelEnum.Name.getLiteral()));
                String type = reader.get(ParserRuleToExcelEnum.Type.getLiteral());
                prExpresstion.type = type.isEmpty() || type.equals("\"\"") || type == null ? // $NON-NLS-1$
                reader.get(ParserRuleToExcelEnum.Language.getLiteral()) : type;
                String value = addQual(reader.get(ParserRuleToExcelEnum.Value.getLiteral()));
                prExpresstion.value = value.isEmpty() || value.equals("") || value == null ? addQual(// $NON-NLS-1$
                reader.get(ParserRuleToExcelEnum.Body.getLiteral())) : value;
                prParameters.prExpresstions.add(prExpresstion);
            }
            if (isNeedToCreate) {
                // 
                if (name.trim().equals("")) {
                    // $NON-NLS-1$
                    information.add(new ReturnCode(// $NON-NLS-1$
                    DefaultMessagesImpl.getString(// $NON-NLS-1$
                    "ImportFactory.importedEmptyParserRule"), true));
                } else {
                    names.add(name);
                    information.add(new ReturnCode(// $NON-NLS-1$
                    DefaultMessagesImpl.getString(// $NON-NLS-1$
                    "ImportFactory.importedParserRuleSucess", name, selectionFolder.getProjectRelativePath().toString()), true));
                    createAndStoreParserRule(prParameters, selectionFolder, name);
                }
            }
            reader.close();
        } catch (Exception e) {
            log.error(e, e);
            information.add(new ReturnCode(DefaultMessagesImpl.getString("ImportFactory.importedParserRuleFailed", name), // $NON-NLS-1$
            false));
        }
    }
    importObject.copyJarFiles();
    // ADD xqliu 2012-04-27 TDQ-5149
    checkImportEvent(importItemName, information);
    // ~ TDQ-5149
    return information;
}
Also used : TypedReturnCode(org.talend.utils.sugars.TypedReturnCode) ReturnCode(org.talend.utils.sugars.ReturnCode) CSVReader(com.talend.csv.CSVReader) ArrayList(java.util.ArrayList) Date(java.util.Date) CoreException(org.eclipse.core.runtime.CoreException) TalendInternalPersistenceException(org.talend.core.exception.TalendInternalPersistenceException) IOException(java.io.IOException) IFile(org.eclipse.core.resources.IFile) File(java.io.File)

Example 20 with ReturnCode

use of org.talend.utils.sugars.ReturnCode in project tdq-studio-se by Talend.

the class AElementPersistanceRealTest method testSaveWithoutDependenciesReport.

/**
 * Test method for
 * {@link org.talend.dq.writer.AElementPersistance#saveWithoutDependencies(org.talend.core.model.properties.Item, orgomg.cwm.objectmodel.core.ModelElement)}
 * .
 *
 * @throws PersistenceException
 */
@Test
public void testSaveWithoutDependenciesReport() throws PersistenceException {
    ReportWriter createReportWriter = ElementWriterFactory.getInstance().createReportWriter();
    // create analysis
    Analysis createAnalysis = AnalysisFactory.eINSTANCE.createAnalysis();
    AnalysisResult createAnalysisResult = AnalysisFactory.eINSTANCE.createAnalysisResult();
    createAnalysis.setResults(createAnalysisResult);
    // $NON-NLS-1$
    createAnalysis.setName("AElementPersistanceRealTestanalysis6");
    // create analysis item
    TDQAnalysisItem createTDQAnalysisItem = PropertiesFactory.eINSTANCE.createTDQAnalysisItem();
    createTDQAnalysisItem.setAnalysis(createAnalysis);
    Property createAnalysisProperty = org.talend.core.model.properties.PropertiesFactory.eINSTANCE.createProperty();
    // $NON-NLS-1$
    createAnalysisProperty.setLabel("AElementPersistanceRealTestanalysis6");
    createAnalysisProperty.setId(EcoreUtil.generateUUID());
    createTDQAnalysisItem.setProperty(createAnalysisProperty);
    ProxyRepositoryFactory.getInstance().create(createTDQAnalysisItem, Path.EMPTY, false);
    // create report
    TdReport createTdReport = ReportsFactory.eINSTANCE.createTdReport();
    TDQReportItem createTDQReportItem = PropertiesFactory.eINSTANCE.createTDQReportItem();
    createTDQReportItem.setReport(createTdReport);
    Property createReportProperty = org.talend.core.model.properties.PropertiesFactory.eINSTANCE.createProperty();
    // $NON-NLS-1$
    createReportProperty.setLabel("AElementPersistanceRealTestreport6");
    createTDQReportItem.setProperty(createReportProperty);
    createReportProperty.setId(EcoreUtil.generateUUID());
    ProxyRepositoryFactory.getInstance().create(createTDQReportItem, Path.EMPTY, false);
    createTdReport.addAnalysis(createAnalysis);
    // $NON-NLS-1$
    String repName = "rep61";
    // $NON-NLS-1$
    String exceptedFileName = repName + "_0.1.rep";
    createTdReport.setName(repName);
    ReturnCode create = createReportWriter.saveWithoutDependencies(createTDQReportItem, createTdReport);
    assertTrue(create.isOk());
    Assert.assertEquals(exceptedFileName, createTDQReportItem.getFilename());
    // $NON-NLS-1$
    String repName2 = "rep62";
    // $NON-NLS-1$
    String exceptedFileName2 = repName2 + "_0.1.rep";
    createTdReport.setName(repName2);
    create = createReportWriter.saveWithDependencies(createTDQReportItem, createTdReport);
    assertTrue(create.isOk());
    Assert.assertEquals(exceptedFileName2, createTDQReportItem.getFilename());
}
Also used : ReportWriter(org.talend.dq.writer.impl.ReportWriter) ReturnCode(org.talend.utils.sugars.ReturnCode) Analysis(org.talend.dataquality.analysis.Analysis) TdReport(org.talend.dataquality.reports.TdReport) Property(org.talend.core.model.properties.Property) AnalysisResult(org.talend.dataquality.analysis.AnalysisResult) TDQReportItem(org.talend.dataquality.properties.TDQReportItem) TDQAnalysisItem(org.talend.dataquality.properties.TDQAnalysisItem) Test(org.junit.Test)

Aggregations

ReturnCode (org.talend.utils.sugars.ReturnCode)175 ArrayList (java.util.ArrayList)42 TypedReturnCode (org.talend.utils.sugars.TypedReturnCode)42 Test (org.junit.Test)29 File (java.io.File)26 Connection (org.talend.core.model.metadata.builder.connection.Connection)26 Indicator (org.talend.dataquality.indicators.Indicator)25 ModelElement (orgomg.cwm.objectmodel.core.ModelElement)20 DatabaseConnection (org.talend.core.model.metadata.builder.connection.DatabaseConnection)18 Analysis (org.talend.dataquality.analysis.Analysis)18 Property (org.talend.core.model.properties.Property)17 IFile (org.eclipse.core.resources.IFile)16 IRepositoryNode (org.talend.repository.model.IRepositoryNode)16 IFolder (org.eclipse.core.resources.IFolder)15 SQLException (java.sql.SQLException)14 PersistenceException (org.talend.commons.exception.PersistenceException)11 TdColumn (org.talend.cwm.relational.TdColumn)11 IOException (java.io.IOException)10 EObject (org.eclipse.emf.ecore.EObject)10 IMetadataConnection (org.talend.core.model.metadata.IMetadataConnection)10