// Path: jackson/src/main/java/com/spotify/hamcrest/jackson/IsJsonNumber.java
// public static Matcher<JsonNode> jsonInt(int number) {
//   return new IsJsonNumber(is(number), NumericNode::asInt);
// }
// 
// Path: jackson/src/main/java/com/spotify/hamcrest/jackson/IsJsonObject.java
// public static IsJsonObject jsonObject() {
//   return new IsJsonObject(new LinkedHashMap<>());
// }
// 
// Path: jackson/src/main/java/com/spotify/hamcrest/jackson/IsJsonStringMatching.java
// public static Matcher<String> isJsonStringMatching(final Matcher<JsonNode> matcher) {
//   return new IsJsonStringMatching(matcher);
// }


import org.hamcrest.Description;
import org.hamcrest.Matcher;
import org.hamcrest.StringDescription;
import org.junit.Test;
import static com.spotify.hamcrest.jackson.IsJsonNumber.jsonInt;
import static com.spotify.hamcrest.jackson.IsJsonObject.jsonObject;
import static com.spotify.hamcrest.jackson.IsJsonStringMatching.isJsonStringMatching;
import static org.hamcrest.CoreMatchers.any;
import static org.hamcrest.CoreMatchers.containsString;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.core.Is.is;
import static org.hamcrest.core.IsNot.not;
import com.fasterxml.jackson.databind.JsonNode;
    final Description description = new StringDescription();
    sut.describeTo(description);

    assertThat(description.toString(), is(
        "A JSON string that matches {\n"
        + "}")
    );
  }

  @Test
  public void testNull() throws Exception {
    final Matcher<String> sut = isJsonStringMatching(any(JsonNode.class));

    assertThat(null, not(sut));
  }

  @Test
  public void validJsonMatchesAnything() throws Exception {
    final Matcher<String> sut = isJsonStringMatching(any(JsonNode.class));

    assertThat("{}", sut);
  }

  @Test
  public void validJsonMatchesAnObject() throws Exception {
    assertThat("{}", isJsonStringMatching(jsonObject()));
  }

  @Test
  public void testJsonInt() throws Exception {
// Path: jackson/src/main/java/com/spotify/hamcrest/jackson/IsJsonNumber.java
// public static Matcher<JsonNode> jsonInt(int number) {
//   return new IsJsonNumber(is(number), NumericNode::asInt);
// }
// 
// Path: jackson/src/main/java/com/spotify/hamcrest/jackson/IsJsonObject.java
// public static IsJsonObject jsonObject() {
//   return new IsJsonObject(new LinkedHashMap<>());
// }
// 
// Path: jackson/src/main/java/com/spotify/hamcrest/jackson/IsJsonStringMatching.java
// public static Matcher<String> isJsonStringMatching(final Matcher<JsonNode> matcher) {
//   return new IsJsonStringMatching(matcher);
// }


// Path: jackson/src/test/java/com/spotify/hamcrest/jackson/IsJsonStringMatchingTest.java
import org.hamcrest.Description;
import org.hamcrest.Matcher;
import org.hamcrest.StringDescription;
import org.junit.Test;
import static com.spotify.hamcrest.jackson.IsJsonNumber.jsonInt;
import static com.spotify.hamcrest.jackson.IsJsonObject.jsonObject;
import static com.spotify.hamcrest.jackson.IsJsonStringMatching.isJsonStringMatching;
import static org.hamcrest.CoreMatchers.any;
import static org.hamcrest.CoreMatchers.containsString;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.core.Is.is;
import static org.hamcrest.core.IsNot.not;
import com.fasterxml.jackson.databind.JsonNode;

    final Description description = new StringDescription();
    sut.describeTo(description);

    assertThat(description.toString(), is(
        "A JSON string that matches {\n"
        + "}")
    );
  }

  @Test
  public void testNull() throws Exception {
    final Matcher<String> sut = isJsonStringMatching(any(JsonNode.class));

    assertThat(null, not(sut));
  }

  @Test
  public void validJsonMatchesAnything() throws Exception {
    final Matcher<String> sut = isJsonStringMatching(any(JsonNode.class));

    assertThat("{}", sut);
  }

  @Test
  public void validJsonMatchesAnObject() throws Exception {
    assertThat("{}", isJsonStringMatching(jsonObject()));
  }

  @Test
  public void testJsonInt() throws Exception {
    assertThat("123", isJsonStringMatching(jsonInt(123)));