Ejemplo n.º 1
0
  @Test
  public void basic() throws Throwable {
    // @formatter:off
    String json =
        "[\"vcard\","
            + "["
            + "[\"prop1\", {}, \"text\", \"one\"],"
            + "[\"prop2\", {}, \"integer\", 2]"
            + "]"
            + "]";
    // @formatter:on

    JCardRawReader reader = createReader(json);
    JCardDataStreamListener listener = mock(JCardDataStreamListener.class);

    reader.readNext(listener);

    verify(listener).beginVCard();
    verify(listener)
        .readProperty(
            null, "prop1", new VCardParameters(), VCardDataType.TEXT, JCardValue.single("one"));
    verify(listener)
        .readProperty(
            null, "prop2", new VCardParameters(), VCardDataType.INTEGER, JCardValue.single(2L));
    verifyNoMoreInteractions(listener);
  }
Ejemplo n.º 2
0
  @Test
  public void parameters() throws Throwable {
    // @formatter:off
    String json =
        "[\"vcard\","
            + "["
            + "[\"prop\", { \"a\": \"one\", \"b\": [\"two\"], \"c\": [\"three\", \"four\"] }, \"text\", \"value\"]"
            + "]"
            + "]";
    // @formatter:on

    JCardRawReader reader = createReader(json);
    JCardDataStreamListener listener = mock(JCardDataStreamListener.class);

    reader.readNext(listener);

    VCardParameters expected = new VCardParameters();
    expected.put("a", "one");
    expected.put("b", "two");
    expected.put("c", "three");
    expected.put("c", "four");

    verify(listener).beginVCard();
    verify(listener)
        .readProperty(null, "prop", expected, VCardDataType.TEXT, JCardValue.single("value"));
    verifyNoMoreInteractions(listener);
  }
Ejemplo n.º 3
0
  @Test
  public void ignore_other_json() throws Throwable {
    // @formatter:off
    String json =
        "{"
            + "\"website\": \"example.com\","
            + "\"vcard\":"
            + "[\"vcard\","
            + "["
            + "[\"prop\", {}, \"text\", \"value\"]"
            + "],"
            + "["
            + "]"
            + "]"
            + "}";
    // @formatter:on

    JCardRawReader reader = createReader(json);
    JCardDataStreamListener listener = mock(JCardDataStreamListener.class);

    reader.readNext(listener);

    verify(listener).beginVCard();
    verify(listener)
        .readProperty(
            null, "prop", new VCardParameters(), VCardDataType.TEXT, JCardValue.single("value"));
    verifyNoMoreInteractions(listener);
  }
Ejemplo n.º 4
0
  @Test
  public void bad_snytax() throws Throwable {
    // @formatter:off
    String json =
        "["
            + "[\"vcard\","
            + "["
            + "[\"prop1\", {}, \"text\", \"one\"],"
            + "[\"prop2\", {}, []]"
            + "]"
            + "],"
            + "[\"vcard\","
            + "["
            + "[\"prop1\", {}, \"text\", \"one\"],"
            + "[\"prop2\", {}, \"integer\", 2]"
            + "]"
            + "]"
            + "]";
    // @formatter:on

    JCardRawReader reader = createReader(json);
    JCardDataStreamListener listener = mock(JCardDataStreamListener.class);

    try {
      reader.readNext(listener);
      fail("JCardParseException expected.");
    } catch (JCardParseException e) {
      assertEquals(JsonToken.VALUE_STRING, e.getExpectedToken());
      assertEquals(JsonToken.START_ARRAY, e.getActualToken());
    }
    reader.readNext(listener);

    verify(listener, times(2)).beginVCard();
    verify(listener, times(2))
        .readProperty(
            null, "prop1", new VCardParameters(), VCardDataType.TEXT, JCardValue.single("one"));
    verify(listener)
        .readProperty(
            null, "prop2", new VCardParameters(), VCardDataType.INTEGER, JCardValue.single(2L));
    verifyNoMoreInteractions(listener);
  }
Ejemplo n.º 5
0
  @Test
  public void data_type_unknown() throws Throwable {
    // @formatter:off
    String json = "[\"vcard\"," + "[" + "[\"prop\", {}, \"unknown\", \"value\"]" + "]" + "]";
    // @formatter:on

    JCardRawReader reader = createReader(json);
    JCardDataStreamListener listener = mock(JCardDataStreamListener.class);

    reader.readNext(listener);

    verify(listener).beginVCard();
    verify(listener)
        .readProperty(null, "prop", new VCardParameters(), null, JCardValue.single("value"));
    verifyNoMoreInteractions(listener);
  }
Ejemplo n.º 6
0
  @Test
  public void group() throws Throwable {
    // @formatter:off
    String json =
        "[\"vcard\"," + "[" + "[\"prop\", { \"group\": \"one\" }, \"text\", \"value\"]" + "]" + "]";
    // @formatter:on

    JCardRawReader reader = createReader(json);
    JCardDataStreamListener listener = mock(JCardDataStreamListener.class);

    reader.readNext(listener);

    verify(listener).beginVCard();
    verify(listener)
        .readProperty(
            "one", "prop", new VCardParameters(), VCardDataType.TEXT, JCardValue.single("value"));
    verifyNoMoreInteractions(listener);
  }