package org.skyscreamer.yoga.demo.test;
import org.json.JSONObject;
import org.junit.Test;
import org.skyscreamer.jsonassert.JSONAssert;
import java.util.Collections;
import java.util.Map;
import static org.skyscreamer.yoga.demo.util.TestUtil.getJSONObject;
/**
* Created by IntelliJ IDEA. User: Carter Page Date: 4/19/11 Time: 6:17 PM
*/
public class AlbumControllerTest
{
@Test
public void testGetAlbum() throws Exception
{
JSONObject data = getJSONObject( "/album/1", null );
String expected = "{id:1,title:\"Funeral\",year:\"2004\","
+ "navigationLinks:{artist:{name:\"artist\",href:\"/album/1.json?selector=artist\"},"
+ "songs:{name:\"songs\",href:\"/album/1.json?selector=songs\"}}}";
JSONAssert.assertEquals( expected, data, false );
}
@Test
public void testGetArtist() throws Exception
{
Map<String, String> params = Collections.singletonMap( "selector", "artist" );
JSONObject data = getJSONObject( "/album/1", params );
String expected = "{artist:{name:\"Arcade Fire\"}}";
JSONAssert.assertEquals( expected, data, false );
data = getJSONObject( "/album/5", params );
expected = "{artist:{name:\"Prince\"}}";
JSONAssert.assertEquals( expected, data, false );
data = getJSONObject( "/album/8", params );
expected = "{artist:{name:\"Neutral Milk Hotel\"}}";
JSONAssert.assertEquals( expected, data, false );
}
@Test
public void testGetSongs() throws Exception
{
Map<String, String> params = Collections.singletonMap( "selector", "songs" );
JSONObject data = getJSONObject( "/album/1", params );
String expected = "{songs:[{title:\"Neighborhood #1 (Tunnels)\"},{title:\"Wake Up\"},{title:\"Haiti\"}]}";
JSONAssert.assertEquals( expected, data, false );
}
}