package com.selbie.wrek.test;
import junit.framework.TestCase;
import com.selbie.wrek.metaproxy.IcecastMetadata;
public class IcecastMetadataUnitTest extends TestCase
{
public String STREAM_TITLE = "StreamTitle";
public String SIMPLE_METADATA = STREAM_TITLE + "='title of the song';";
public String URLENCODED_METADATA = STREAM_TITLE + "='Bj%C3%B6rk - Human Behavior';";
public String URLENCODED_TITLE_EXPECTED = "Bj\u00F6rk - Human Behavior";
public String NOTITLE_METADATA = "Artist='Metallica';Album='Master of Puppets';Song='Battery';";
public String EMBEDDED_QUOTE_METADATA_1 = "StreamTitle='Charlie%27s Angels';";
public String EMBEDDED_QUOTE_METADATA_2 = "StreamTitle='E%3DMC2';";
public void testMetadataParsing()
{
IcecastMetadata metadata;
String str;
metadata = new IcecastMetadata(SIMPLE_METADATA);
assertEquals(metadata.getValue("StreamTitle"), "title of the song");
assertEquals(metadata.getStreamTitle(), "title of the song");
// url encode test
metadata = new IcecastMetadata(URLENCODED_METADATA);
assertEquals(metadata.getStreamTitle(), URLENCODED_TITLE_EXPECTED);
metadata = new IcecastMetadata(NOTITLE_METADATA);
// getStreamTitle should always return an empty string if there is no title
str = metadata.getStreamTitle();
assertNotNull(str);
assertTrue(str.isEmpty());
assertEquals(metadata.getValue("Artist"), "Metallica");
assertEquals(metadata.getValue("Album"), "Master of Puppets");
assertEquals(metadata.getValue("Song"), "Battery");
metadata = new IcecastMetadata(EMBEDDED_QUOTE_METADATA_1);
assertEquals(metadata.getStreamTitle(), "Charlie's Angels");
metadata = new IcecastMetadata(EMBEDDED_QUOTE_METADATA_2);
assertEquals(metadata.getStreamTitle(), "E=MC2");
}
}