public void testWriteFile() {
    Exception exceptionCaught = null;
    try {
      File testFile = AbstractTestCase.copyAudioToTmp("test1.wma", new File("testwrite1.wma"));
      AudioFile f = AudioFileIO.read(testFile);

      assertEquals("32", f.getAudioHeader().getBitRate());
      assertEquals(
          "ASF (audio): 0x0161 (Windows Media Audio (ver 7,8,9))",
          f.getAudioHeader().getEncodingType());
      assertEquals("2", f.getAudioHeader().getChannels());
      assertEquals("32000", f.getAudioHeader().getSampleRate());
      assertFalse(f.getAudioHeader().isVariableBitRate());

      assertTrue(f.getTag() instanceof AsfTag);
      AsfTag tag = (AsfTag) f.getTag();

      // Write some new values and save
      tag.setField(FieldKey.ARTIST, "artist2");
      tag.setField(FieldKey.ALBUM, "album2");
      tag.setField(FieldKey.TITLE, "tracktitle2");
      tag.setField(FieldKey.COMMENT, "comments2");
      tag.addField(FieldKey.YEAR, "1972");
      tag.setField(FieldKey.GENRE, "genre2");
      tag.setField(FieldKey.TRACK, "4");
      tag.setCopyright("copyright");
      tag.setRating("rating");
      tag.setField(tag.createField(FieldKey.URL_LYRICS_SITE, "http://www.lyrics.fly.com"));
      tag.setField(tag.createField(FieldKey.URL_DISCOGS_ARTIST_SITE, "http://www.discogs1.com"));
      tag.setField(tag.createField(FieldKey.URL_DISCOGS_RELEASE_SITE, "http://www.discogs2.com"));
      tag.setField(tag.createField(FieldKey.URL_OFFICIAL_ARTIST_SITE, "http://www.discogs3.com"));
      tag.setField(tag.createField(FieldKey.URL_OFFICIAL_RELEASE_SITE, "http://www.discogs4.com"));
      tag.addField(tag.createField(FieldKey.URL_WIKIPEDIA_ARTIST_SITE, "http://www.discogs5.com"));
      tag.addField(tag.createField(FieldKey.URL_WIKIPEDIA_RELEASE_SITE, "http://www.discogs6.com"));
      tag.setField(tag.createField(FieldKey.DISC_TOTAL, "3"));
      tag.setField(tag.createField(FieldKey.TRACK_TOTAL, "11"));

      // setField the IsVbr value (can be modified for now)
      tag.setField(tag.createField(AsfFieldKey.ISVBR, Boolean.TRUE.toString()));
      f.commit();

      f = AudioFileIO.read(testFile);
      tag = (AsfTag) f.getTag();

      assertTrue(f.getAudioHeader().isVariableBitRate());

      assertEquals("artist2", tag.getFirst(FieldKey.ARTIST));
      assertEquals("album2", tag.getFirst(FieldKey.ALBUM));
      assertEquals("tracktitle2", tag.getFirst(FieldKey.TITLE));
      assertEquals("comments2", tag.getFirst(FieldKey.COMMENT));
      assertEquals("1972", tag.getFirst(FieldKey.YEAR));
      assertEquals("4", tag.getFirst(FieldKey.TRACK));
      assertEquals("genre2", tag.getFirst(FieldKey.GENRE));
      assertEquals("copyright", tag.getFirstCopyright());
      assertEquals("rating", tag.getFirstRating());
      assertEquals("http://www.lyrics.fly.com", tag.getFirst(FieldKey.URL_LYRICS_SITE));
      assertEquals("http://www.discogs1.com", tag.getFirst(FieldKey.URL_DISCOGS_ARTIST_SITE));
      assertEquals("http://www.discogs2.com", tag.getFirst(FieldKey.URL_DISCOGS_RELEASE_SITE));
      assertEquals("http://www.discogs3.com", tag.getFirst(FieldKey.URL_OFFICIAL_ARTIST_SITE));
      assertEquals("http://www.discogs4.com", tag.getFirst(FieldKey.URL_OFFICIAL_RELEASE_SITE));
      assertEquals("http://www.discogs5.com", tag.getFirst(FieldKey.URL_WIKIPEDIA_ARTIST_SITE));
      assertEquals("http://www.discogs6.com", tag.getFirst(FieldKey.URL_WIKIPEDIA_RELEASE_SITE));
      assertEquals("3", tag.getFirst(FieldKey.DISC_TOTAL));
      assertEquals("11", tag.getFirst(FieldKey.TRACK_TOTAL));

      AudioFileIO.delete(f);
      f = AudioFileIO.read(testFile);
      tag = (AsfTag) f.getTag();

      assertFalse(f.getAudioHeader().isVariableBitRate());
      assertTrue(tag.isEmpty());

    } catch (Exception e) {
      e.printStackTrace();
      exceptionCaught = e;
    }
    assertNull(exceptionCaught);
  }