mirror of
https://github.com/2OOP/pism.git
synced 2026-02-04 19:04:49 +00:00
Compare commits
1 Commits
297-Fixing
...
UnitTests
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
153e6343e1 |
3
.idea/inspectionProfiles/Project_Default.xml
generated
3
.idea/inspectionProfiles/Project_Default.xml
generated
@@ -4,6 +4,9 @@
|
|||||||
<inspection_tool class="AutoCloseableResource" enabled="true" level="WARNING" enabled_by_default="true">
|
<inspection_tool class="AutoCloseableResource" enabled="true" level="WARNING" enabled_by_default="true">
|
||||||
<option name="METHOD_MATCHER_CONFIG" value="java.util.Formatter,format,java.io.Writer,append,com.google.common.base.Preconditions,checkNotNull,org.hibernate.Session,close,java.io.PrintWriter,printf,java.io.PrintStream,printf,java.lang.foreign.Arena,ofAuto,java.lang.foreign.Arena,global,org.toop.framework.audio.AudioPlayer,play,java.util.Map,remove,java.util.concurrent.Executors,newSingleThreadScheduledExecutor" />
|
<option name="METHOD_MATCHER_CONFIG" value="java.util.Formatter,format,java.io.Writer,append,com.google.common.base.Preconditions,checkNotNull,org.hibernate.Session,close,java.io.PrintWriter,printf,java.io.PrintStream,printf,java.lang.foreign.Arena,ofAuto,java.lang.foreign.Arena,global,org.toop.framework.audio.AudioPlayer,play,java.util.Map,remove,java.util.concurrent.Executors,newSingleThreadScheduledExecutor" />
|
||||||
</inspection_tool>
|
</inspection_tool>
|
||||||
|
<inspection_tool class="ThrowablePrintStackTrace" enabled="true" level="WARNING" enabled_by_default="true">
|
||||||
|
<scope name="Tests" level="WARNING" enabled="false" />
|
||||||
|
</inspection_tool>
|
||||||
<inspection_tool class="WriteOnlyObject" enabled="false" level="WARNING" enabled_by_default="false" />
|
<inspection_tool class="WriteOnlyObject" enabled="false" level="WARNING" enabled_by_default="false" />
|
||||||
</profile>
|
</profile>
|
||||||
</component>
|
</component>
|
||||||
@@ -82,6 +82,10 @@ public class MusicAsset extends BaseResource implements LoadableResource, AudioR
|
|||||||
getMediaPlayer().pause();
|
getMediaPlayer().pause();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public double getVolume() {
|
||||||
|
return volume;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void stop() {
|
public void stop() {
|
||||||
getMediaPlayer().stop();
|
getMediaPlayer().stop();
|
||||||
|
|||||||
BIN
framework/src/main/resources/test.mp3
Normal file
BIN
framework/src/main/resources/test.mp3
Normal file
Binary file not shown.
@@ -0,0 +1,128 @@
|
|||||||
|
package org.toop.framework.audio;
|
||||||
|
|
||||||
|
import javafx.application.Platform;
|
||||||
|
import javafx.scene.media.MediaPlayer;
|
||||||
|
import javafx.util.Duration;
|
||||||
|
import org.junit.jupiter.api.BeforeAll;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.toop.framework.resource.resources.MusicAsset;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.net.URL;
|
||||||
|
import java.util.concurrent.CountDownLatch;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.*;
|
||||||
|
|
||||||
|
|
||||||
|
public class MusicAssetTest {
|
||||||
|
|
||||||
|
private static boolean started = false;
|
||||||
|
private MusicAsset musicAsset;
|
||||||
|
|
||||||
|
@BeforeAll
|
||||||
|
static void initJavaFX() throws Exception {
|
||||||
|
if (started) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
CountDownLatch countDownLatch = new CountDownLatch(1);
|
||||||
|
Platform.startup(countDownLatch::countDown);
|
||||||
|
countDownLatch.await();
|
||||||
|
started = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void run(Runnable action) {
|
||||||
|
CountDownLatch countDownLatch = new CountDownLatch(1);
|
||||||
|
Platform.runLater(() -> {
|
||||||
|
try {
|
||||||
|
action.run();
|
||||||
|
} finally {
|
||||||
|
countDownLatch.countDown();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
try {
|
||||||
|
countDownLatch.await();
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private MusicAsset createMusicAsset() {
|
||||||
|
URL asset = getClass().getClassLoader().getResource("test.mp3");
|
||||||
|
assertNotNull(asset, "Test MP3 not found");
|
||||||
|
File testFile = new File(asset.getFile());
|
||||||
|
assertTrue(testFile.exists(), "File doesn't exist");
|
||||||
|
return new MusicAsset(testFile);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void wait(MediaPlayer player, MediaPlayer.Status status, long timeout) throws InterruptedException {
|
||||||
|
long start = System.currentTimeMillis();
|
||||||
|
while (player.getStatus() != status && System.currentTimeMillis() - start < timeout) {
|
||||||
|
Thread.sleep(10);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void loadMusicAssetAsLoaded() {
|
||||||
|
MusicAsset musicAsset = createMusicAsset();
|
||||||
|
run(musicAsset::load);
|
||||||
|
assertTrue(musicAsset.isLoaded());
|
||||||
|
assertNotNull(musicAsset.getMediaPlayer());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void loadMusicAssetAsNotLoaded() {
|
||||||
|
MusicAsset musicAsset = createMusicAsset();
|
||||||
|
run(musicAsset::load);
|
||||||
|
assertTrue(musicAsset.isLoaded());
|
||||||
|
run(musicAsset::unload);
|
||||||
|
assertFalse(musicAsset.isLoaded());
|
||||||
|
assertNotNull(musicAsset.getMediaPlayer());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void updateVolume() {
|
||||||
|
MusicAsset musicAsset = createMusicAsset();
|
||||||
|
musicAsset.updateVolume(0.5);
|
||||||
|
assertEquals(0.5, musicAsset.getVolume(), 0.0000001);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void playPauseStop() throws InterruptedException {
|
||||||
|
MusicAsset musicAsset = createMusicAsset();
|
||||||
|
run(musicAsset::load);
|
||||||
|
|
||||||
|
run(musicAsset::play);
|
||||||
|
wait(musicAsset.getMediaPlayer(), MediaPlayer.Status.PLAYING, 500);
|
||||||
|
assertEquals(MediaPlayer.Status.PLAYING, musicAsset.getMediaPlayer().getStatus());
|
||||||
|
|
||||||
|
run(musicAsset::pause);
|
||||||
|
wait(musicAsset.getMediaPlayer(), MediaPlayer.Status.PAUSED, 500);
|
||||||
|
assertEquals(MediaPlayer.Status.PAUSED, musicAsset.getMediaPlayer().getStatus());
|
||||||
|
|
||||||
|
run(musicAsset::stop);
|
||||||
|
wait(musicAsset.getMediaPlayer(), MediaPlayer.Status.STOPPED, 500);
|
||||||
|
assertEquals(MediaPlayer.Status.STOPPED, musicAsset.getMediaPlayer().getStatus());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void duration() throws InterruptedException {
|
||||||
|
MusicAsset musicAsset = createMusicAsset();
|
||||||
|
run(musicAsset::load);
|
||||||
|
wait(musicAsset.getMediaPlayer(), MediaPlayer.Status.READY, 500);
|
||||||
|
Duration duration = musicAsset.getMediaPlayer().getTotalDuration();
|
||||||
|
assertTrue(duration.toMillis() > 200); // file is shorter than 1 second, so gotta put it to milliseconds
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void currentPosition() throws InterruptedException {
|
||||||
|
MusicAsset musicAsset = createMusicAsset();
|
||||||
|
run(musicAsset::load);
|
||||||
|
|
||||||
|
run(musicAsset::play);
|
||||||
|
wait(musicAsset.getMediaPlayer(), MediaPlayer.Status.PLAYING, 500);
|
||||||
|
Thread.sleep(200);
|
||||||
|
Duration currentPos = musicAsset.getMediaPlayer().getCurrentTime();
|
||||||
|
assertTrue(currentPos.toMillis() > 0); // file is shorter than 1 second, so gotta put it to milliseconds
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@@ -51,7 +51,7 @@ class MockAudioResource extends BaseResource implements AudioResource {
|
|||||||
stopped = true;
|
stopped = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void pause() { paused = false; }
|
public void pause() { paused = true; }
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public long duration() {
|
public long duration() {
|
||||||
|
|||||||
Reference in New Issue
Block a user