Merge branch 'pr/435' into develop

master
Andrew DeMaria 8 years ago
commit deec5cfc27
No known key found for this signature in database
GPG Key ID: 0A3F5E91F8364EDF
  1. 34
      libresonic-main/src/test/java/org/libresonic/player/service/MediaScannerServiceTestCase.java

@ -3,8 +3,8 @@ package org.libresonic.player.service;
import com.codahale.metrics.ConsoleReporter; import com.codahale.metrics.ConsoleReporter;
import com.codahale.metrics.MetricRegistry; import com.codahale.metrics.MetricRegistry;
import com.codahale.metrics.Timer; import com.codahale.metrics.Timer;
import junit.framework.Assert;
import org.apache.commons.io.IOUtils; import org.apache.commons.io.IOUtils;
import org.junit.Assert;
import org.junit.ClassRule; import org.junit.ClassRule;
import org.junit.Rule; import org.junit.Rule;
import org.junit.Test; import org.junit.Test;
@ -38,16 +38,15 @@ import static org.junit.Assert.assertNotNull;
/** /**
* A unit test class to test the MediaScannerService. * A unit test class to test the MediaScannerService.
* * <p>
* This class uses the Spring application context configuration present in the * This class uses the Spring application context configuration present in the
* /org/libresonic/player/service/mediaScannerServiceTestCase/ directory. * /org/libresonic/player/service/mediaScannerServiceTestCase/ directory.
* * <p>
* The media library is found in the /MEDIAS directory. * The media library is found in the /MEDIAS directory.
* It is composed of 2 musicFolders (Music and Music2) and several little weight audio files. * It is composed of 2 musicFolders (Music and Music2) and several little weight audio files.
* * <p>
* At runtime, the subsonic_home dir is set to target/test-classes/org/libresonic/player/service/mediaScannerServiceTestCase. * At runtime, the subsonic_home dir is set to target/test-classes/org/libresonic/player/service/mediaScannerServiceTestCase.
* An empty database is created on the fly. * An empty database is created on the fly.
*
*/ */
@ContextConfiguration(locations = { @ContextConfiguration(locations = {
"/applicationContext-service.xml", "/applicationContext-service.xml",
@ -60,6 +59,7 @@ public class MediaScannerServiceTestCase {
@ClassRule @ClassRule
public static final SpringClassRule classRule = new SpringClassRule() { public static final SpringClassRule classRule = new SpringClassRule() {
LibresonicHomeRule libresonicRule = new LibresonicHomeRule(); LibresonicHomeRule libresonicRule = new LibresonicHomeRule();
@Override @Override
public Statement apply(Statement base, Description description) { public Statement apply(Statement base, Description description) {
Statement spring = super.apply(base, description); Statement spring = super.apply(base, description);
@ -118,33 +118,33 @@ public class MediaScannerServiceTestCase {
globalTimerContext.stop(); globalTimerContext.stop();
System.out.println("--- Report of records count per table ---"); System.out.println("--- Report of records count per table ---");
Map<String,Integer> records = TestCaseUtils.recordsInAllTables(daoHelper); Map<String, Integer> records = TestCaseUtils.recordsInAllTables(daoHelper);
records.keySet().forEach(tableName -> System.out.println(tableName+" : "+records.get(tableName).toString() )); records.keySet().forEach(tableName -> System.out.println(tableName + " : " + records.get(tableName).toString()));
System.out.println("--- *********************** ---"); System.out.println("--- *********************** ---");
// Music Folder Music must have 3 children // Music Folder Music must have 3 children
List<MediaFile> listeMusicChildren = mediaFileDao.getChildrenOf(MusicFolderTestData.resolveMusicFolderPath()); List<MediaFile> listeMusicChildren = mediaFileDao.getChildrenOf(MusicFolderTestData.resolveMusicFolderPath());
Assert.assertEquals(3,listeMusicChildren.size()); Assert.assertEquals(3, listeMusicChildren.size());
// Music Folder Music2 must have 1 children // Music Folder Music2 must have 1 children
List<MediaFile> listeMusic2Children = mediaFileDao.getChildrenOf(MusicFolderTestData.resolveMusic2FolderPath()); List<MediaFile> listeMusic2Children = mediaFileDao.getChildrenOf(MusicFolderTestData.resolveMusic2FolderPath());
Assert.assertEquals(1,listeMusic2Children.size()); Assert.assertEquals(1, listeMusic2Children.size());
System.out.println("--- List of all artists ---"); System.out.println("--- List of all artists ---");
System.out.println("artistName#albumCount"); System.out.println("artistName#albumCount");
List<Artist> allArtists = artistDao.getAlphabetialArtists(0,0,musicFolderDao.getAllMusicFolders()); List<Artist> allArtists = artistDao.getAlphabetialArtists(0, 0, musicFolderDao.getAllMusicFolders());
allArtists.forEach(artist -> System.out.println(artist.getName()+"#"+artist.getAlbumCount())); allArtists.forEach(artist -> System.out.println(artist.getName() + "#" + artist.getAlbumCount()));
System.out.println("--- *********************** ---"); System.out.println("--- *********************** ---");
System.out.println("--- List of all albums ---"); System.out.println("--- List of all albums ---");
System.out.println("name#artist"); System.out.println("name#artist");
List<Album> allAlbums = albumDao.getAlphabetialAlbums(0,0,true,musicFolderDao.getAllMusicFolders()); List<Album> allAlbums = albumDao.getAlphabetialAlbums(0, 0, true, musicFolderDao.getAllMusicFolders());
allAlbums.forEach(album -> System.out.println(album.getName()+"#"+album.getArtist())); allAlbums.forEach(album -> System.out.println(album.getName() + "#" + album.getArtist()));
Assert.assertEquals(5,allAlbums.size()); Assert.assertEquals(5, allAlbums.size());
System.out.println("--- *********************** ---"); System.out.println("--- *********************** ---");
List<MediaFile> listeSongs = mediaFileDao.getSongsByGenre("Baroque Instrumental",0,0,musicFolderDao.getAllMusicFolders()); List<MediaFile> listeSongs = mediaFileDao.getSongsByGenre("Baroque Instrumental", 0, 0, musicFolderDao.getAllMusicFolders());
Assert.assertEquals(2,listeSongs.size()); Assert.assertEquals(2, listeSongs.size());
// display out metrics report // display out metrics report
ConsoleReporter reporter = ConsoleReporter.forRegistry(metrics) ConsoleReporter reporter = ConsoleReporter.forRegistry(metrics)
@ -165,7 +165,7 @@ public class MediaScannerServiceTestCase {
File musicFile = artistDir.toPath().resolve(fileName).toFile(); File musicFile = artistDir.toPath().resolve(fileName).toFile();
IOUtils.copy(resource.getInputStream(), new FileOutputStream(musicFile)); IOUtils.copy(resource.getInputStream(), new FileOutputStream(musicFile));
MusicFolder musicFolder = new MusicFolder(1, temporaryFolder.getRoot(),"Music",true,new Date()); MusicFolder musicFolder = new MusicFolder(1, temporaryFolder.getRoot(), "Music", true, new Date());
musicFolderDao.createMusicFolder(musicFolder); musicFolderDao.createMusicFolder(musicFolder);
settingsService.clearMusicFolderCache(); settingsService.clearMusicFolderCache();
TestCaseUtils.execScan(mediaScannerService); TestCaseUtils.execScan(mediaScannerService);

Loading…
Cancel
Save