@Test
public void testWordCustomProperties() throws Exception {

    Metadata metadata = new Metadata();
    try (InputStream input = OOXMLParserTest.class.getResourceAsStream(
            "/test-documents/testWORD_custom_props.docx")) {
        ContentHandler handler = new BodyContentHandler(-1);
        ParseContext context = new ParseContext();
        context.set(Locale.class, Locale.US);
        new OOXMLParser().parse(input, handler, metadata, context);
    }
    assertEquals(
            "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
            metadata.get(Metadata.CONTENT_TYPE));
    assertEquals("EJ04325S", metadata.get(TikaCoreProperties.CREATOR));
    assertEquals("Etienne Jouvin", metadata.get(TikaCoreProperties.MODIFIER));
    assertEquals("2011-07-29T16:52:00Z", metadata.get(TikaCoreProperties.CREATED));
    assertEquals("2012-01-03T22:14:00Z", metadata.get(TikaCoreProperties.MODIFIED));
    assertEquals("Microsoft Office Word", metadata.get(OfficeOpenXMLExtended.APPLICATION));
    assertEquals("1", metadata.get(Office.PAGE_COUNT));
    assertEquals("2", metadata.get(Office.WORD_COUNT));
    assertEquals("My Title", metadata.get(TikaCoreProperties.TITLE));
    assertEquals("My Keyword", metadata.get(Office.KEYWORDS));
    assertContains("My Keyword",
            Arrays.asList(metadata.getValues(TikaCoreProperties.SUBJECT)));
    assertEquals("Normal.dotm", metadata.get(OfficeOpenXMLExtended.TEMPLATE));
    assertEquals("My subject", metadata.get(OfficeOpenXMLCore.SUBJECT));
    assertEquals("EDF-DIT", metadata.get(TikaCoreProperties.PUBLISHER));
    assertEquals("true", metadata.get("custom:myCustomBoolean"));
    assertEquals("3", metadata.get("custom:myCustomNumber"));
    assertEquals("MyStringValue", metadata.get("custom:MyCustomString"));
    assertEquals("2010-12-30T23:00:00Z", metadata.get("custom:MyCustomDate"));
    assertEquals("2010-12-29T22:00:00Z", metadata.get("custom:myCustomSecondDate"));
}