|
7 | 7 | #include <scratchcpp/test/scriptbuilder.h> |
8 | 8 | #include <scratch/sound_p.h> |
9 | 9 | #include <enginemock.h> |
| 10 | +#include <targetmock.h> |
10 | 11 | #include <audiooutputmock.h> |
11 | 12 | #include <audioplayermock.h> |
12 | 13 |
|
@@ -885,3 +886,63 @@ TEST_F(SoundBlocksTest, StopAllSounds_Stage) |
885 | 886 | EXPECT_CALL(m_engineMock, stopSounds()); |
886 | 887 | thread.run(); |
887 | 888 | } |
| 889 | + |
| 890 | +TEST_F(SoundBlocksTest, SetEffectTo_Invalid) |
| 891 | +{ |
| 892 | + auto target = std::make_shared<TargetMock>(); |
| 893 | + |
| 894 | + ScriptBuilder builder(m_extension.get(), m_engine, target); |
| 895 | + builder.addBlock("sound_seteffectto"); |
| 896 | + builder.addDropdownField("EFFECT", "abc"); |
| 897 | + builder.addValueInput("VALUE", 0); |
| 898 | + auto block = builder.currentBlock(); |
| 899 | + |
| 900 | + Compiler compiler(&m_engineMock, target.get()); |
| 901 | + auto code = compiler.compile(block); |
| 902 | + Script script(target.get(), block, &m_engineMock); |
| 903 | + script.setCode(code); |
| 904 | + Thread thread(target.get(), &m_engineMock, &script); |
| 905 | + |
| 906 | + EXPECT_CALL(*target, setSoundEffectValue).Times(0); |
| 907 | + thread.run(); |
| 908 | +} |
| 909 | + |
| 910 | +TEST_F(SoundBlocksTest, SetEffectTo_Pitch) |
| 911 | +{ |
| 912 | + auto target = std::make_shared<TargetMock>(); |
| 913 | + |
| 914 | + ScriptBuilder builder(m_extension.get(), m_engine, target); |
| 915 | + builder.addBlock("sound_seteffectto"); |
| 916 | + builder.addDropdownField("EFFECT", "PITCH"); |
| 917 | + builder.addValueInput("VALUE", 75.2); |
| 918 | + auto block = builder.currentBlock(); |
| 919 | + |
| 920 | + Compiler compiler(&m_engineMock, target.get()); |
| 921 | + auto code = compiler.compile(block); |
| 922 | + Script script(target.get(), block, &m_engineMock); |
| 923 | + script.setCode(code); |
| 924 | + Thread thread(target.get(), &m_engineMock, &script); |
| 925 | + |
| 926 | + EXPECT_CALL(*target, setSoundEffectValue(Sound::Effect::Pitch, 75.2)); |
| 927 | + thread.run(); |
| 928 | +} |
| 929 | + |
| 930 | +TEST_F(SoundBlocksTest, SetEffectTo_Pan) |
| 931 | +{ |
| 932 | + auto target = std::make_shared<TargetMock>(); |
| 933 | + |
| 934 | + ScriptBuilder builder(m_extension.get(), m_engine, target); |
| 935 | + builder.addBlock("sound_seteffectto"); |
| 936 | + builder.addDropdownField("EFFECT", "PAN"); |
| 937 | + builder.addValueInput("VALUE", -23.8); |
| 938 | + auto block = builder.currentBlock(); |
| 939 | + |
| 940 | + Compiler compiler(&m_engineMock, target.get()); |
| 941 | + auto code = compiler.compile(block); |
| 942 | + Script script(target.get(), block, &m_engineMock); |
| 943 | + script.setCode(code); |
| 944 | + Thread thread(target.get(), &m_engineMock, &script); |
| 945 | + |
| 946 | + EXPECT_CALL(*target, setSoundEffectValue(Sound::Effect::Pan, -23.8)); |
| 947 | + thread.run(); |
| 948 | +} |
0 commit comments