private void parseUntilNext(int event) throws XmlPullParserException, IOException {
   while (parser.next() != event) {
     if (parser.getEventType() == XmlResourceParser.END_DOCUMENT) {
       throw new RuntimeException("Impossible to find: " + event + ". End of document reached.");
     }
   }
 }
 @Test
 public void testGetEventType() throws XmlPullParserException, IOException {
   int evt;
   while ((evt = parser.next()) != XmlResourceParser.END_DOCUMENT) {
     assertThat(parser.getEventType()).isEqualTo(evt);
   }
 }
  /** Test that next tag will only return tag events. */
  @Test
  public void testNextTag() throws XmlPullParserException, IOException {
    Set<Integer> acceptableTags = new HashSet<>();
    acceptableTags.add(XmlResourceParser.START_TAG);
    acceptableTags.add(XmlResourceParser.END_TAG);

    forgeAndOpenDocument("<foo><bar/><text>message</text></foo>");
    int evt;
    do {
      evt = parser.next();
      assertTrue(acceptableTags.contains(evt));
    } while (evt == XmlResourceParser.END_TAG && "foo".equals(parser.getName()));
  }
 @Test
 public void testGetDepth() throws XmlPullParserException, IOException {
   // Recorded depths from preference file elements
   List<Integer> expectedDepths = asList(1, 2, 3, 2, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 3);
   List<Integer> actualDepths = new ArrayList<>();
   int evt;
   while ((evt = parser.next()) != XmlResourceParser.END_DOCUMENT) {
     switch (evt) {
       case (XmlResourceParser.START_TAG):
         {
           actualDepths.add(parser.getDepth());
           break;
         }
     }
   }
   assertThat(actualDepths).isEqualTo(expectedDepths);
 }
  @Test
  public void testNext() throws XmlPullParserException, IOException {
    // Recorded events while parsing preferences from Android
    List<String> expectedEvents =
        Arrays.asList(
            "<xml>", "<", // PreferenceScreen
            "<", // PreferenceCategory
            "<", // Preference
            ">", ">", "<", // PreferenceScreen
            "<", // Preference
            ">", "<", // Preference
            ">", ">", "<", // CheckBoxPreference
            ">", "<", // EditTextPreference
            ">", "<", // ListPreference
            ">", "<", // Preference
            ">", "<", // RingtonePreference
            ">", "<", // Preference
            ">", "<", ">", "<", "<", ">", ">", ">", "</xml>");
    List<String> actualEvents = new ArrayList<>();

    int evt;
    do {
      evt = parser.next();
      switch (evt) {
        case XmlPullParser.START_DOCUMENT:
          actualEvents.add("<xml>");
          break;
        case XmlPullParser.END_DOCUMENT:
          actualEvents.add("</xml>");
          break;
        case XmlPullParser.START_TAG:
          actualEvents.add("<");
          break;
        case XmlPullParser.END_TAG:
          actualEvents.add(">");
          break;
      }
    } while (evt != XmlResourceParser.END_DOCUMENT);
    assertThat(actualEvents).isEqualTo(expectedEvents);
  }
 @Test
 public void testGetXmlInt() throws XmlPullParserException, IOException {
   assertThat(parser).isNotNull();
   int evt = parser.next();
   assertThat(evt).isEqualTo(XmlResourceParser.START_DOCUMENT);
 }