use of org.kie.soup.project.datamodel.imports.HasImports in project kie-wb-common by kiegroup.
the class PackageDataModelGlobalsTest method testGlobalCollections.
@Test
public void testGlobalCollections() throws Exception {
final ModuleDataModelOracle moduleLoader = ModuleDataModelOracleBuilder.newModuleOracleBuilder(new RawMVELEvaluator()).addClass(java.util.List.class).build();
final PackageDataModelOracle packageLoader = PackageDataModelOracleBuilder.newPackageOracleBuilder(new RawMVELEvaluator(), "org.kie.workbench.common.services.datamodel.backend.server.testclasses").setModuleOracle(moduleLoader).addGlobals("global java.util.List list;").build();
final HasImports imports = new MockHasImports();
imports.getImports().addImport(new Import("java.util.List"));
// Emulate server-to-client conversions
final Caller<IncrementalDataModelService> service = new MockIncrementalDataModelServiceCaller(packageLoader);
final AsyncPackageDataModelOracle oracle = new AsyncPackageDataModelOracleImpl(service, validatorInstance);
final PackageDataModelOracleBaselinePayload dataModel = new PackageDataModelOracleBaselinePayload();
dataModel.setPackageName(packageLoader.getPackageName());
dataModel.setModelFields(packageLoader.getModuleModelFields());
dataModel.setGlobalTypes(packageLoader.getPackageGlobals());
dataModel.setCollectionTypes(packageLoader.getModuleCollectionTypes());
PackageDataModelOracleTestUtils.populateDataModelOracle(mock(Path.class), imports, oracle, dataModel);
assertNotNull(oracle);
assertEquals(1, oracle.getFactTypes().length);
assertEquals("List", oracle.getFactTypes()[0]);
assertEquals(1, oracle.getGlobalVariables().length);
assertEquals("list", oracle.getGlobalVariables()[0]);
assertEquals("List", oracle.getGlobalVariable("list"));
assertEquals(1, oracle.getGlobalCollections().length);
assertEquals("list", oracle.getGlobalCollections()[0]);
}
use of org.kie.soup.project.datamodel.imports.HasImports in project kie-wb-common by kiegroup.
the class PackageDataModelMethodsTest method testMethodsOnJavaClass_Number.
@Test
public void testMethodsOnJavaClass_Number() throws Exception {
final ModuleDataModelOracle moduleLoader = ModuleDataModelOracleBuilder.newModuleOracleBuilder(new RawMVELEvaluator()).addClass(Number.class).addFact("int").end().build();
final PackageDataModelOracle packageLoader = PackageDataModelOracleBuilder.newPackageOracleBuilder(new RawMVELEvaluator(), "p0").setModuleOracle(moduleLoader).build();
// Emulate server-to-client conversions
final Caller<IncrementalDataModelService> service = new MockIncrementalDataModelServiceCaller(packageLoader);
final AsyncPackageDataModelOracle oracle = new AsyncPackageDataModelOracleImpl(service, validatorInstance);
final PackageDataModelOracleBaselinePayload dataModel = new PackageDataModelOracleBaselinePayload();
dataModel.setPackageName(packageLoader.getPackageName());
dataModel.setModelFields(packageLoader.getModuleModelFields());
dataModel.setMethodInformation(packageLoader.getModuleMethodInformation());
PackageDataModelOracleTestUtils.populateDataModelOracle(mock(Path.class), new HasImports() {
private Imports imports = new Imports() {
{
addImport(new Import("java.lang.Number"));
}
};
@Override
public Imports getImports() {
return imports;
}
@Override
public void setImports(final Imports imports) {
// Do nothing
}
}, oracle, dataModel);
oracle.getMethodInfos(Number.class.getSimpleName(), new Callback<List<MethodInfo>>() {
@Override
public void callback(final List<MethodInfo> methodInfos) {
assertNotNull(methodInfos);
assertFalse(methodInfos.isEmpty());
for (final MethodInfo methodInfo : methodInfos) {
assertFalse("Method " + methodInfo.getName() + " is not allowed.", checkBlackList(methodInfo.getName()));
}
}
});
oracle.getMethodInfos("int", new Callback<List<MethodInfo>>() {
@Override
public void callback(final List<MethodInfo> methodInfos) {
assertNotNull(methodInfos);
assertTrue(methodInfos.isEmpty());
}
});
}
use of org.kie.soup.project.datamodel.imports.HasImports in project kie-wb-common by kiegroup.
the class PackageDataModelOracleTest method testImportedNestedClassMethodInformationImportBothTypes.
@Test
public void testImportedNestedClassMethodInformationImportBothTypes() throws IOException {
final ModuleDataModelOracle moduleLoader = ModuleDataModelOracleBuilder.newModuleOracleBuilder(new RawMVELEvaluator()).addClass(TestSuperClass.NestedClass.class).build();
final PackageDataModelOracle packageLoader = PackageDataModelOracleBuilder.newPackageOracleBuilder(new RawMVELEvaluator()).setModuleOracle(moduleLoader).build();
// Emulate server-to-client conversions
final Caller<IncrementalDataModelService> service = new MockIncrementalDataModelServiceCaller(packageLoader);
final AsyncPackageDataModelOracle oracle = new AsyncPackageDataModelOracleImpl(service, validatorInstance);
final PackageDataModelOracleBaselinePayload dataModel = new PackageDataModelOracleBaselinePayload();
dataModel.setPackageName(packageLoader.getPackageName());
dataModel.setModelFields(packageLoader.getModuleModelFields());
dataModel.setMethodInformation(packageLoader.getModuleMethodInformation());
dataModel.setFieldParametersType(packageLoader.getModuleFieldParametersType());
final HasImports hasImports = new HasImports() {
final Imports imports = new Imports();
{
imports.addImport(new Import("org.kie.workbench.common.widgets.client.datamodel.testclasses.TestSuperClass.NestedClass"));
imports.addImport(new Import("org.kie.workbench.common.widgets.client.datamodel.testclasses.Product"));
}
@Override
public Imports getImports() {
return imports;
}
@Override
public void setImports(Imports imports) {
}
};
PackageDataModelOracleTestUtils.populateDataModelOracle(mock(Path.class), hasImports, oracle, dataModel);
assertEquals(1, oracle.getFactTypes().length);
assertEquals("TestSuperClass.NestedClass", oracle.getFactTypes()[0]);
oracle.getFieldCompletions("TestSuperClass.NestedClass", new Callback<ModelField[]>() {
@Override
public void callback(final ModelField[] fields) {
assertEquals(2, fields.length);
}
});
oracle.getMethodInfos("TestSuperClass.NestedClass", new Callback<List<MethodInfo>>() {
@Override
public void callback(final List<MethodInfo> methodInfos) {
assertNotNull(methodInfos);
assertEquals(3, methodInfos.size());
// Use SimpleName as the return type has been imported
final MethodInfo mf0 = new MethodInfo("methodDoingSomethingThatReturnsAnInnerClass", new ArrayList<String>(), "TestSuperClass.NestedClass", null, "TestSuperClass.NestedClass");
// Use SimpleName as the return type has been imported
final MethodInfo mf1 = new MethodInfo("methodDoingSomethingThatReturnsAnOuterClass", new ArrayList<String>(), Product.class.getSimpleName(), null, Product.class.getSimpleName());
// Use FQCN as the return type has not been imported
final MethodInfo mf2 = new MethodInfo("methodDoingSomethingWithNestedField1", new ArrayList<String>(), String.class, null, DataType.TYPE_STRING);
assertTrue(methodInfos.contains(mf0));
assertTrue(methodInfos.contains(mf1));
assertTrue(methodInfos.contains(mf2));
}
});
}
use of org.kie.soup.project.datamodel.imports.HasImports in project kie-wb-common by kiegroup.
the class PackageDataModelOracleTest method testImportedNestedClassMethodInformationInPackageScope.
@Test
public void testImportedNestedClassMethodInformationInPackageScope() throws IOException {
final ModuleDataModelOracle moduleLoader = ModuleDataModelOracleBuilder.newModuleOracleBuilder(new RawMVELEvaluator()).addClass(TestSuperClass.NestedClass.class).build();
final PackageDataModelOracle packageLoader = PackageDataModelOracleBuilder.newPackageOracleBuilder(new RawMVELEvaluator(), "org.kie.workbench.common.widgets.client.datamodel.testclasses").setModuleOracle(moduleLoader).build();
// Emulate server-to-client conversions
final Caller<IncrementalDataModelService> service = new MockIncrementalDataModelServiceCaller(packageLoader);
final AsyncPackageDataModelOracle oracle = new AsyncPackageDataModelOracleImpl(service, validatorInstance);
final PackageDataModelOracleBaselinePayload dataModel = new PackageDataModelOracleBaselinePayload();
dataModel.setPackageName(packageLoader.getPackageName());
dataModel.setModelFields(packageLoader.getModuleModelFields());
dataModel.setMethodInformation(packageLoader.getModuleMethodInformation());
dataModel.setFieldParametersType(packageLoader.getModuleFieldParametersType());
final HasImports hasImports = new HasImports() {
final Imports imports = new Imports();
@Override
public Imports getImports() {
return imports;
}
@Override
public void setImports(Imports imports) {
}
};
PackageDataModelOracleTestUtils.populateDataModelOracle(mock(Path.class), hasImports, oracle, dataModel);
assertEquals(1, oracle.getFactTypes().length);
assertEquals("TestSuperClass.NestedClass", oracle.getFactTypes()[0]);
oracle.getFieldCompletions("TestSuperClass.NestedClass", new Callback<ModelField[]>() {
@Override
public void callback(final ModelField[] fields) {
assertEquals(2, fields.length);
}
});
oracle.getMethodInfos("TestSuperClass.NestedClass", new Callback<List<MethodInfo>>() {
@Override
public void callback(final List<MethodInfo> methodInfos) {
assertNotNull(methodInfos);
assertEquals(3, methodInfos.size());
// Use SimpleName as the return type is in the same package represented by the Oracle
final MethodInfo mf0 = new MethodInfo("methodDoingSomethingThatReturnsAnInnerClass", new ArrayList<String>(), "TestSuperClass.NestedClass", null, "TestSuperClass.NestedClass");
// Use SimpleName as the return type is in the same package represented by the Oracle
final MethodInfo mf1 = new MethodInfo("methodDoingSomethingThatReturnsAnOuterClass", new ArrayList<String>(), Product.class.getSimpleName(), null, Product.class.getSimpleName());
// Use FQCN as the return type has not been imported
final MethodInfo mf2 = new MethodInfo("methodDoingSomethingWithNestedField1", new ArrayList<String>(), String.class, null, DataType.TYPE_STRING);
assertTrue(methodInfos.contains(mf0));
assertTrue(methodInfos.contains(mf1));
assertTrue(methodInfos.contains(mf2));
}
});
}
use of org.kie.soup.project.datamodel.imports.HasImports in project kie-wb-common by kiegroup.
the class PackageDataModelOracleTest method testImportedNestedClassMethodInformation.
@Test
public void testImportedNestedClassMethodInformation() throws IOException {
final ModuleDataModelOracle moduleLoader = ModuleDataModelOracleBuilder.newModuleOracleBuilder(new RawMVELEvaluator()).addClass(TestSuperClass.NestedClass.class).build();
final PackageDataModelOracle packageLoader = PackageDataModelOracleBuilder.newPackageOracleBuilder(new RawMVELEvaluator()).setModuleOracle(moduleLoader).build();
// Emulate server-to-client conversions
final Caller<IncrementalDataModelService> service = new MockIncrementalDataModelServiceCaller(packageLoader);
final AsyncPackageDataModelOracle oracle = new AsyncPackageDataModelOracleImpl(service, validatorInstance);
final PackageDataModelOracleBaselinePayload dataModel = new PackageDataModelOracleBaselinePayload();
dataModel.setPackageName(packageLoader.getPackageName());
dataModel.setModelFields(packageLoader.getModuleModelFields());
dataModel.setMethodInformation(packageLoader.getModuleMethodInformation());
dataModel.setFieldParametersType(packageLoader.getModuleFieldParametersType());
final HasImports hasImports = new HasImports() {
final Imports imports = new Imports();
{
imports.addImport(new Import("org.kie.workbench.common.widgets.client.datamodel.testclasses.TestSuperClass.NestedClass"));
}
@Override
public Imports getImports() {
return imports;
}
@Override
public void setImports(Imports imports) {
}
};
PackageDataModelOracleTestUtils.populateDataModelOracle(mock(Path.class), hasImports, oracle, dataModel);
assertEquals(1, oracle.getFactTypes().length);
assertEquals("TestSuperClass.NestedClass", oracle.getFactTypes()[0]);
oracle.getFieldCompletions("TestSuperClass.NestedClass", new Callback<ModelField[]>() {
@Override
public void callback(final ModelField[] fields) {
assertEquals(2, fields.length);
}
});
oracle.getMethodInfos("TestSuperClass.NestedClass", new Callback<List<MethodInfo>>() {
@Override
public void callback(final List<MethodInfo> methodInfos) {
assertNotNull(methodInfos);
assertEquals(3, methodInfos.size());
// Use SimpleName as the return type has been imported
final MethodInfo mf0 = new MethodInfo("methodDoingSomethingThatReturnsAnInnerClass", new ArrayList<String>(), "TestSuperClass.NestedClass", null, "TestSuperClass.NestedClass");
// Use FQCN as the return type has not been imported
final MethodInfo mf1 = new MethodInfo("methodDoingSomethingWithNestedField1", new ArrayList<String>(), String.class, null, DataType.TYPE_STRING);
// Use FQCN as the return type has not been imported
final MethodInfo mf2 = new MethodInfo("methodDoingSomethingThatReturnsAnOuterClass", new ArrayList<String>(), Product.class.getName(), null, Product.class.getName());
assertTrue(methodInfos.contains(mf0));
assertTrue(methodInfos.contains(mf1));
assertTrue(methodInfos.contains(mf2));
}
});
}
Aggregations