public static <V> DeferredValue<V> withValue(V value) {
        if (value == null) {
            return NULL_VALUE;
        }
        DeferredValue<V> deferredValue = new DeferredValue<>();
        deferredValue.value = value;
        deferredValue.valueExists = true;
        return deferredValue;
    }
@Test
    public void testEquals_WithValue() {
        DeferredValue<String> v1 = withValue(expected);
        DeferredValue<String> v2 = withValue(expected);
        assertEquals(v1, v2);
    }