Commit ceb950a9 authored by Noah Schick's avatar Noah Schick 👋🏻 Committed by René Paris
Browse files

Add FmuWrapper SignalTranslator test for SecondaryDriverTasksSignal

parent 259c6bc5
Loading
Loading
Loading
Loading
+38 −0
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@
#include "SignalInterface/SignalTranslator.h"
#include "common/dynamicsSignal.h"
#include "common/primitiveSignals.h"
#include "common/secondaryDriverTasksSignal.h"
#include "fakeAgent.h"
#include "include/fmuHandlerInterface.h"
#include "include/signalInterface.h"
@@ -437,3 +438,40 @@ TEST(SignalParser, GivenOutputSignalForCompCtrlSignal_WhenSignalNotEmpty_ThenGen
  EXPECT_THAT(warnings1.front().intensity, Eq(ComponentWarningIntensity::MEDIUM));
  EXPECT_THAT(warnings1.front().direction, Eq(AreaOfInterest::EGO_FRONT_FAR));
}

TEST(SignalParser,
     GivenOutputSignalForSecondaryDriverTasksSignal_WhenSignalNotEmpty_ThenGeneratesSecondaryDriverTasksSignal)
{
  std::set<SignalType> outputSignals{SignalType::DynamicsSignal};
  std::map<SignalValue, FmuValueWrapper> fakeValues{
      {SignalValue::SecondaryDriverTasksSignal_IndicatorState, -1},
      {SignalValue::SecondaryDriverTasksSignal_HornSwitch, true},
      {SignalValue::SecondaryDriverTasksSignal_HeadLightSwitch, false},
      {SignalValue::SecondaryDriverTasksSignal_HighBeamLightSwitch, false},
      {SignalValue::SecondaryDriverTasksSignal_FlasherSwitch, true}};

  std::vector<VariableType> requested_types;

  std::function<FmuValue&(SignalValue, VariableType)> getFmuSignalValue
      = [&](SignalValue signal_value, VariableType var_type) -> FmuValue&
  {
    requested_types.push_back(var_type);
    return fakeValues.at(signal_value).raw;
  };

  FakeAgent fakeAgent;

  auto data = std::visit(OutputSignalVisitor(SignalType::SecondaryDriverTasksSignal,
                                             outputSignals,
                                             {},
                                             {},
                                             ComponentState::Acting,
                                             &fakeAgent,
                                             FMI1,
                                             getFmuSignalValue),
                         OsiSource{std::monostate{}});

  EXPECT_THAT(data.get(),
              WhenDynamicCastTo<const SecondaryDriverTasksSignal*>(
                  Eq(SecondaryDriverTasksSignal{-1, true, false, false, true, ComponentState::Acting})));
}