@@ -360,4 +360,70 @@ TEST_F(ParametersTest, OptionalPointerToVariant)
360360 EXPECT_EQ (std::get<Configuration *>(b_->variant ().data ), &a_->optionalConfiguration ().value ());
361361}
362362
363+ TEST_F (ParametersTest, DynamicOutput)
364+ {
365+ ASSERT_TRUE (testGraph_.addNode (std::make_unique<TestNode>(&testGraph_), " Sender" ));
366+ ASSERT_TRUE (testGraph_.addNode (std::make_unique<TestNode>(&testGraph_), " RecieverA" ));
367+ ASSERT_TRUE (testGraph_.addNode (std::make_unique<TestNode>(&testGraph_), " RecieverB" ));
368+ ASSERT_TRUE (testGraph_.addNode (std::make_unique<TestNode>(&testGraph_), " RecieverC" ));
369+ ASSERT_TRUE (testGraph_.addNode (std::make_unique<TestNode>(&testGraph_), " RecieverD" ));
370+ ASSERT_TRUE (testGraph_.addNode (std::make_unique<TestNode>(&testGraph_), " RecieverE" ));
371+
372+ auto sender = testGraph_.findNode (" Sender" );
373+ ASSERT_TRUE (sender->setInput (" Message" , std::string (" hello" )));
374+ ASSERT_EQ (testGraph_.runDynamic (sender,
375+ {
376+ {" Sender" , " Message-Part-0" , " RecieverA" , " Char" },
377+ {" Sender" , " Message-Part-1" , " RecieverB" , " Char" },
378+ {" Sender" , " Message-Part-2" , " RecieverC" , " Char" },
379+ {" Sender" , " Message-Part-3" , " RecieverD" , " Char" },
380+ {" Sender" , " Message-Part-4" , " RecieverE" , " Char" },
381+
382+ }),
383+ NodeConstants::ProcessResult::Success);
384+
385+ std::vector<char > chars;
386+ for (const auto &which : {" A" , " B" , " C" , " D" , " E" })
387+ {
388+ auto node = testGraph_.findNode (" Reciever" + std::string (which));
389+ chars.push_back (node->findInput (" Char" )->get <char >());
390+ }
391+
392+ std::string message (chars.begin (), chars.end ());
393+ ASSERT_EQ (message, " hello" );
394+ }
395+
396+ TEST_F (ParametersTest, DynamicPointerOutput)
397+ {
398+ ASSERT_TRUE (testGraph_.addNode (std::make_unique<TestNode>(&testGraph_), " Sender" ));
399+ ASSERT_TRUE (testGraph_.addNode (std::make_unique<TestNode>(&testGraph_), " RecieverA" ));
400+ ASSERT_TRUE (testGraph_.addNode (std::make_unique<TestNode>(&testGraph_), " RecieverB" ));
401+ ASSERT_TRUE (testGraph_.addNode (std::make_unique<TestNode>(&testGraph_), " RecieverC" ));
402+ ASSERT_TRUE (testGraph_.addNode (std::make_unique<TestNode>(&testGraph_), " RecieverD" ));
403+ ASSERT_TRUE (testGraph_.addNode (std::make_unique<TestNode>(&testGraph_), " RecieverE" ));
404+
405+ auto sender = testGraph_.findNode (" Sender" );
406+ ASSERT_TRUE (sender->setInput (" Message" , std::string (" hello" )));
407+ ASSERT_EQ (testGraph_.runDynamic (sender,
408+ {
409+ {" Sender" , " Message-Ptr-Part-0" , " RecieverA" , " CharPtr" },
410+ {" Sender" , " Message-Ptr-Part-1" , " RecieverB" , " CharPtr" },
411+ {" Sender" , " Message-Ptr-Part-2" , " RecieverC" , " CharPtr" },
412+ {" Sender" , " Message-Ptr-Part-3" , " RecieverD" , " CharPtr" },
413+ {" Sender" , " Message-Ptr-Part-4" , " RecieverE" , " CharPtr" },
414+
415+ }),
416+ NodeConstants::ProcessResult::Success);
417+
418+ std::vector<char > chars;
419+ for (const auto &which : {" A" , " B" , " C" , " D" , " E" })
420+ {
421+ auto node = testGraph_.findNode (" Reciever" + std::string (which));
422+ chars.push_back (*node->findInput (" CharPtr" )->get <char *>());
423+ }
424+
425+ std::string message (chars.begin (), chars.end ());
426+ ASSERT_EQ (message, " hello" );
427+ }
428+
363429} // namespace UnitTest
0 commit comments