Files
EntityLibrary/tests/test_Tracklist.cpp

71 lines
2.0 KiB
C++

#include "Entities/Tracklist/Tracklist.hpp"
#include <SimCore/Messages/TracklistItem.hpp>
#include "SimCore/IdentifierMaker.hpp"
#include "SimCore/Messages/SimTrack.hpp"
#include "SimCore/Position.hpp"
#include "WHISPER/Messages/Message.hpp"
#include <SimCore/Identifier.hpp>
#include <SimCore/SimCore.hpp>
#include <memory>
#include <thread>
#define CATCH_CONFIG_MAIN
#include <catch2/catch.hpp>
#include <loguru.hpp>
SCENARIO("Testing the SimCore Sensor")
{
GIVEN("different Attributes for a Track in different forms")
{
TrackList::TrackList List;
// List.setTrackTimeout(5000);
double speed = 10;
double course = 90;
SimCore::Identifier id;
auto track = std::make_shared<SimCore::SimTrack>(id,"Hamburg", SimCore::Kind::EntityKind::SURFACE,SimCore::Side::FRIEND);
SimCore::Position pos;
pos.setGeodesicPos(55, 8, 0);
track->setPosition(pos);
track->Speed.setValue(speed);
track->Course.setValue(course);
SimCore::SensorData Sensor1(SimCore::Identifier(),"ARPA","127.0.0.1", SimCore::SensorKinds::RADAR);
SimCore::SensorData Sensor2(SimCore::Identifier(),"SMART","127.0.0.1", SimCore::SensorKinds::RADAR);
WHEN("constructing Track Object with data")
{
List.addTrack(track);
THEN("check if Track attributes are correct")
{
REQUIRE(List.getSize() == 1);
REQUIRE(List.getTrack(id)->getPosition().getGeocentricPos() == pos.getGeocentricPos());
REQUIRE(List.getTrack(id)->Speed.getValue() == speed);
REQUIRE(List.getTrack(id)->Course.getValue() == course);
// REQUIRE(List.getTrack(id)->getSensorCount() == 1);
track->Course.setValue(270);
List.addTrack(track);
// REQUIRE(List.getTrack(id)->Course.getValue() == 270);
// REQUIRE(List.getTrack(id)->getSensorCount() == 2);
std::this_thread::sleep_for(std::chrono::milliseconds(3000));
REQUIRE(List.getSize() == 1);
// List.stopSanitizer();
} //THEN
} // WHEN
} // GIVEN
} //SCENARIO