use of org.eclipse.emf.common.util.BasicEList in project tdq-studio-se by Talend.
the class DbmsLanguageTest method testGetSqlExpressionRedshiftCase1.
/**
* Test method for
* {@link org.talend.dq.dbms.DbmsLanguage#getSqlExpression(IndicatorDefinition, String, EList, ProductVersion)} .
*/
@Test
public void testGetSqlExpressionRedshiftCase1() {
// TDQ-11558 msjian: test for get sql expresstion for redshift database
// $NON-NLS-1$
String sqlLang = "SQL";
// $NON-NLS-1$
String sqlBody = "SQL body";
String redshiftLang = SupportDBUrlType.REDSHIFT.getLanguage();
// $NON-NLS-1$
String redshiftBody = "Amazon redshift body";
String postgresqlLang = SupportDBUrlType.POSTGRESQLEFAULTURL.getLanguage();
// $NON-NLS-1$
String postgresqlBody = "PostgreSQL body";
IndicatorDefinition indicatorDefinition = DefinitionFactory.eINSTANCE.createIndicatorDefinition();
EList<TdExpression> sqlGenericExpression = new BasicEList<TdExpression>();
TdExpression tdExpression1 = RelationalFactory.eINSTANCE.createTdExpression();
tdExpression1.setLanguage(sqlLang);
tdExpression1.setBody(sqlBody);
sqlGenericExpression.add(tdExpression1);
TdExpression tdExpression3 = RelationalFactory.eINSTANCE.createTdExpression();
tdExpression3.setLanguage(postgresqlLang);
tdExpression3.setBody(postgresqlBody);
sqlGenericExpression.add(tdExpression3);
TdExpression tdExpression4 = RelationalFactory.eINSTANCE.createTdExpression();
tdExpression4.setLanguage(redshiftLang);
tdExpression4.setBody(redshiftBody);
sqlGenericExpression.add(tdExpression4);
ProductVersion dbVersion = new ProductVersion(1, 0);
TdExpression sqlExpression = DbmsLanguage.getSqlExpression(indicatorDefinition, redshiftLang, sqlGenericExpression, dbVersion);
Assert.assertEquals(tdExpression4, sqlExpression);
}
use of org.eclipse.emf.common.util.BasicEList in project tdq-studio-se by Talend.
the class DbmsLanguageTest method testGetSqlExpressionRedshiftCase3.
/**
* Test method for
* {@link org.talend.dq.dbms.DbmsLanguage#getSqlExpression(IndicatorDefinition, String, EList, ProductVersion)} .
*/
@Test
public void testGetSqlExpressionRedshiftCase3() {
// TDQ-11558 msjian: test for get sql expresstion for redshift database when there is no redshift and ParAccel
// and PostgreSQL defined
// $NON-NLS-1$
String sqlLang = "SQL";
// $NON-NLS-1$
String sqlBody = "SQL body";
String redshiftLang = SupportDBUrlType.REDSHIFT.getLanguage();
IndicatorDefinition indicatorDefinition = DefinitionFactory.eINSTANCE.createIndicatorDefinition();
EList<TdExpression> sqlGenericExpression = new BasicEList<TdExpression>();
TdExpression tdExpression1 = RelationalFactory.eINSTANCE.createTdExpression();
tdExpression1.setLanguage(sqlLang);
tdExpression1.setBody(sqlBody);
sqlGenericExpression.add(tdExpression1);
ProductVersion dbVersion = new ProductVersion(1, 0);
TdExpression sqlExpression = DbmsLanguage.getSqlExpression(indicatorDefinition, redshiftLang, sqlGenericExpression, dbVersion);
Assert.assertEquals(tdExpression1, sqlExpression);
}
use of org.eclipse.emf.common.util.BasicEList 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());
}
use of org.eclipse.emf.common.util.BasicEList in project tdq-studio-se by Talend.
the class ColumnSetIndicatorEvaluator method orgnizeObjectsToHandel.
/**
* orgnize a List by a row,then call 'handleObjects(...)'.
*
* @param rowValues
* @param currentRow
* @param analysisElementList
* @param separator
*/
private void orgnizeObjectsToHandel(String fileName, String[] rowValues, long currentRow, List<ModelElement> analysisElementList, String separator) {
EList<Object> objectLs = new BasicEList<Object>();
MetadataColumn mColumn = null;
Object object = null;
for (int i = 0; i < analysisElementList.size(); i++) {
mColumn = (MetadataColumn) analysisElementList.get(i);
Integer position = ColumnHelper.getColumnIndex(mColumn);
// MOD qiongli 2011-4-2,bug 20033,warning with a badly form file
if (position == null || position >= rowValues.length) {
log.warn(// $NON-NLS-1$
Messages.getString(// $NON-NLS-1$
"DelimitedFileIndicatorEvaluator.incorrectData", mColumn.getLabel(), currentRow, fileName));
if (!isBadlyFormFlatFile) {
isBadlyFormFlatFile = true;
Display.getDefault().asyncExec(new Runnable() {
public void run() {
MessageDialog.openWarning(null, // $NON-NLS-1$
Messages.getString("DelimitedFileIndicatorEvaluator.badlyForm.Title"), // $NON-NLS-1$
Messages.getString("DelimitedFileIndicatorEvaluator.badlyForm.Message"));
}
});
}
continue;
}
object = TalendTypeConvert.convertToObject(mColumn.getTalendType(), rowValues[position], mColumn.getPattern());
objectLs.add(object);
}
if (mColumn != null) {
List<MetadataColumn> columnList = ColumnHelper.getColumnOwnerAsMetadataTable(mColumn).getColumns();
handleObjects(objectLs, rowValues, columnList);
}
}
use of org.eclipse.emf.common.util.BasicEList in project tdq-studio-se by Talend.
the class ColumnSetIndicatorEvaluator method evaluateBySql.
/**
* orgnize EList 'objectLs' by SQL.
*
* @param sqlStatement
* @param ok
* @return
* @throws SQLException
*/
private ReturnCode evaluateBySql(String sqlStatement, ReturnCode ok) throws SQLException {
Statement statement = null;
ResultSet resultSet = null;
try {
statement = createStatement();
if (continueRun()) {
if (log.isInfoEnabled()) {
// $NON-NLS-1$
log.info("Executing query: " + sqlStatement);
}
statement.execute(sqlStatement);
}
// get the results
resultSet = statement.getResultSet();
List<String> columnNames = getAnalyzedElementsName();
if (resultSet == null) {
// $NON-NLS-1$
String mess = Messages.getString("Evaluator.NoResultSet", sqlStatement);
log.warn(mess);
ok.setReturnCode(mess, false);
return ok;
}
EMap<Indicator, AnalyzedDataSet> indicToRowMap = analysis.getResults().getIndicToRowMap();
indicToRowMap.clear();
while (resultSet.next()) {
// MOD yyi 2012-04-11 TDQ-4916:Add memory control for java analysis.
if (!continueRun()) {
break;
}
EList<Object> objectLs = new BasicEList<Object>();
Iterator<String> it = columnNames.iterator();
while (it.hasNext()) {
Object obj = ResultSetUtils.getBigObject(resultSet, it.next());
objectLs.add(obj);
}
if (objectLs.size() == 0) {
continue;
}
handleObjects(objectLs, resultSet);
}
} finally {
if (resultSet != null) {
resultSet.close();
}
if (statement != null) {
statement.close();
}
closeConnection();
}
return ok;
}
Aggregations