private MetadataSchemaType configureMockedSchemaTypeWithTaxonomyRelations( MetadataSchemaType type, MetadataSchemaTypes types, String code, Metadata... taxonomyRelations) { when(type.getCode()).thenReturn(code); List<Metadata> metadatas = Arrays.asList(taxonomyRelations); when(type.getAllReferencesToTaxonomySchemas(taxonomies)).thenReturn(metadatas); when(types.getSchemaType(code)).thenReturn(type); return type; }
@Before public void setUp() throws Exception { taxonomies = new ArrayList<>(); zeSchemaPath = newPathMetadata("zeSchema_default"); type1Path = newPathMetadata("type1_default"); type2Path = newPathMetadata("type2_default"); type3Path = newPathMetadata("type3_default"); type4Path = newPathMetadata("type4_default"); zeSchemaAllAuthorizations = newAllAuthorizationsMetadata("zeSchema_default"); type1AllAuthorizations = newAllAuthorizationsMetadata("type1_default"); type2AllAuthorizations = newAllAuthorizationsMetadata("type2_default"); type3AllAuthorizations = newAllAuthorizationsMetadata("type3_default"); type4AllAuthorizations = newAllAuthorizationsMetadata("type4_default"); givenReferenceToSchemaType( type1RelationToType1, types, "type1_default_relationToType1", childOfRelation, "type1"); givenReferenceToSchemaType( type2RelationToType1, types, "type2_default_relationToType1", childOfRelation, "type1"); givenReferenceToSchemaType( type2RelationToType2, types, "type2_default_relationToType2", childOfRelation, "type2"); givenReferenceToSchemaType( type3RelationToType2, types, "type3_default_relationToType2", childOfRelation, "type2"); givenReferenceToSchemaType( type3RelationToType2NotUsedInTaxonomies, types, "type3_default_relationToType2NotUsed", normalRelation, "type2"); givenReferenceToSchemas( type4CustomRelationToType2Custom, types, "type4_custom_relationToType2Custom", childOfRelation, "type2_custom"); givenReferenceToSchemaType( zeSchemaTaxos, types, "zeSchema_default_zeSchemaTaxos", normalRelation, "type3"); givenReferenceToSchemas( anotherSchemaTaxos, types, "anotherSchema_default_anotherSchemaTaxos", normalRelation, "type2_custom"); taxonomies.add( Taxonomy.createPublic( "anotherTaxo", "anotherTaxo", "zeCollection", new ArrayList<String>())); taxonomies.add( Taxonomy.createPublic( "zeTaxo", "zeTaxo", "zeCollection", Arrays.asList("type1", "type2", "type3"))); configureMetadataWithHierarchyDependency( automaticMetaInType1UsingTaxos, types, "type1_default_inheritedauthorizations"); configureMetadataWithHierarchyDependency( automaticMetaInType2UsingTaxos, types, "type2_default_inheritedauthorizations"); configureMetadataWithHierarchyDependency( automaticMetaInType3UsingTaxos, types, "type3_default_inheritedauthorizations"); configureMetadataWithHierarchyDependency( automaticMetaInType4UsingTaxos, types, "type4_custom_inheritedauthorizations"); configureMetadataWithHierarchyDependency( automaticMetaInZeSchemaUsingTaxos, types, "zeSchema_default_inheritedauthorizations"); configureMetadataWithHierarchyDependency( automaticMetaInAnotherSchemaUsingTaxos, types, "anotherSchema_default_inheritedauthorizations"); givenReferenceToSchemaType( type1ReferenceToType1NotBusedByTaxos, types, "type1_default_notUsed", normalRelation, "type1"); givenReferenceToSchemas( type2ReferenceToType1NotBusedByTaxos, types, "type2_default_notUsed", normalRelation, "type1_default"); givenReferenceToSchemas( type3ReferenceToType2NotBusedByTaxos, types, "type3_default_notUsed", normalRelation, "type2"); givenReferenceToSchemas( type4ReferenceToType3NotBusedByTaxos, types, "type4_default_notUsed", normalRelation, "type3_default"); givenReferenceToSchemas( zeSchemaReferenceToType3NotBusedByTaxos, types, "zeSchema_default_notUsed", normalRelation, "type3_default"); givenReferenceToSchemaType( zeSchemaReferenceToZeSchema, types, "zeSchema_default_parent", childOfRelation, "zeSchema"); givenReferenceToSchemas( anotherSchemaReferenceToType3NotBusedByTaxos, types, "anotherSchema_default_notUsed", normalRelation, "type3_default"); givenReferenceToSchemas( anotherSchemaReferenceToZeSchema, types, "anotherSchema_default_parent", childOfRelation, "zeSchema_custom"); configureMockedSchemaWithTaxonomyRelations( type1Schema, types, "type1_default", type1RelationToType1); configureMockedSchemaWithTaxonomyRelations( type2Schema, types, "type2_default", type2RelationToType1, type2RelationToType2); configureMockedSchemaWithTaxonomyRelations( type2CustomSchema, types, "type2_custom", type2RelationToType1, type2RelationToType2); configureMockedSchemaWithTaxonomyRelations( type3Schema, types, "type3_default", type3RelationToType2); configureMockedSchemaWithTaxonomyRelations( type4Schema, types, "type4_custom", type4CustomRelationToType2Custom); configureMockedSchemaWithTaxonomyRelations(zeSchema, types, "zeSchema_default"); configureMockedSchemaWithTaxonomyRelations(anotherSchema, types, "anotherSchema_default"); configureMockedSchemaTypeWithTaxonomyRelations(type1, types, "type1", type1RelationToType1); configureMockedSchemaTypeWithTaxonomyRelations( type2, types, "type2", type2RelationToType1, type2RelationToType2); configureMockedSchemaTypeWithTaxonomyRelations(type3, types, "type3", type3RelationToType2); configureMockedSchemaTypeWithTaxonomyRelations( type4, types, "type4", type4CustomRelationToType2Custom); configureMockedSchemaTypeWithTaxonomyRelations(zeType, types, "zeSchema"); configureMockedSchemaTypeWithTaxonomyRelations(anotherType, types, "anotherSchema"); when(type1.getAllReferencesToTaxonomySchemas(taxonomies)).thenReturn(new ArrayList<Metadata>()); when(type2.getAllReferencesToTaxonomySchemas(taxonomies)).thenReturn(new ArrayList<Metadata>()); when(type3.getAllReferencesToTaxonomySchemas(taxonomies)).thenReturn(new ArrayList<Metadata>()); when(type4.getAllReferencesToTaxonomySchemas(taxonomies)).thenReturn(new ArrayList<Metadata>()); when(zeType.getAllReferencesToTaxonomySchemas(taxonomies)) .thenReturn(Arrays.asList(zeSchemaTaxos)); when(anotherType.getAllReferencesToTaxonomySchemas(taxonomies)) .thenReturn(Arrays.asList(anotherSchemaTaxos)); when(type1.getAllParentReferences()).thenReturn(Arrays.asList(type1RelationToType1)); when(type2.getAllParentReferences()) .thenReturn(Arrays.asList(type2RelationToType1, type2RelationToType2)); when(type3.getAllParentReferences()).thenReturn(Arrays.asList(type3RelationToType2)); when(type4.getAllParentReferences()) .thenReturn(Arrays.asList(type4CustomRelationToType2Custom)); when(zeType.getAllParentReferences()).thenReturn(Arrays.asList(zeSchemaReferenceToZeSchema)); when(anotherType.getAllParentReferences()) .thenReturn(Arrays.asList(anotherSchemaReferenceToZeSchema)); calculator = new ModificationImpactCalculator(types, taxonomies, searchServices); }