diff options
Diffstat (limited to 'solo-tool-project/test/solo_tool_volume_integrationtest.py')
-rw-r--r-- | solo-tool-project/test/solo_tool_volume_integrationtest.py | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/solo-tool-project/test/solo_tool_volume_integrationtest.py b/solo-tool-project/test/solo_tool_volume_integrationtest.py new file mode 100644 index 0000000..cc1aeef --- /dev/null +++ b/solo-tool-project/test/solo_tool_volume_integrationtest.py @@ -0,0 +1,54 @@ +import pytest + +from fixtures import soloTool as uut, mockPlayer, testSongs + +def test_perSongVolumeFlow(uut, mockPlayer, testSongs): + # Before a song is added, the volume starts at 100% + assert uut.song is None + assert mockPlayer.currentSong == None + assert uut.volume == 1.0 + assert mockPlayer.volume == 1.0 + + # When songs are added, their volume starts at 100% + uut.addSong(testSongs[0]) + assert uut.song == 0 + assert uut.volume == 1.0 + assert mockPlayer.volume == 1.0 + + # It's possible to change the volume + uut.volume = 0.5 + assert uut.volume == 0.5 + assert mockPlayer.volume == 0.5 + + # New song song is added, volume stays because the new song is not selected + uut.addSong(testSongs[1]) + assert uut.song == 0 + assert uut.volume == 0.5 + assert mockPlayer.volume == 0.5 + + # Select new song, volume is 100% + uut.song = 1 + assert uut.volume == 1.0 + assert mockPlayer.volume == 1.0 + + uut.volume = 0.75 + + # Previous song retains its volume + uut.song = 0 + assert uut.volume == 0.5 + assert mockPlayer.volume == 0.5 + + # New song also + uut.song = 1 + assert uut.volume == 0.75 + assert mockPlayer.volume == 0.75 + +def test_perSongVolumeEdgeCases(uut, mockPlayer, testSongs): + # If the player volume is not 100% when the first song is added, it is set to 100% + uut.volume = 0.5 + assert mockPlayer.volume == 0.5 + + uut.addSong(testSongs[0]) + assert uut.volume == 1.0 + assert mockPlayer.volume == 1.0 + |