ModelNode checkSubsystemModelTransformation(KernelServices kernelServices, ModelVersion modelVersion, ModelFixer legacyModelFixer) throws IOException {
KernelServices legacy = kernelServices.getLegacyServices(modelVersion);
ModelNode legacyModel = legacy.readWholeModel();
ModelNode legacySubsystem = legacyModel.require(SUBSYSTEM);
legacySubsystem = legacySubsystem.require(mainSubsystemName);
if (legacyModelFixer != null) {
legacySubsystem = legacyModelFixer.fixModel(legacySubsystem);
}
ModelNode transformed = kernelServices.readTransformedModel(modelVersion).get(SUBSYSTEM, mainSubsystemName);
ModelTestUtils.compare(legacySubsystem, transformed, true);
ResourceDefinition rd = TransformerRegistry.loadSubsystemDefinitionFromFile(this.getClass(), mainSubsystemName, modelVersion);
Assert.assertNotNull("Could not load legacy dmr for subsystem '" + mainSubsystemName + "' version: '" + modelVersion + "' please add it", rd);
ManagementResourceRegistration rr = ManagementResourceRegistration.Factory.create(rd);
ModelTestUtils.checkModelAgainstDefinition(transformed, rr);
return legacyModel;
}