69 lines
2.2 KiB
C++
69 lines
2.2 KiB
C++
|
|
#include <Orders/Order.hpp>
|
|
#include <SimCore/Identifier.hpp>
|
|
#include "WHISPER/Messages/Message.hpp"
|
|
#include <chrono>
|
|
#include <memory>
|
|
#include <thread>
|
|
#include <vector>
|
|
#define CATCH_CONFIG_MAIN
|
|
#include <catch2/catch.hpp>
|
|
|
|
#include <Orders/MoveOrder.hpp>
|
|
#include <SimCore/IdentifierMaker.hpp>
|
|
|
|
|
|
SCENARIO("Testing the SimCore Sensor")
|
|
{
|
|
GIVEN("different Attributes for a Track in different forms")
|
|
{
|
|
auto OwnID = SimCore::Identifier();
|
|
auto IDMaker = SimCore::IdentifierMaker();
|
|
auto ID1 = IDMaker.getNewIdentifier(0, SimCore::ObjectSource::INTERNAL);
|
|
auto ID2 = IDMaker.getNewIdentifier(1, SimCore::ObjectSource::INTERNAL);
|
|
|
|
std::shared_ptr<Orders::MoveOrder> movOrd = std::make_shared<Orders::MoveOrder>(*ID1.get(),WHISPER::SourceType::GATEWAY);
|
|
auto list = std::vector<std::shared_ptr<Orders::Order>>();
|
|
list.push_back(movOrd);
|
|
|
|
auto rev = list[0];
|
|
std::shared_ptr<Orders::MoveOrder> mvOrder2 = nullptr;
|
|
if (rev->getOrderType() == Orders::MOVE_ORDER) {
|
|
mvOrder2 = std::dynamic_pointer_cast<Orders::MoveOrder>(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::seconds>(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::seconds>(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::seconds>(std::chrono::system_clock::now().time_since_epoch()).count());
|
|
|
|
|
|
REQUIRE(mvOrder2->Speed.getValue() == movOrd->Speed.getValue());
|
|
|
|
|
|
|
|
|
|
|
|
} //THEN
|
|
} // WHEN
|
|
} // GIVEN
|
|
} //SCENARIO
|