Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
BZ-1275341 Jcr2vfs migration tool swaps DRL declared fact's package n…
…ame and class name (cherry picked from commit 402d1f4)
- Loading branch information
Showing
3 changed files
with
151 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
146 changes: 146 additions & 0 deletions
146
...est/java/org/drools/workbench/jcr2vfsmigration/vfsImport/asset/FactModelImporterTest.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,146 @@ | ||
/* | ||
* Copyright 2015 JBoss Inc | ||
* | ||
* Licensed under the Apache License, Version 2.0 (the "License"); | ||
* you may not use this file except in compliance with the License. | ||
* You may obtain a copy of the License at | ||
* | ||
* http://www.apache.org/licenses/LICENSE-2.0 | ||
* | ||
* Unless required by applicable law or agreed to in writing, software | ||
* distributed under the License is distributed on an "AS IS" BASIS, | ||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
* See the License for the specific language governing permissions and | ||
* limitations under the License. | ||
*/ | ||
|
||
package org.drools.workbench.jcr2vfsmigration.vfsImport.asset; | ||
|
||
import java.util.Date; | ||
import java.util.HashMap; | ||
import java.util.Map; | ||
|
||
import org.drools.workbench.jcr2vfsmigration.util.MigrationPathManager; | ||
import org.drools.workbench.jcr2vfsmigration.xml.model.Module; | ||
import org.drools.workbench.jcr2vfsmigration.xml.model.ModuleType; | ||
import org.drools.workbench.jcr2vfsmigration.xml.model.asset.DataModelAsset; | ||
import org.guvnor.common.services.project.service.ProjectService; | ||
import org.junit.Test; | ||
import org.junit.runner.RunWith; | ||
import org.kie.api.definition.type.Role; | ||
import org.kie.workbench.common.screens.datamodeller.service.DataModelerService; | ||
import org.kie.workbench.common.services.datamodeller.core.Annotation; | ||
import org.kie.workbench.common.services.datamodeller.core.AnnotationDefinition; | ||
import org.kie.workbench.common.services.datamodeller.core.DataModel; | ||
import org.kie.workbench.common.services.datamodeller.core.DataObject; | ||
import org.kie.workbench.common.services.datamodeller.core.impl.AnnotationImpl; | ||
import org.kie.workbench.common.services.datamodeller.core.impl.DataModelImpl; | ||
import org.kie.workbench.common.services.datamodeller.util.DriverUtils; | ||
import org.kie.workbench.common.services.shared.project.KieProject; | ||
import org.mockito.InjectMocks; | ||
import org.mockito.Mock; | ||
import org.mockito.runners.MockitoJUnitRunner; | ||
import org.uberfire.backend.vfs.Path; | ||
import org.uberfire.io.IOService; | ||
|
||
import static org.mockito.Mockito.*; | ||
|
||
@RunWith(MockitoJUnitRunner.class) | ||
public class FactModelImporterTest { | ||
|
||
@Mock | ||
private IOService ioService; | ||
|
||
@Mock | ||
private MigrationPathManager migrationPathManager; | ||
|
||
@Mock | ||
private DataModelerService modelerService; | ||
|
||
@Mock | ||
private ProjectService<KieProject> projectService; | ||
|
||
@InjectMocks | ||
FactModelImporter factModelImporter = new FactModelImporter(); | ||
|
||
private static Map<String, AnnotationDefinition> annotationDefinitions = new HashMap<String, AnnotationDefinition>( ); | ||
|
||
static { | ||
annotationDefinitions.put( Role.class.getName(), DriverUtils.buildAnnotationDefinition( Role.class ) ); | ||
} | ||
|
||
@Test | ||
public void testFactsImportGeneratedModel() { | ||
|
||
Module xmlModule = buildModule(); | ||
DataModelAsset xmlAsset = buildDataModelAsset(); | ||
|
||
Path path = mock( Path.class ); | ||
KieProject project = mock( KieProject.class ); | ||
|
||
when( migrationPathManager.generatePathForAsset( xmlModule, xmlAsset, xmlAsset.getAssetType().toString() ) ).thenReturn( path ); | ||
when( projectService.resolveProject( path ) ).thenReturn( project ); | ||
when( modelerService.getAnnotationDefinitions() ).thenReturn( annotationDefinitions ); | ||
|
||
factModelImporter.importAsset( xmlModule, xmlAsset, null ); | ||
|
||
DataModel expectedDataModel = buildExpectedDataModel(); | ||
|
||
//The importer should create the expected data model. | ||
verify( modelerService, times( 1 )).saveModel( eq( expectedDataModel ), eq( project ) ); | ||
|
||
} | ||
|
||
/** | ||
* Creates the input module for the FactModelImporter. | ||
*/ | ||
private Module buildModule() { | ||
|
||
Module module = new Module( ModuleType.NORMAL, | ||
"uuid-test-module", //not relevant for the test | ||
"test-module", //not relevant for the test | ||
"test-user", //not relevant for the test | ||
"last checkin comment", //not relevant for the test | ||
new Date(), //nor relevant for the test | ||
"org.kie.test", //At import time, the package is taken from the Module. | ||
null, //not relevant for the test | ||
null, //not relevant for the test | ||
null, //not relevant for the test | ||
null //not relevant for the test | ||
); | ||
return module; | ||
} | ||
|
||
/** | ||
* Creates the DataModelAsset for the FactModelImporter. | ||
*/ | ||
private DataModelAsset buildDataModelAsset() { | ||
|
||
DataModelAsset dataModelAsset = new DataModelAsset( "TestFact", "drl", "test-user", "last checkin comment", new Date() ); | ||
DataModelAsset.DataModelObject dataModelObject = dataModelAsset.addDataModelObject( "TestFact", "java.lang.Object" ); | ||
|
||
dataModelObject.addObjectAnnotation( "Role", "value", Role.Type.EVENT.name() ); | ||
dataModelObject.addObjectProperty( "field1", "java.lang.String" ); | ||
|
||
return dataModelAsset; | ||
} | ||
|
||
/** | ||
* Creates the expected result. | ||
*/ | ||
private DataModel buildExpectedDataModel() { | ||
DataModel dataModel = new DataModelImpl(); | ||
|
||
DataObject dataObject = dataModel.addDataObject( "org.kie.test", "TestFact" ); | ||
dataObject.setSuperClassName( "java.lang.Object" ); | ||
|
||
Annotation annotation = new AnnotationImpl( annotationDefinitions.get( Role.class.getName() ) ); | ||
annotation.setValue( "value", Role.Type.EVENT.name() ); | ||
dataObject.addAnnotation( annotation ); | ||
|
||
dataObject.addProperty( "field1", "java.lang.String" ); | ||
|
||
return dataModel; | ||
} | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters