### Question:
Ref { public DictatedRef<DATA> dictate() { return new DictatedRef<DATA>(this); } Ref(Class<DATA> dataClass, Supplier<DATA> whenAbsentSupplier); static Ref<D> to(Class<D> dataClass); static RefBuilder<D> of(Class<D> dataClass); static Ref<D> ofValue(D value); static Ref<D> dictactedTo(D value); DATA get(); final Class<DATA> getDataType(); final Result<DATA> getResult(); final Result<DATA> asResult(); final Optional<DATA> asOptional(); final Func0<DATA> valueSupplier(); final DATA value(); final DATA orElse(DATA elseValue); final DATA orGet(Supplier<DATA> elseValue); final DATA orElseGet(Supplier<DATA> elseValue); final Func0<TARGET> then(Func1<DATA, TARGET> mapper); final Ref<TARGET> map(Class<TARGET> targetClass, Func1<DATA, TARGET> mapper); final Substitution<DATA> butWith(DATA value); final Substitution<DATA> butFrom(Func0<DATA> supplier); Ref<DATA> whenAbsentUse(DATA defaultValue); Ref<DATA> whenAbsentGet(Supplier<DATA> defaultSupplier); Ref<DATA> whenAbsentUseDefault(); Ref<DATA> whenAbsentUseDefaultOrGet(Supplier<DATA> manualDefault); DictatedRef<DATA> dictate(); RetainedRef.Builder<DATA> retained(); static final FuncList<Ref<?>> getCurrentRefs();  }### Answer:
@Test public void testDictate() { val ref1 = Ref.ofValue("DICTATE!").dictate(); val ref2 = Ref.of(String.class).dictateTo("DICTATE!!"); assertEquals("DICTATE! DICTATE!!", ref1.value() + " " + ref2.value()); val value = With(ref1.butWith("Weak!")) .and(ref2.butWith("Weak!!")) .run(()->ref1.value() + " " + ref2.value()); assertEquals("DICTATE! DICTATE!!", value); }