@@ -946,3 +946,66 @@ TEST_F(SoundBlocksTest, SetEffectTo_Pan)
946946 EXPECT_CALL (*target, setSoundEffectValue (Sound::Effect::Pan, -23.8 ));
947947 thread.run ();
948948}
949+
950+ TEST_F (SoundBlocksTest, ChangeEffectBy_Invalid)
951+ {
952+ auto target = std::make_shared<TargetMock>();
953+
954+ ScriptBuilder builder (m_extension.get (), m_engine, target);
955+ builder.addBlock (" sound_changeeffectby" );
956+ builder.addDropdownField (" EFFECT" , " abc" );
957+ builder.addValueInput (" VALUE" , 1 );
958+ auto block = builder.currentBlock ();
959+
960+ Compiler compiler (&m_engineMock, target.get ());
961+ auto code = compiler.compile (block);
962+ Script script (target.get (), block, &m_engineMock);
963+ script.setCode (code);
964+ Thread thread (target.get (), &m_engineMock, &script);
965+
966+ EXPECT_CALL (*target, soundEffectValue).Times (0 );
967+ EXPECT_CALL (*target, setSoundEffectValue).Times (0 );
968+ thread.run ();
969+ }
970+
971+ TEST_F (SoundBlocksTest, ChangeEffectBy_Pitch)
972+ {
973+ auto target = std::make_shared<TargetMock>();
974+
975+ ScriptBuilder builder (m_extension.get (), m_engine, target);
976+ builder.addBlock (" sound_changeeffectby" );
977+ builder.addDropdownField (" EFFECT" , " PITCH" );
978+ builder.addValueInput (" VALUE" , 75.2 );
979+ auto block = builder.currentBlock ();
980+
981+ Compiler compiler (&m_engineMock, target.get ());
982+ auto code = compiler.compile (block);
983+ Script script (target.get (), block, &m_engineMock);
984+ script.setCode (code);
985+ Thread thread (target.get (), &m_engineMock, &script);
986+
987+ EXPECT_CALL (*target, soundEffectValue (Sound::Effect::Pitch)).WillOnce (Return (-28.6 ));
988+ EXPECT_CALL (*target, setSoundEffectValue (Sound::Effect::Pitch, 46.6 ));
989+ thread.run ();
990+ }
991+
992+ TEST_F (SoundBlocksTest, ChangeEffectBy_Pan)
993+ {
994+ auto target = std::make_shared<TargetMock>();
995+
996+ ScriptBuilder builder (m_extension.get (), m_engine, target);
997+ builder.addBlock (" sound_changeeffectby" );
998+ builder.addDropdownField (" EFFECT" , " PAN" );
999+ builder.addValueInput (" VALUE" , -23.8 );
1000+ auto block = builder.currentBlock ();
1001+
1002+ Compiler compiler (&m_engineMock, target.get ());
1003+ auto code = compiler.compile (block);
1004+ Script script (target.get (), block, &m_engineMock);
1005+ script.setCode (code);
1006+ Thread thread (target.get (), &m_engineMock, &script);
1007+
1008+ EXPECT_CALL (*target, soundEffectValue (Sound::Effect::Pan)).WillOnce (Return (12.5 ));
1009+ EXPECT_CALL (*target, setSoundEffectValue (Sound::Effect::Pan, -11.3 ));
1010+ thread.run ();
1011+ }
0 commit comments