示例#1
0
  @Test
  @Ignore
  public void shouldCreateEpatchForMovedElement() throws Exception {
    // given
    ResourceSet rs = new ResourceSetImpl();
    rs.getResourceFactoryRegistry()
        .getExtensionToFactoryMap()
        .put("ecore", new EcoreResourceFactoryImpl());
    rs.getResourceFactoryRegistry()
        .getExtensionToFactoryMap()
        .put("xmi", new XMIResourceFactoryImpl());
    // ...loaded metamodel
    Resource meta = rs.getResource(URI.createFileURI("res/in/movebug/MoveBug.ecore"), true);
    meta.load(null);

    // register package nsuri
    EPackage pckage = (EPackage) meta.getContents().get(0);
    rs.getPackageRegistry().put(pckage.getNsURI(), pckage);
    // ...loaded models
    Resource originModel = rs.getResource(URI.createFileURI("res/in/movebug/Original.xmi"), true);
    originModel.load(null);
    Resource changedModel = rs.getResource(URI.createFileURI("res/in/movebug/Moved.xmi"), true);
    changedModel.load(null);

    // when
    MatchModel matchModel = MatchService.doResourceMatch(originModel, changedModel, null);
    DiffModel diffModel = DiffService.doDiff(matchModel);
    // then
    // ... epatch creation fails because of move between different containers
    Epatch epatch = DiffEpatchService.createEpatch(matchModel, diffModel, "buggyPatch");
  }