Search in sources :

Example 1 with PatternComponent

use of org.talend.dataquality.domain.pattern.PatternComponent in project tdq-studio-se by Talend.

the class DbmsLanguageTest method testGetRegexpGetMssqlFromContainDefault.

/**
 * Test method for
 * {@link org.talend.dq.dbms.DbmsLanguage#getRegexp(org.talend.dataquality.domain.pattern.Pattern, boolean)}.
 */
@Test
public void testGetRegexpGetMssqlFromContainDefault() {
    // Pattern
    Pattern createPattern = PatternFactory.eINSTANCE.createPattern();
    // ~Pattern
    // init java Expression data
    RegularExpression createJavaRegularExpression = PatternFactory.eINSTANCE.createRegularExpression();
    TdExpression createJavaTdExpression = RelationalFactory.eINSTANCE.createTdExpression();
    createJavaTdExpression.setBody(JavaRegex);
    createJavaTdExpression.setLanguage(SupportDBUrlType.JAVADEFAULTURL.getLanguage());
    createJavaRegularExpression.setExpression(createJavaTdExpression);
    createJavaRegularExpression.setExpressionType(ExpressionType.REGEXP.getLiteral());
    EList<PatternComponent> components = createPattern.getComponents();
    components.add(createJavaRegularExpression);
    // ~init java Expression data
    // init sql Expression data
    RegularExpression createSqlRegularExpression = PatternFactory.eINSTANCE.createRegularExpression();
    TdExpression createSqlTdExpression = RelationalFactory.eINSTANCE.createTdExpression();
    createSqlTdExpression.setBody(SqlRegex);
    createSqlTdExpression.setLanguage(ExecutionLanguage.SQL.getName());
    createSqlRegularExpression.setExpression(createSqlTdExpression);
    createSqlRegularExpression.setExpressionType(ExpressionType.REGEXP.getLiteral());
    components = createPattern.getComponents();
    components.add(createSqlRegularExpression);
    // ~init sql Expression data
    // init mssql Expression data
    RegularExpression createMssqlRegularExpression = PatternFactory.eINSTANCE.createRegularExpression();
    TdExpression createMssqlTdExpression = RelationalFactory.eINSTANCE.createTdExpression();
    createMssqlTdExpression.setBody(MssqlRegex);
    createMssqlTdExpression.setLanguage(SupportDBUrlType.MSSQLDEFAULTURL.getLanguage());
    createMssqlRegularExpression.setExpression(createMssqlTdExpression);
    createMssqlRegularExpression.setExpressionType(ExpressionType.REGEXP.getLiteral());
    components = createPattern.getComponents();
    components.add(createMssqlRegularExpression);
    try {
        DbmsLanguage dbms = DbmsLanguageFactory.createDbmsLanguage(SupportDBUrlType.MSSQLDEFAULTURL);
        Assert.assertTrue(MssqlRegex.equalsIgnoreCase(dbms.getRegexp(createPattern).getBody()));
    } catch (Exception e) {
        fail(e.getMessage());
    }
}
Also used : Pattern(org.talend.dataquality.domain.pattern.Pattern) RegularExpression(org.talend.dataquality.domain.pattern.RegularExpression) TdExpression(org.talend.cwm.relational.TdExpression) PatternComponent(org.talend.dataquality.domain.pattern.PatternComponent) Test(org.junit.Test)

Example 2 with PatternComponent

use of org.talend.dataquality.domain.pattern.PatternComponent in project tdq-studio-se by Talend.

the class DbmsLanguageTest method testGetRegexpGetNullWhenRegexStringIsNull.

/**
 * Test method for
 * {@link org.talend.dq.dbms.DbmsLanguage#getRegexp(org.talend.dataquality.domain.pattern.Pattern, boolean)}.
 */
@Test
public void testGetRegexpGetNullWhenRegexStringIsNull() {
    // Pattern
    Pattern createPattern = PatternFactory.eINSTANCE.createPattern();
    // ~Pattern
    // init sql Expression data
    RegularExpression createSqlRegularExpression = PatternFactory.eINSTANCE.createRegularExpression();
    EList<PatternComponent> components = createPattern.getComponents();
    components.add(createSqlRegularExpression);
    // ~init sql Expression data
    try {
        DbmsLanguage dbms = DbmsLanguageFactory.createDbmsLanguage(SupportDBUrlType.MSSQLDEFAULTURL);
        Assert.assertTrue(null == dbms.getRegexp(createPattern));
    } catch (Exception e) {
        fail(e.getMessage());
    }
}
Also used : Pattern(org.talend.dataquality.domain.pattern.Pattern) RegularExpression(org.talend.dataquality.domain.pattern.RegularExpression) PatternComponent(org.talend.dataquality.domain.pattern.PatternComponent) Test(org.junit.Test)

Example 3 with PatternComponent

use of org.talend.dataquality.domain.pattern.PatternComponent in project tdq-studio-se by Talend.

the class DbmsLanguageTest method testGetRegexpGetJavaFromContainDefault.

/**
 * Test method for
 * {@link org.talend.dq.dbms.DbmsLanguage#getRegexp(org.talend.dataquality.domain.pattern.Pattern, boolean)}.
 */
@Test
public void testGetRegexpGetJavaFromContainDefault() {
    // Pattern
    Pattern createPattern = PatternFactory.eINSTANCE.createPattern();
    // ~Pattern
    // init sql Expression data
    RegularExpression createSqlRegularExpression = PatternFactory.eINSTANCE.createRegularExpression();
    TdExpression createSqlTdExpression = RelationalFactory.eINSTANCE.createTdExpression();
    createSqlTdExpression.setBody(SqlRegex);
    createSqlTdExpression.setLanguage(ExecutionLanguage.SQL.getName());
    createSqlRegularExpression.setExpression(createSqlTdExpression);
    createSqlRegularExpression.setExpressionType(ExpressionType.REGEXP.getLiteral());
    EList<PatternComponent> components = createPattern.getComponents();
    components.add(createSqlRegularExpression);
    // ~init sql Expression data
    // init mssql Expression data
    RegularExpression createMssqlRegularExpression = PatternFactory.eINSTANCE.createRegularExpression();
    TdExpression createMssqlTdExpression = RelationalFactory.eINSTANCE.createTdExpression();
    createMssqlTdExpression.setBody(MssqlRegex);
    createMssqlTdExpression.setLanguage(SupportDBUrlType.MSSQLDEFAULTURL.getLanguage());
    createMssqlRegularExpression.setExpression(createMssqlTdExpression);
    createMssqlRegularExpression.setExpressionType(ExpressionType.REGEXP.getLiteral());
    components = createPattern.getComponents();
    components.add(createMssqlRegularExpression);
    // ~init mssql Expression data
    // init java Expression data
    RegularExpression createJavaRegularExpression = PatternFactory.eINSTANCE.createRegularExpression();
    TdExpression createJavaTdExpression = RelationalFactory.eINSTANCE.createTdExpression();
    createJavaTdExpression.setBody(JavaRegex);
    createJavaTdExpression.setLanguage(SupportDBUrlType.JAVADEFAULTURL.getLanguage());
    createJavaRegularExpression.setExpression(createJavaTdExpression);
    createJavaRegularExpression.setExpressionType(ExpressionType.REGEXP.getLiteral());
    components = createPattern.getComponents();
    components.add(createJavaRegularExpression);
    try {
        DbmsLanguage dbms = DbmsLanguageFactory.createDbmsLanguage(SupportDBUrlType.JAVADEFAULTURL);
        Assert.assertTrue(JavaRegex.equalsIgnoreCase(dbms.getRegexp(createPattern).getBody()));
    } catch (Exception e) {
        fail(e.getMessage());
    }
}
Also used : Pattern(org.talend.dataquality.domain.pattern.Pattern) RegularExpression(org.talend.dataquality.domain.pattern.RegularExpression) TdExpression(org.talend.cwm.relational.TdExpression) PatternComponent(org.talend.dataquality.domain.pattern.PatternComponent) Test(org.junit.Test)

Example 4 with PatternComponent

use of org.talend.dataquality.domain.pattern.PatternComponent in project tdq-studio-se by Talend.

the class FileSystemImportWriterTest method testMergePattern.

/**
 * Test method for
 * {@link org.talend.dataprofiler.core.ui.imex.model.FileSystemImportWriter#mergePattern(org.talend.dataprofiler.core.ui.imex.model.ItemRecord, org.talend.dataquality.domain.pattern.Pattern)}
 * .
 *
 * @throws MalformedURLException
 */
@Test
public void testMergePattern() throws MalformedURLException {
    // import object
    ItemRecord importItem = mock(ItemRecord.class);
    Pattern importPattern = mock(Pattern.class);
    when(importItem.getElement()).thenReturn(importPattern);
    // old object
    TDQPatternItem oldPatternItem = mock(TDQPatternItem.class);
    Pattern oldPattern = mock(Pattern.class);
    when(oldPatternItem.getPattern()).thenReturn(oldPattern);
    // for imported pattern's expression
    InternalEObject eo = mock(InternalEObject.class);
    EList<PatternComponent> importComponents = new EObjectContainmentEList<PatternComponent>(PatternComponent.class, eo, PatternPackage.PATTERN__COMPONENTS);
    RegularExpression re = PatternFactory.eINSTANCE.createRegularExpression();
    TdExpression td = RelationalFactory.eINSTANCE.createTdExpression();
    // $NON-NLS-1$
    td.setBody("sql body");
    // $NON-NLS-1$
    td.setLanguage("SQL");
    // $NON-NLS-1$
    td.setModificationDate("20130101");
    re.setExpression(td);
    importComponents.add(re);
    RegularExpression re3 = PatternFactory.eINSTANCE.createRegularExpression();
    TdExpression td3 = RelationalFactory.eINSTANCE.createTdExpression();
    // $NON-NLS-1$
    td3.setBody("imported body");
    // $NON-NLS-1$
    td3.setLanguage("MYSQL");
    // $NON-NLS-1$
    td3.setModificationDate("20130101");
    re3.setExpression(td3);
    importComponents.add(re3);
    RegularExpression re4 = PatternFactory.eINSTANCE.createRegularExpression();
    TdExpression td4 = RelationalFactory.eINSTANCE.createTdExpression();
    // $NON-NLS-1$
    td4.setBody("imported 4 body");
    // $NON-NLS-1$
    td4.setLanguage("Default");
    td4.setModificationDate(null);
    re4.setExpression(td4);
    importComponents.add(re4);
    when(importPattern.getComponents()).thenReturn(importComponents);
    // for imported pattern's supplierDependencies
    Analysis analysis = mock(Analysis.class);
    Dependency dependency = mock(Dependency.class);
    when(dependency.getKind()).thenReturn(DependenciesHandler.USAGE);
    EList<ModelElement> analysisList = new BasicEList<ModelElement>();
    analysisList.add(analysis);
    when(dependency.getClient()).thenReturn(analysisList);
    when(analysis.eIsProxy()).thenReturn(false);
    // $NON-NLS-1$
    File file = new File("C://Users//msjian//Desktop//myusetest//AA//TDQ_Data Profiling//Analyses//k_0.1.ana");
    org.eclipse.emf.common.util.URI uri = URI.createFileURI(file.toURL().getPath().substring(1));
    Resource resource = mock(Resource.class);
    when(analysis.eResource()).thenReturn(resource);
    when(resource.getURI()).thenReturn(uri);
    PowerMockito.mockStatic(ResourceManager.class);
    IProject pro = mock(IProject.class);
    when(ResourceManager.getRootProject()).thenReturn(pro);
    // $NON-NLS-1$
    when(pro.getLocation()).thenReturn(new Path("D:\\worspace\\workspace_TDQEE_5.3\\A"));
    EList<ModelElement> patternlist = mock(EObjectContainmentEList.class);
    patternlist.add(importPattern);
    when(dependency.getSupplier()).thenReturn(patternlist);
    EList<Dependency> supplierDependencies_old = new BasicEList<Dependency>();
    when(oldPattern.getSupplierDependency()).thenReturn(supplierDependencies_old);
    Assert.assertEquals(0, oldPattern.getSupplierDependency().size());
    EList<Dependency> supplierDependencies_import = new BasicEList<Dependency>();
    supplierDependencies_import.add(dependency);
    when(importPattern.getSupplierDependency()).thenReturn(supplierDependencies_import);
    Assert.assertEquals(1, importPattern.getSupplierDependency().size());
    PowerMockito.mockStatic(DependenciesHandler.class);
    DependenciesHandler instance = mock(DependenciesHandler.class);
    when(DependenciesHandler.getInstance()).thenReturn(instance);
    TypedReturnCode<Dependency> rc = new TypedReturnCode<Dependency>();
    rc.setObject(dependency);
    when(instance.setUsageDependencyOn(analysis, oldPattern)).thenReturn(rc);
    when(oldPattern.getSupplierDependency()).thenReturn(supplierDependencies_import);
    // for system pattern's expression
    EList<PatternComponent> components = new EObjectContainmentEList<PatternComponent>(PatternComponent.class, eo, PatternPackage.PATTERN__COMPONENTS);
    RegularExpression re2 = PatternFactory.eINSTANCE.createRegularExpression();
    TdExpression td2 = RelationalFactory.eINSTANCE.createTdExpression();
    // $NON-NLS-1$
    td2.setBody("system 2 body");
    // $NON-NLS-1$
    td2.setLanguage("MYSQL");
    // $NON-NLS-1$
    td2.setModificationDate("20120101");
    re2.setExpression(td2);
    components.add(re2);
    // for re5: should be replace by re4
    RegularExpression re5 = PatternFactory.eINSTANCE.createRegularExpression();
    TdExpression td5 = RelationalFactory.eINSTANCE.createTdExpression();
    // $NON-NLS-1$
    td5.setBody("system 5 body");
    // $NON-NLS-1$
    td5.setLanguage("Default");
    td5.setModificationDate(null);
    re5.setExpression(td5);
    components.add(re5);
    when(oldPattern.getComponents()).thenReturn(components);
    ElementWriterFactory ewFactory = mock(ElementWriterFactory.class);
    PatternWriter pw = mock(PatternWriter.class);
    when(pw.save(oldPatternItem, true)).thenReturn(null);
    // $NON-NLS-1$
    stub(method(ElementWriterFactory.class, "getInstance")).toReturn(ewFactory);
    when(ewFactory.createPatternWriter()).thenReturn(pw);
    writer.mergePattern(importItem, oldPatternItem);
    for (PatternComponent component : components) {
        TdExpression ex = ((RegularExpression) component).getExpression();
        if (ex.getLanguage().equals("SQL")) {
            // $NON-NLS-1$
            // $NON-NLS-1$
            Assert.assertEquals("sql body", ex.getBody());
        } else if (ex.getLanguage().equals("MYSQL")) {
            // $NON-NLS-1$
            // $NON-NLS-1$
            Assert.assertEquals("imported body", ex.getBody());
        } else if (ex.getLanguage().equals("Default")) {
            // $NON-NLS-1$
            // $NON-NLS-1$
            Assert.assertEquals("imported 4 body", ex.getBody());
        }
    }
    Assert.assertNotNull(oldPattern.getSupplierDependency());
    Assert.assertEquals(1, oldPattern.getSupplierDependency().size());
}
Also used : URI(org.eclipse.emf.common.util.URI) PatternWriter(org.talend.dq.writer.impl.PatternWriter) TDQPatternItem(org.talend.dataquality.properties.TDQPatternItem) ElementWriterFactory(org.talend.dq.writer.impl.ElementWriterFactory) ModelElement(orgomg.cwm.objectmodel.core.ModelElement) EObjectContainmentEList(org.eclipse.emf.ecore.util.EObjectContainmentEList) DependenciesHandler(org.talend.cwm.dependencies.DependenciesHandler) Path(org.eclipse.core.runtime.Path) Pattern(org.talend.dataquality.domain.pattern.Pattern) RegularExpression(org.talend.dataquality.domain.pattern.RegularExpression) TdExpression(org.talend.cwm.relational.TdExpression) BasicEList(org.eclipse.emf.common.util.BasicEList) Resource(org.eclipse.emf.ecore.resource.Resource) Dependency(orgomg.cwm.objectmodel.core.Dependency) IProject(org.eclipse.core.resources.IProject) Analysis(org.talend.dataquality.analysis.Analysis) TypedReturnCode(org.talend.utils.sugars.TypedReturnCode) PatternComponent(org.talend.dataquality.domain.pattern.PatternComponent) File(java.io.File) InternalEObject(org.eclipse.emf.ecore.InternalEObject) PrepareForTest(org.powermock.core.classloader.annotations.PrepareForTest) Test(org.junit.Test)

Example 5 with PatternComponent

use of org.talend.dataquality.domain.pattern.PatternComponent in project tdq-studio-se by Talend.

the class RegexpMatchingIndicatorImplTest method testGetRegexFail1NotJavaRegex.

/**
 * Test method for {@link org.talend.dataquality.indicators.impl.RegexpMatchingIndicatorImpl#getJavaRegex()}.
 */
@Test
public void testGetRegexFail1NotJavaRegex() {
    // RegexpMatchingIndicator
    RegexpMatchingIndicator createRegexpMatchingIndicator = IndicatorsFactory.eINSTANCE.createRegexpMatchingIndicator();
    // ~RegexpMatchingIndicator
    // IndicatorParameters
    IndicatorParameters createIndicatorParameters = IndicatorsFactory.eINSTANCE.createIndicatorParameters();
    // ~IndicatorParameters
    // Domain
    Domain createDomain = DomainFactory.eINSTANCE.createDomain();
    EList<Pattern> patterns = createDomain.getPatterns();
    // ~Domain
    // Pattern
    Pattern createJavaPattern = PatternFactory.eINSTANCE.createPattern();
    Pattern createSQLPattern = PatternFactory.eINSTANCE.createPattern();
    Pattern createMSSQLPattern = PatternFactory.eINSTANCE.createPattern();
    patterns.add(createJavaPattern);
    patterns.add(createSQLPattern);
    patterns.add(createMSSQLPattern);
    // ~Pattern
    // init java Pattern data
    RegularExpression createJavaRegularExpression = PatternFactory.eINSTANCE.createRegularExpression();
    TdExpression createJavaTdExpression = RelationalFactory.eINSTANCE.createTdExpression();
    createJavaTdExpression.setBody(JavaRegex);
    createJavaTdExpression.setLanguage("Microsoft SQL Server");
    createJavaRegularExpression.setExpression(createJavaTdExpression);
    createJavaRegularExpression.setExpressionType(ExpressionType.REGEXP.getLiteral());
    EList<PatternComponent> components = createJavaPattern.getComponents();
    components.add(createJavaRegularExpression);
    // ~init java Pattern data
    createIndicatorParameters.setDataValidDomain(createDomain);
    createRegexpMatchingIndicator.setParameters(createIndicatorParameters);
    TdColumn column = RelationalFactory.eINSTANCE.createTdColumn();
    MetadataTable mdColumn = RelationalFactory.eINSTANCE.createTdTable();
    column.setTable(mdColumn);
    createRegexpMatchingIndicator.setAnalyzedElement(column);
    // call getRegex()
    String regexResult = createRegexpMatchingIndicator.getRegex();
    // ~call getRegex()
    Assert.assertTrue(regexResult == null);
}
Also used : Pattern(org.talend.dataquality.domain.pattern.Pattern) RegularExpression(org.talend.dataquality.domain.pattern.RegularExpression) TdColumn(org.talend.cwm.relational.TdColumn) TdExpression(org.talend.cwm.relational.TdExpression) IndicatorParameters(org.talend.dataquality.indicators.IndicatorParameters) MetadataTable(org.talend.core.model.metadata.builder.connection.MetadataTable) PatternComponent(org.talend.dataquality.domain.pattern.PatternComponent) RegexpMatchingIndicator(org.talend.dataquality.indicators.RegexpMatchingIndicator) Domain(org.talend.dataquality.domain.Domain) Test(org.junit.Test)

Aggregations

PatternComponent (org.talend.dataquality.domain.pattern.PatternComponent)24 RegularExpression (org.talend.dataquality.domain.pattern.RegularExpression)18 Pattern (org.talend.dataquality.domain.pattern.Pattern)15 TdExpression (org.talend.cwm.relational.TdExpression)10 Test (org.junit.Test)9 RegularExpressionImpl (org.talend.dataquality.domain.pattern.impl.RegularExpressionImpl)5 ArrayList (java.util.ArrayList)4 Domain (org.talend.dataquality.domain.Domain)4 TDQPatternItem (org.talend.dataquality.properties.TDQPatternItem)4 Expression (orgomg.cwm.objectmodel.core.Expression)4 IndicatorParameters (org.talend.dataquality.indicators.IndicatorParameters)3 RegexpMatchingIndicator (org.talend.dataquality.indicators.RegexpMatchingIndicator)3 IFile (org.eclipse.core.resources.IFile)2 URI (org.eclipse.emf.common.util.URI)2 Resource (org.eclipse.emf.ecore.resource.Resource)2 IRepositoryViewObject (org.talend.core.model.repository.IRepositoryViewObject)2 ReturnCode (org.talend.utils.sugars.ReturnCode)2 File (java.io.File)1 URI (java.net.URI)1 HashMap (java.util.HashMap)1