#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(OrderID,*ID1.get(),*ID2.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->setSpeed(100); movOrd->setStartTime(duration_cast(std::chrono::system_clock::now().time_since_epoch()).count()+3); THEN("check if Track attributes are correct") { REQUIRE(movOrd->getOrderID() == OrderID); REQUIRE(movOrd->getOrderingEntity() == *ID1.get()); REQUIRE(movOrd->getOrderedEntity() == *ID2.get()); REQUIRE(res == true); REQUIRE(movOrd->getSpeed() == 100); REQUIRE(movOrd->getStartTime() > duration_cast(std::chrono::system_clock::now().time_since_epoch()).count()); std::this_thread::sleep_for(std::chrono::seconds(5)); REQUIRE(movOrd->getStartTime() < duration_cast(std::chrono::system_clock::now().time_since_epoch()).count()); REQUIRE(mvOrder2->getSpeed() == movOrd->getSpeed()); } //THEN } // WHEN } // GIVEN } //SCENARIO