#include "Orders/Order.hpp" #include "SimCore/Identifier.hpp" #include "WHISPER/Messages/Message.hpp" #include #include #include #include #define CATCH_CONFIG_MAIN #include #include #include SCENARIO("Testing the SimCore Sensor") { GIVEN("different Attributes for a Track in different forms") { auto OrderID = SimCore::Identifier(0,1); auto IDMaker = SimCore::IdentifierMaker(); auto ID1 = IDMaker.getNewIdentifier(0, SimCore::ObjectSource::INTERNAL); auto ID2 = IDMaker.getNewIdentifier(1, SimCore::ObjectSource::INTERNAL); std::shared_ptr movOrd = std::make_shared(*ID1.get(),WHISPER::SourceType::GATEWAY); auto list = std::vector>(); list.push_back(movOrd); auto rev = list[0]; std::shared_ptr mvOrder2 = nullptr; if (rev->getOrderType() == Orders::MOVE_ORDER) { mvOrder2 = std::dynamic_pointer_cast(rev); } WHEN("constructing Track Object with data") { movOrd->setPosition(SimCore::Position(100,200,500)); auto pos = SimCore::Position(100,200,500); bool res = false; if (movOrd->getPosition() == pos) { res = true; } movOrd->Speed.setValue(100); movOrd->StartTime.setValue(duration_cast(std::chrono::system_clock::now().time_since_epoch()).count()+3); THEN("check if Track attributes are correct") { REQUIRE(movOrd->getOrderID() == OrderID); REQUIRE(res == true); REQUIRE(movOrd->Speed.getValue() == 100); REQUIRE(movOrd->StartTime.getValue() > duration_cast(std::chrono::system_clock::now().time_since_epoch()).count()); std::this_thread::sleep_for(std::chrono::seconds(5)); REQUIRE(movOrd->StartTime.getValue() < duration_cast(std::chrono::system_clock::now().time_since_epoch()).count()); REQUIRE(mvOrder2->Speed.getValue() == movOrd->Speed.getValue()); } //THEN } // WHEN } // GIVEN } //SCENARIO