Package com.github.hakko.musiccabinet.dao.jdbc

Source Code of com.github.hakko.musiccabinet.dao.jdbc.JdbcLibraryAdditionDaoTest

package com.github.hakko.musiccabinet.dao.jdbc;

import static com.github.hakko.musiccabinet.service.library.LibraryUtil.set;
import static java.lang.String.format;
import static org.joda.time.DateTime.parse;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;

import junit.framework.Assert;

import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import com.github.hakko.musiccabinet.dao.util.PostgreSQLUtil;
import com.github.hakko.musiccabinet.domain.model.library.File;
import com.github.hakko.musiccabinet.domain.model.library.MetaData;
import com.github.hakko.musiccabinet.domain.model.library.MetaData.Mediatype;
import com.github.hakko.musiccabinet.domain.model.music.Album;
import com.github.hakko.musiccabinet.exception.ApplicationException;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath:applicationContext.xml"})
public class JdbcLibraryAdditionDaoTest {
 
  @Autowired
  private JdbcLibraryAdditionDao libraryAdditionDao;

  @Autowired
  private JdbcLibraryBrowserDao libraryBrowserDao;

  @Before
  public void createAlbumTestData() throws ApplicationException {
    PostgreSQLUtil.truncateTables(libraryAdditionDao);

    final String DIR = "/dir", FILE = "file";
    int fileNr = 0;

    List<File> files = new ArrayList<>();
    for (short year : new short[]{2000, 2002, 2004, 2001, 2003}) {
      File file = new File(DIR, FILE + ++fileNr, parse(format("%d-01-01", year)), 0);
      MetaData md = new MetaData();
      md.setArtist("artist");
      md.setTitle("title " + fileNr);
      md.setAlbum("album " + fileNr);
      md.setYear(year);
      md.setMediaType(Mediatype.OGG);
      file.setMetaData(md);
      files.add(file);
    }
   
    libraryAdditionDao.addSubdirectories(null, set(DIR));
    libraryAdditionDao.addFiles(DIR, new HashSet<>(files));
    libraryAdditionDao.updateLibrary();
  }
 
  @Test
  public void addsAlbumsOrderedByFileModificationDate() {
    List<Album> albums = libraryBrowserDao.getRecentlyAddedAlbums(0, 10, null);
   
    Assert.assertEquals(5, albums.size());
   
    Assert.assertEquals(2004, albums.get(0).getYear());
    Assert.assertEquals(2003, albums.get(1).getYear());
    Assert.assertEquals(2002, albums.get(2).getYear());
    Assert.assertEquals(2001, albums.get(3).getYear());
    Assert.assertEquals(2000, albums.get(4).getYear());
  }
   
}
TOP

Related Classes of com.github.hakko.musiccabinet.dao.jdbc.JdbcLibraryAdditionDaoTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.