@Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        }
        if (o == null || getClass() != o.getClass()) {
            return false;
        }

        DelegatingScheduledFutureStripper<?> that = (DelegatingScheduledFutureStripper<?>) o;

        return original.equals(that.original);
    }
@Test
    public void equals() {
        ScheduledFuture<Future<Integer>> original = taskScheduler.schedule(new SimpleCallableTestTask(), 0, TimeUnit.SECONDS);
        ScheduledFuture<Future<Integer>> joker = taskScheduler.schedule(new SimpleCallableTestTask(), 1, TimeUnit.SECONDS);

        ScheduledFuture testA = new DelegatingScheduledFutureStripper<Future<Integer>>(original);
        ScheduledFuture testB = new DelegatingScheduledFutureStripper<Future<Integer>>(original);
        ScheduledFuture testC = new DelegatingScheduledFutureStripper<Future<Integer>>(joker);

        assertNotNull(testA);
        assertEquals(testA, testA);
        assertEquals(testA, testB);
        assertNotEquals(testA, testC);
    }