@@ -74,6 +74,9 @@ TEST_F(VariableBlocksTest, RegisterBlocks)
7474 // Monitor names
7575 EXPECT_CALL (m_engineMock, addMonitorNameFunction (m_section.get (), " data_variable" , &VariableBlocks::variableMonitorName));
7676
77+ // Monitor change functions
78+ EXPECT_CALL (m_engineMock, addMonitorChangeFunction (m_section.get (), " data_variable" , &VariableBlocks::changeVariableMonitorValue));
79+
7780 // Inputs
7881 EXPECT_CALL (m_engineMock, addInput (m_section.get (), " VALUE" , VariableBlocks::VALUE));
7982
@@ -127,6 +130,25 @@ TEST_F(VariableBlocksTest, VariableMonitorName)
127130 ASSERT_EQ (VariableBlocks::variableMonitorName (block2.get ()), " var2" );
128131}
129132
133+ TEST_F (VariableBlocksTest, ChangeVariableMonitorValue)
134+ {
135+ // [var1]
136+ auto var1 = std::make_shared<Variable>(" b" , " var1" , 2.5 );
137+ auto block1 = createVariableBlock (" a" , " data_variable" , var1);
138+
139+ // [var2]
140+ auto var2 = std::make_shared<Variable>(" d" , " var2" , " hello" );
141+ auto block2 = createVariableBlock (" c" , " data_variable" , var2);
142+
143+ VariableBlocks::changeVariableMonitorValue (block1.get (), " test" );
144+ ASSERT_EQ (var1->value ().toString (), " test" );
145+ ASSERT_EQ (var2->value ().toString (), " hello" );
146+
147+ VariableBlocks::changeVariableMonitorValue (block2.get (), -0.25 );
148+ ASSERT_EQ (var1->value ().toString (), " test" );
149+ ASSERT_EQ (var2->value ().toDouble (), -0.25 );
150+ }
151+
130152TEST_F (VariableBlocksTest, SetVariableTo)
131153{
132154 Compiler compiler (&m_engine);
0 commit comments