My fork of airsonic with experimental fixes and improvements. See branch "custom"
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

88 lines
4.0 KiB

package org.airsonic.player.util;
import org.airsonic.player.domain.MediaLibraryStatistics;
import org.junit.Test;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import static org.junit.Assert.*;
public class UtilTest {
@Test
public void objectToStringMapNull() {
MediaLibraryStatistics statistics = null;
Map<String, String> stringStringMap = Util.objectToStringMap(statistics);
assertNull(stringStringMap);
}
@Test
public void objectToStringMap() {
Date date = new Date(1568350960725L);
MediaLibraryStatistics statistics = new MediaLibraryStatistics(date);
statistics.incrementAlbums(5);
statistics.incrementSongs(4);
statistics.incrementArtists(910823);
statistics.incrementTotalDurationInSeconds(30);
statistics.incrementTotalLengthInBytes(2930491082L);
Map<String, String> stringStringMap = Util.objectToStringMap(statistics);
assertEquals("5", stringStringMap.get("albumCount"));
assertEquals("4", stringStringMap.get("songCount"));
assertEquals("910823", stringStringMap.get("artistCount"));
assertEquals("30", stringStringMap.get("totalDurationInSeconds"));
assertEquals("2930491082", stringStringMap.get("totalLengthInBytes"));
assertEquals("1568350960725", stringStringMap.get("scanDate"));
}
@Test
public void stringMapToObject() {
Map<String, String> stringStringMap = new HashMap<>();
stringStringMap.put("albumCount", "5");
stringStringMap.put("songCount", "4");
stringStringMap.put("artistCount", "910823");
stringStringMap.put("totalDurationInSeconds", "30");
stringStringMap.put("totalLengthInBytes", "2930491082");
stringStringMap.put("scanDate", "1568350960725");
MediaLibraryStatistics statistics = Util.stringMapToObject(MediaLibraryStatistics.class, stringStringMap);
assertEquals(new Integer(5), statistics.getAlbumCount());
assertEquals(new Integer(4), statistics.getSongCount());
assertEquals(new Integer(910823), statistics.getArtistCount());
assertEquals(new Long(30L), statistics.getTotalDurationInSeconds());
assertEquals(new Long(2930491082L), statistics.getTotalLengthInBytes());
assertEquals(new Date(1568350960725L), statistics.getScanDate());
}
@Test
public void stringMapToObjectWithExtraneousData() {
Map<String, String> stringStringMap = new HashMap<>();
stringStringMap.put("albumCount", "5");
stringStringMap.put("songCount", "4");
stringStringMap.put("artistCount", "910823");
stringStringMap.put("totalDurationInSeconds", "30");
stringStringMap.put("totalLengthInBytes", "2930491082");
stringStringMap.put("scanDate", "1568350960725");
stringStringMap.put("extraneousData", "nothingHereToLookAt");
MediaLibraryStatistics statistics = Util.stringMapToObject(MediaLibraryStatistics.class, stringStringMap);
assertEquals(new Integer(5), statistics.getAlbumCount());
assertEquals(new Integer(4), statistics.getSongCount());
assertEquals(new Integer(910823), statistics.getArtistCount());
assertEquals(new Long(30L), statistics.getTotalDurationInSeconds());
assertEquals(new Long(2930491082L), statistics.getTotalLengthInBytes());
assertEquals(new Date(1568350960725L), statistics.getScanDate());
}
public void stringMapToObjectWithNoData() {
Map<String, String> stringStringMap = new HashMap<>();
MediaLibraryStatistics statistics = Util.stringMapToObject(MediaLibraryStatistics.class, stringStringMap);
assertNotNull(statistics);
}
@Test(expected = IllegalArgumentException.class)
public void stringMapToValidObjectWithNoData() {
Map<String, String> stringStringMap = new HashMap<>();
MediaLibraryStatistics statistics = Util.stringMapToValidObject(MediaLibraryStatistics.class, stringStringMap);
}
}