package specs;

import static com.greghaskins.spectrum.Spectrum.describe;
import static com.greghaskins.spectrum.Spectrum.it;
import static com.greghaskins.spectrum.Spectrum.value;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.is;
import static org.hamcrest.Matchers.nullValue;

import com.greghaskins.spectrum.Spectrum;
import com.greghaskins.spectrum.Spectrum.Value;

import org.junit.runner.RunWith;

@RunWith(Spectrum.class)
public class MutableWrapperSpec {
  {

    describe("The Value convenience type", () -> {

      it("allows you to set the value of a 'final' variable", () -> {
        final Value<Integer> counter = value();
        counter.value = 0;
        counter.value = 1;
        assertThat(counter.value, is(1));
      });

      it("can be given a starting value", () -> {
        final Value<Double> pi = value(3.14);
        assertThat(pi.value, is(3.14));
      });

      it("has a default value of null if not specified", () -> {
        final Value<String> name = value();
        assertThat(name.value, is(nullValue()));
      });

    });
  }
}

@@ -465,16 +465,49 @@
 .class)%0A
+@SuppressWarnings(%22deprecation%22)%0A
 public c
@@ -1126,24 +1126,251 @@
 %0A      %7D);%0A%0A
+      it(%22can take an explicit class parameter, for backward compatibility with ~0.6.1%22, () -%3E %7B%0A        final Value%3CString%3E stringValue = value(String.class);%0A        assertThat(stringValue.value, is(nullValue()));%0A      %7D);%0A%0A
     %7D);%0A  %7D%0A

Make sure tests cover deprecated value(Class<T>) method