@Test void parseSinglePackageWithParentInconsistent() { initMetaFactories(); Package pack = mock(Package.class); when(packageFactory.create("pack")).thenReturn(pack); Entity entity = mock(Entity.class); IntermediateParseResults intermediateParseResults = new IntermediateParseResults(entityTypeFactory); when(entity.getString(EMX_PACKAGE_NAME)).thenReturn("pack"); when(entity.getString(EMX_PACKAGE_PARENT)).thenReturn("parent"); assertThrows( InconsistentPackageStructureException.class, () -> emxMetadataParser.parseSinglePackage(intermediateParseResults, 0, entity)); }
IntermediateParseResults parseSinglePackage( IntermediateParseResults intermediateResults, int rowIndex, Entity packageEntity) { String name = packageEntity.getString(EMX_PACKAGE_NAME); if (Strings.isNullOrEmpty(name)) { throw new MissingEmxAttributeValueException("name", EMX_PACKAGES, rowIndex); } Package aPackage = packageFactory.create(name); aPackage.setDescription(packageEntity.getString(EMX_PACKAGE_DESCRIPTION)); String label = packageEntity.getString(EMX_PACKAGE_LABEL); if (label == null) { label = name; } aPackage.setLabel(label); String parentName = packageEntity.getString(EMX_PACKAGE_PARENT); if (parentName != null) { if (!name.toLowerCase().startsWith(parentName.toLowerCase())) throw new InconsistentPackageStructureException(name, parentName, EMX_PACKAGES, rowIndex); aPackage.setParent(intermediateResults.getPackage(parentName)); } List<String> tagIdentifiers = toList(packageEntity.getString(EMX_PACKAGE_TAGS)); if (tagIdentifiers != null && !tagIdentifiers.isEmpty()) { List<Tag> tags = toTags(intermediateResults, tagIdentifiers); aPackage.setTags(tags); } intermediateResults.addPackage(name, aPackage); return intermediateResults; }
EmxMetadataParser implements MetadataParser { IntermediateParseResults parseSinglePackage( IntermediateParseResults intermediateResults, int rowIndex, Entity packageEntity) { String name = packageEntity.getString(EMX_PACKAGE_NAME); if (Strings.isNullOrEmpty(name)) { throw new MissingEmxAttributeValueException("name", EMX_PACKAGES, rowIndex); } Package aPackage = packageFactory.create(name); aPackage.setDescription(packageEntity.getString(EMX_PACKAGE_DESCRIPTION)); String label = packageEntity.getString(EMX_PACKAGE_LABEL); if (label == null) { label = name; } aPackage.setLabel(label); String parentName = packageEntity.getString(EMX_PACKAGE_PARENT); if (parentName != null) { if (!name.toLowerCase().startsWith(parentName.toLowerCase())) throw new InconsistentPackageStructureException(name, parentName, EMX_PACKAGES, rowIndex); aPackage.setParent(intermediateResults.getPackage(parentName)); } List<String> tagIdentifiers = toList(packageEntity.getString(EMX_PACKAGE_TAGS)); if (tagIdentifiers != null && !tagIdentifiers.isEmpty()) { List<Tag> tags = toTags(intermediateResults, tagIdentifiers); aPackage.setTags(tags); } intermediateResults.addPackage(name, aPackage); return intermediateResults; } }
EmxMetadataParser implements MetadataParser { IntermediateParseResults parseSinglePackage( IntermediateParseResults intermediateResults, int rowIndex, Entity packageEntity) { String name = packageEntity.getString(EMX_PACKAGE_NAME); if (Strings.isNullOrEmpty(name)) { throw new MissingEmxAttributeValueException("name", EMX_PACKAGES, rowIndex); } Package aPackage = packageFactory.create(name); aPackage.setDescription(packageEntity.getString(EMX_PACKAGE_DESCRIPTION)); String label = packageEntity.getString(EMX_PACKAGE_LABEL); if (label == null) { label = name; } aPackage.setLabel(label); String parentName = packageEntity.getString(EMX_PACKAGE_PARENT); if (parentName != null) { if (!name.toLowerCase().startsWith(parentName.toLowerCase())) throw new InconsistentPackageStructureException(name, parentName, EMX_PACKAGES, rowIndex); aPackage.setParent(intermediateResults.getPackage(parentName)); } List<String> tagIdentifiers = toList(packageEntity.getString(EMX_PACKAGE_TAGS)); if (tagIdentifiers != null && !tagIdentifiers.isEmpty()) { List<Tag> tags = toTags(intermediateResults, tagIdentifiers); aPackage.setTags(tags); } intermediateResults.addPackage(name, aPackage); return intermediateResults; } EmxMetadataParser(
      DataService dataService,
      PackageFactory packageFactory,
      AttributeFactory attrMetaFactory,
      EntityTypeFactory entityTypeFactory,
      TagFactory tagFactory,
      LanguageFactory languageFactory,
      L10nStringFactory l10nStringFactory,
      EntityTypeValidator entityTypeValidator,
      AttributeValidator attributeValidator,
      TagValidator tagValidator,
      EntityTypeDependencyResolver entityTypeDependencyResolver); }
EmxMetadataParser implements MetadataParser { IntermediateParseResults parseSinglePackage( IntermediateParseResults intermediateResults, int rowIndex, Entity packageEntity) { String name = packageEntity.getString(EMX_PACKAGE_NAME); if (Strings.isNullOrEmpty(name)) { throw new MissingEmxAttributeValueException("name", EMX_PACKAGES, rowIndex); } Package aPackage = packageFactory.create(name); aPackage.setDescription(packageEntity.getString(EMX_PACKAGE_DESCRIPTION)); String label = packageEntity.getString(EMX_PACKAGE_LABEL); if (label == null) { label = name; } aPackage.setLabel(label); String parentName = packageEntity.getString(EMX_PACKAGE_PARENT); if (parentName != null) { if (!name.toLowerCase().startsWith(parentName.toLowerCase())) throw new InconsistentPackageStructureException(name, parentName, EMX_PACKAGES, rowIndex); aPackage.setParent(intermediateResults.getPackage(parentName)); } List<String> tagIdentifiers = toList(packageEntity.getString(EMX_PACKAGE_TAGS)); if (tagIdentifiers != null && !tagIdentifiers.isEmpty()) { List<Tag> tags = toTags(intermediateResults, tagIdentifiers); aPackage.setTags(tags); } intermediateResults.addPackage(name, aPackage); return intermediateResults; } EmxMetadataParser(
      DataService dataService,
      PackageFactory packageFactory,
      AttributeFactory attrMetaFactory,
      EntityTypeFactory entityTypeFactory,
      TagFactory tagFactory,
      LanguageFactory languageFactory,
      L10nStringFactory l10nStringFactory,
      EntityTypeValidator entityTypeValidator,
      AttributeValidator attributeValidator,
      TagValidator tagValidator,
      EntityTypeDependencyResolver entityTypeDependencyResolver); @Override ParsedMetaData parse(
      final RepositoryCollection source, @Nullable @CheckForNull String packageId); @Override EntitiesValidationReport validate(RepositoryCollection source); }
EmxMetadataParser implements MetadataParser { IntermediateParseResults parseSinglePackage( IntermediateParseResults intermediateResults, int rowIndex, Entity packageEntity) { String name = packageEntity.getString(EMX_PACKAGE_NAME); if (Strings.isNullOrEmpty(name)) { throw new MissingEmxAttributeValueException("name", EMX_PACKAGES, rowIndex); } Package aPackage = packageFactory.create(name); aPackage.setDescription(packageEntity.getString(EMX_PACKAGE_DESCRIPTION)); String label = packageEntity.getString(EMX_PACKAGE_LABEL); if (label == null) { label = name; } aPackage.setLabel(label); String parentName = packageEntity.getString(EMX_PACKAGE_PARENT); if (parentName != null) { if (!name.toLowerCase().startsWith(parentName.toLowerCase())) throw new InconsistentPackageStructureException(name, parentName, EMX_PACKAGES, rowIndex); aPackage.setParent(intermediateResults.getPackage(parentName)); } List<String> tagIdentifiers = toList(packageEntity.getString(EMX_PACKAGE_TAGS)); if (tagIdentifiers != null && !tagIdentifiers.isEmpty()) { List<Tag> tags = toTags(intermediateResults, tagIdentifiers); aPackage.setTags(tags); } intermediateResults.addPackage(name, aPackage); return intermediateResults; } EmxMetadataParser(
      DataService dataService,
      PackageFactory packageFactory,
      AttributeFactory attrMetaFactory,
      EntityTypeFactory entityTypeFactory,
      TagFactory tagFactory,
      LanguageFactory languageFactory,
      L10nStringFactory l10nStringFactory,
      EntityTypeValidator entityTypeValidator,
      AttributeValidator attributeValidator,
      TagValidator tagValidator,
      EntityTypeDependencyResolver entityTypeDependencyResolver); @Override ParsedMetaData parse(
      final RepositoryCollection source, @Nullable @CheckForNull String packageId); @Override EntitiesValidationReport validate(RepositoryCollection source); static final String EMX_PACKAGES; static final String EMX_ENTITIES; static final String EMX_ATTRIBUTES; static final String EMX_PACKAGE_NAME; static final String EMX_PACKAGE_DESCRIPTION; static final String EMX_PACKAGE_PARENT; static final String EMX_PACKAGE_TAGS; static final String EMX_PACKAGE_LABEL; static final String EMX_ENTITIES_NAME; static final String EMX_ENTITIES_PACKAGE; static final String EMX_ENTITIES_LABEL; static final String EMX_ENTITIES_DESCRIPTION; static final String EMX_ENTITIES_ABSTRACT; static final String EMX_ENTITIES_EXTENDS; static final String EMX_ENTITIES_BACKEND; static final String EMX_ENTITIES_TAGS; static final String EMX_ATTRIBUTES_NAME; static final String EMX_ATTRIBUTES_ENTITY; static final String EMX_ATTRIBUTES_REF_ENTITY; static final String EMX_ATTRIBUTES_MAPPED_BY; static final String EMX_ATTRIBUTES_DEFAULT_VALUE; static final String EMX_ATTRIBUTES_ID_ATTRIBUTE; static final String EMX_ATTRIBUTES_LOOKUP_ATTRIBUTE; static final String EMX_ATTRIBUTES_LABEL_ATTRIBUTE; static final String EMX_ATTRIBUTES_PART_OF_ATTRIBUTE; static final String EMX_ATTRIBUTES_AGGREGATEABLE; static final String EMX_ATTRIBUTES_DATA_TYPE; static final String EMX_ATTRIBUTES_EXPRESSION; static final String EMX_ATTRIBUTES_NILLABLE; static final String EMX_ATTRIBUTES_VISIBLE; static final String EMX_ATTRIBUTES_LABEL; static final String EMX_ATTRIBUTES_DESCRIPTION; static final String EMX_ATTRIBUTES_ENUM_OPTIONS; static final String EMX_ATTRIBUTES_RANGE_MIN; static final String EMX_ATTRIBUTES_RANGE_MAX; static final String EMX_ATTRIBUTES_READ_ONLY; static final String EMX_ATTRIBUTES_UNIQUE; static final String EMX_ATTRIBUTES_VALIDATION_EXPRESSION; static final String EMX_ATTRIBUTES_TAGS; static final String EMX_ATTRIBUTES_AUTO; static final String AUTO; }