@Test
public void testGet__multipleThreads() throws InterruptedException {

    // wektor, w ktorym sa obiekty SDF skojarzone z kolejnymi watkami
    final List<SimpleDateFormat> list = Collections.synchronizedList(new ArrayList<SimpleDateFormat>());
    // 10 watkow, kazdy pobiera swoj SDF i dodaje do kolekcji vector
    Thread[] threads = new Thread[10];
    for (int i = 0; i < 10; i++) {
        threads[i] = new Thread(new Runnable() {
            @Override
            public void run() {
                list.add(SimpleDateFormatPool.get("dd-MM-yyyy"));
            }
        });
        threads[i].start();
    }
    // bariera
    for (int i = 0; i < 10; i++) {
        threads[i].join();
    }
    // weryfikacja
    for (int i = 0; i < 10; i++) {
        SimpleDateFormat sdf1 = list.get(i);
        for (int j = 0; j < 10; j++) {
            if (j != i) {
                SimpleDateFormat sdf2 = list.get(j);
                assertNotSame(sdf1, sdf2);
            }
        }
    }
}