@Test
public void testUnwrap() {

    // zaleznosci
    Date date = new Date();
    ValueHolder h1 = new StringHolder("a");
    ValueHolder h2 = new NumberHolder(BigDecimal.ONE);
    ValueHolder h3 = new IntegerHolder(100L);
    ValueHolder h4 = new DateHolder(date);
    Object element1 = h1;
    Object element2 = new ValueHolder[]{h2, h3};
    Object element3 = h4;
    // testowany obiekt
    MultiValue mv = new DefaultMultiValue(new Object[]{element1, element2, element3});
    // test
    Object[] unwrapped = mv.unwrap();
    // oczekiwany rezultat
    Object[] expectedResult = {
        "a",
        new Object[]{BigDecimal.ONE, 100L},
        date
    };
    // weryfikacja
    assertArrayEquals(expectedResult, unwrapped);
}