/** Test M4.1 rule. */ public void testOnlyOneCorePropertiesPart_AddRelationship() { InputStream is = OpenXML4JTestDataSamples.openComplianceSampleStream( "OPCCompliance_CoreProperties_OnlyOneCorePropertiesPart.docx"); OPCPackage pkg; try { pkg = OPCPackage.open(is); } catch (InvalidFormatException e) { throw new RuntimeException(e); } catch (IOException e) { throw new RuntimeException(e); } URI partUri = createURI("/docProps/core2.xml"); try { pkg.addRelationship( PackagingURIHelper.createPartName(partUri), TargetMode.INTERNAL, PackageRelationshipTypes.CORE_PROPERTIES); fail("expected OPC compliance exception was not thrown"); } catch (InvalidFormatException e) { throw new RuntimeException(e); } catch (InvalidOperationException e) { // expected during successful test assertEquals( "OPC Compliance error [M4.1]: can't add another core properties part ! Use the built-in package method instead.", e.getMessage()); } pkg.revert(); }