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.
150 lines
7.2 KiB
150 lines
7.2 KiB
package org.airsonic.player.dao;
|
|
|
|
import org.airsonic.player.domain.Player;
|
|
import org.airsonic.player.domain.Transcoding;
|
|
import org.junit.Before;
|
|
import org.junit.Test;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
import java.util.List;
|
|
|
|
import static org.junit.Assert.assertEquals;
|
|
|
|
/**
|
|
* Unit test of {@link TranscodingDao}.
|
|
*
|
|
* @author Sindre Mehus
|
|
*/
|
|
public class TranscodingDaoTestCase extends DaoTestCaseBean2 {
|
|
|
|
@Autowired
|
|
TranscodingDao transcodingDao;
|
|
|
|
@Autowired
|
|
PlayerDao playerDao;
|
|
|
|
@Before
|
|
public void setUp() {
|
|
getJdbcTemplate().execute("delete from transcoding2");
|
|
}
|
|
|
|
@Test
|
|
public void testCreateTranscoding() {
|
|
Transcoding transcoding = new Transcoding(null, "name", "sourceFormats", "targetFormat", "step1", "step2", "step3", false);
|
|
transcodingDao.createTranscoding(transcoding);
|
|
|
|
Transcoding newTranscoding = transcodingDao.getAllTranscodings().get(0);
|
|
assertTranscodingEquals(transcoding, newTranscoding);
|
|
}
|
|
|
|
@Test
|
|
public void testUpdateTranscoding() {
|
|
Transcoding transcoding = new Transcoding(null, "name", "sourceFormats", "targetFormat", "step1", "step2", "step3", false);
|
|
transcodingDao.createTranscoding(transcoding);
|
|
transcoding = transcodingDao.getAllTranscodings().get(0);
|
|
|
|
transcoding.setName("newName");
|
|
transcoding.setSourceFormats("newSourceFormats");
|
|
transcoding.setTargetFormat("newTargetFormats");
|
|
transcoding.setStep1("newStep1");
|
|
transcoding.setStep2("newStep2");
|
|
transcoding.setStep3("newStep3");
|
|
transcoding.setDefaultActive(true);
|
|
transcodingDao.updateTranscoding(transcoding);
|
|
|
|
Transcoding newTranscoding = transcodingDao.getAllTranscodings().get(0);
|
|
assertTranscodingEquals(transcoding, newTranscoding);
|
|
}
|
|
|
|
@Test
|
|
public void testDeleteTranscoding() {
|
|
assertEquals("Wrong number of transcodings.", 0, transcodingDao.getAllTranscodings().size());
|
|
|
|
transcodingDao.createTranscoding(new Transcoding(null, "name", "sourceFormats", "targetFormat", "step1", "step2", "step3", true));
|
|
assertEquals("Wrong number of transcodings.", 1, transcodingDao.getAllTranscodings().size());
|
|
|
|
transcodingDao.createTranscoding(new Transcoding(null, "name", "sourceFormats", "targetFormat", "step1", "step2", "step3", true));
|
|
assertEquals("Wrong number of transcodings.", 2, transcodingDao.getAllTranscodings().size());
|
|
|
|
transcodingDao.deleteTranscoding(transcodingDao.getAllTranscodings().get(0).getId());
|
|
assertEquals("Wrong number of transcodings.", 1, transcodingDao.getAllTranscodings().size());
|
|
|
|
transcodingDao.deleteTranscoding(transcodingDao.getAllTranscodings().get(0).getId());
|
|
assertEquals("Wrong number of transcodings.", 0, transcodingDao.getAllTranscodings().size());
|
|
}
|
|
|
|
@Test
|
|
public void testPlayerTranscoding() {
|
|
Player player = new Player();
|
|
playerDao.createPlayer(player);
|
|
|
|
transcodingDao.createTranscoding(new Transcoding(null, "name", "sourceFormats", "targetFormat", "step1", "step2", "step3", false));
|
|
transcodingDao.createTranscoding(new Transcoding(null, "name", "sourceFormats", "targetFormat", "step1", "step2", "step3", false));
|
|
transcodingDao.createTranscoding(new Transcoding(null, "name", "sourceFormats", "targetFormat", "step1", "step2", "step3", false));
|
|
Transcoding transcodingA = transcodingDao.getAllTranscodings().get(0);
|
|
Transcoding transcodingB = transcodingDao.getAllTranscodings().get(1);
|
|
Transcoding transcodingC = transcodingDao.getAllTranscodings().get(2);
|
|
|
|
List<Transcoding> activeTranscodings = transcodingDao.getTranscodingsForPlayer(player.getId());
|
|
assertEquals("Wrong number of transcodings.", 0, activeTranscodings.size());
|
|
|
|
transcodingDao.setTranscodingsForPlayer(player.getId(), new int[]{transcodingA.getId()});
|
|
activeTranscodings = transcodingDao.getTranscodingsForPlayer(player.getId());
|
|
assertEquals("Wrong number of transcodings.", 1, activeTranscodings.size());
|
|
assertTranscodingEquals(transcodingA, activeTranscodings.get(0));
|
|
|
|
transcodingDao.setTranscodingsForPlayer(player.getId(), new int[]{transcodingB.getId(), transcodingC.getId()});
|
|
activeTranscodings = transcodingDao.getTranscodingsForPlayer(player.getId());
|
|
assertEquals("Wrong number of transcodings.", 2, activeTranscodings.size());
|
|
assertTranscodingEquals(transcodingB, activeTranscodings.get(0));
|
|
assertTranscodingEquals(transcodingC, activeTranscodings.get(1));
|
|
|
|
transcodingDao.setTranscodingsForPlayer(player.getId(), new int[0]);
|
|
activeTranscodings = transcodingDao.getTranscodingsForPlayer(player.getId());
|
|
assertEquals("Wrong number of transcodings.", 0, activeTranscodings.size());
|
|
}
|
|
|
|
@Test
|
|
public void testCascadingDeletePlayer() {
|
|
Player player = new Player();
|
|
playerDao.createPlayer(player);
|
|
|
|
transcodingDao.createTranscoding(new Transcoding(null, "name", "sourceFormats", "targetFormat", "step1", "step2", "step3", true));
|
|
Transcoding transcoding = transcodingDao.getAllTranscodings().get(0);
|
|
|
|
transcodingDao.setTranscodingsForPlayer(player.getId(), new int[]{transcoding.getId()});
|
|
List<Transcoding> activeTranscodings = transcodingDao.getTranscodingsForPlayer(player.getId());
|
|
assertEquals("Wrong number of transcodings.", 1, activeTranscodings.size());
|
|
|
|
playerDao.deletePlayer(player.getId());
|
|
activeTranscodings = transcodingDao.getTranscodingsForPlayer(player.getId());
|
|
assertEquals("Wrong number of transcodings.", 0, activeTranscodings.size());
|
|
}
|
|
|
|
@Test
|
|
public void testCascadingDeleteTranscoding() {
|
|
Player player = new Player();
|
|
playerDao.createPlayer(player);
|
|
|
|
transcodingDao.createTranscoding(new Transcoding(null, "name", "sourceFormats", "targetFormat", "step1", "step2", "step3", true));
|
|
Transcoding transcoding = transcodingDao.getAllTranscodings().get(0);
|
|
|
|
transcodingDao.setTranscodingsForPlayer(player.getId(), new int[]{transcoding.getId()});
|
|
List<Transcoding> activeTranscodings = transcodingDao.getTranscodingsForPlayer(player.getId());
|
|
assertEquals("Wrong number of transcodings.", 1, activeTranscodings.size());
|
|
|
|
transcodingDao.deleteTranscoding(transcoding.getId());
|
|
activeTranscodings = transcodingDao.getTranscodingsForPlayer(player.getId());
|
|
assertEquals("Wrong number of transcodings.", 0, activeTranscodings.size());
|
|
}
|
|
|
|
private void assertTranscodingEquals(Transcoding expected, Transcoding actual) {
|
|
assertEquals("Wrong name.", expected.getName(), actual.getName());
|
|
assertEquals("Wrong source formats.", expected.getSourceFormats(), actual.getSourceFormats());
|
|
assertEquals("Wrong target format.", expected.getTargetFormat(), actual.getTargetFormat());
|
|
assertEquals("Wrong step 1.", expected.getStep1(), actual.getStep1());
|
|
assertEquals("Wrong step 2.", expected.getStep2(), actual.getStep2());
|
|
assertEquals("Wrong step 3.", expected.getStep3(), actual.getStep3());
|
|
assertEquals("Wrong default active.", expected.isDefaultActive(), actual.isDefaultActive());
|
|
}
|
|
}
|
|
|