Move index meta information

Signed-off-by: Andrew DeMaria <lostonamountain@gmail.com>
This commit is contained in:
Andrew DeMaria
2019-11-03 13:59:27 -07:00
parent a79b56fe5a
commit 437d8ce947
13 changed files with 315 additions and 124 deletions
@@ -178,6 +178,12 @@ public class MediaScannerServiceTestCase {
assertNotNull(mediaFile);
}
@Test
public void testNeverScanned() {
mediaScannerService.neverScanned();
}
@Test
public void testMusicBrainzReleaseIdTag() {
@@ -0,0 +1,31 @@
package org.airsonic.player.service;
import org.airsonic.player.domain.MediaLibraryStatistics;
import org.airsonic.player.service.search.IndexManager;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import static org.junit.Assert.*;
import static org.mockito.Mockito.when;
@RunWith(MockitoJUnitRunner.class)
public class MediaScannerServiceUnitTest {
@InjectMocks
MediaScannerService mediaScannerService;
@Mock
IndexManager indexManager;
@Test
public void neverScanned() {
when(indexManager.getStatistics()).thenReturn(null);
assertTrue(mediaScannerService.neverScanned());
when(indexManager.getStatistics()).thenReturn(new MediaLibraryStatistics());
assertFalse(mediaScannerService.neverScanned());
}
}
@@ -172,7 +172,7 @@ public class IndexManagerTestCase extends AbstractAirsonicHomeTest {
/* Does not scan, only expunges the index. */
indexManager.startIndexing();
indexManager.expunge();
indexManager.stopIndexing();
indexManager.stopIndexing(indexManager.getStatistics());
/*
* Subsequent search results.
@@ -0,0 +1,88 @@
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);
}
}