Ignore:
Timestamp:
02/08/13 15:11:58 (11 years ago)
Author:
twagoo
Message:

Component usage checking:

  • REST method has userspace=true default (like other methods)
  • Faster failure on deletion of used component (at the expense of explanatory details in error response)
  • Added test for this

Refs #275

File:
1 edited

Legend:

Unmodified
Added
Removed
  • ComponentRegistry/trunk/ComponentRegistry/src/test/java/clarin/cmdi/componentregistry/impl/database/ComponentRegistryDbImplTest.java

    r1992 r2556  
    348348    }
    349349
     350    @Test(expected=DeleteFailedException.class)
     351    public void testDoNotDeleteUsedComponent() throws Exception {
     352        RegistryUser user = createUser();
     353        ComponentRegistry register = getComponentRegistryForUser(null);
     354
     355        String comp1Id = "component1";
     356        String comp2Id = "component2";
     357
     358        String comp1Content = "";
     359        comp1Content += "<CMD_ComponentSpec isProfile=\"false\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n";
     360        comp1Content += "    xsi:noNamespaceSchemaLocation=\"general-component-schema.xsd\">\n";
     361        comp1Content += "    <Header/>\n";
     362        comp1Content += "    <CMD_Component name=\"Recursion\" CardinalityMin=\"1\" CardinalityMax=\"10\">\n";
     363        comp1Content += "       <CMD_Element name=\"Availability\" ValueScheme=\"string\" />\n";
     364        comp1Content += "    </CMD_Component>\n";
     365        comp1Content += "</CMD_ComponentSpec>\n";
     366
     367        ComponentDescription comp1Desc = RegistryTestHelper.addComponent(register, comp1Id, comp1Content);
     368
     369        // Component2 references component1
     370
     371        String comp2Content = "";
     372        comp2Content += "<CMD_ComponentSpec isProfile=\"false\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n";
     373        comp2Content += "    xsi:noNamespaceSchemaLocation=\"general-component-schema.xsd\">\n";
     374        comp2Content += "    <Header/>\n";
     375        comp2Content += "    <CMD_Component name=\"Recursion\" CardinalityMin=\"1\" CardinalityMax=\"10\">\n";
     376        comp2Content += "        <CMD_Element name=\"Availability\" ValueScheme=\"string\" />\n";
     377        comp2Content += "        <CMD_Component ComponentId=\"" + comp1Desc.getId() + "\" CardinalityMin=\"0\" CardinalityMax=\"5\"/>\n";
     378        comp2Content += "    </CMD_Component>\n";
     379        comp2Content += "</CMD_ComponentSpec>\n";
     380
     381        RegistryTestHelper.addComponent(register, comp2Id, comp2Content);
     382
     383        register.deleteMDComponent(comp1Desc.getId(), PRINCIPAL_ADMIN, false);
     384    }
     385
    350386    private ComponentDescription createComponent(ComponentRegistry registry) throws Exception {
    351387        ComponentDescription description = getComponentDesc();
Note: See TracChangeset for help on using the changeset viewer.