@@ -74,6 +74,9 @@ TEST_F(VariableBlocksTest, RegisterBlocks)
74
74
// Monitor names
75
75
EXPECT_CALL (m_engineMock, addMonitorNameFunction (m_section.get (), " data_variable" , &VariableBlocks::variableMonitorName));
76
76
77
+ // Monitor change functions
78
+ EXPECT_CALL (m_engineMock, addMonitorChangeFunction (m_section.get (), " data_variable" , &VariableBlocks::changeVariableMonitorValue));
79
+
77
80
// Inputs
78
81
EXPECT_CALL (m_engineMock, addInput (m_section.get (), " VALUE" , VariableBlocks::VALUE));
79
82
@@ -127,6 +130,25 @@ TEST_F(VariableBlocksTest, VariableMonitorName)
127
130
ASSERT_EQ (VariableBlocks::variableMonitorName (block2.get ()), " var2" );
128
131
}
129
132
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
+
130
152
TEST_F (VariableBlocksTest, SetVariableTo)
131
153
{
132
154
Compiler compiler (&m_engine);
0 commit comments