Files
KubeControl/tests/test_podcontroller.cpp

112 lines
2.8 KiB
C++

#include "kubecontrol/KubePod.hpp"
#include "nlohmann/json_fwd.hpp"
#include <string>
#include <thread>
#define CATCH_CONFIG_MAIN
#include <catch2/catch.hpp>
#include <kubecontrol/PodController.hpp>
#include <crossguid/guid.hpp>
SCENARIO("Testing the SimCore Sensor")
{
kubecontrol::PodController podc("docs/config");
std::string name = "test1";
std::string uuid = name;
std::string owner = "controller";
std::string type = "ship";
std::string image = "ship:latest";
kubecontrol::KubePod ShipPod1(owner,uuid,type,image,"simulator");
nlohmann::json vars;
vars["ENTITY_ID"] = uuid;
vars["ENTITY_NAME"] = "FGS Hamburg";
vars["ENTITY_SIDE"] = "Neutral";
vars["POSITION"]["LAT"] = "55";
vars["POSITION"]["LON"] = "8";
vars["POSITION"]["Height"] = "0";
vars["COURSE"] = "0";
vars["SPEED"] = "0";
vars["GROUNDTRUTH_PORT"] = std::to_string(10000);
vars["GROUNDTRUTH_ADDR"] = "239.0.0.1";
vars["COMMAND_PORT"] = "5555";
vars["ENTITY_RCS"] = std::to_string(850);
vars["ENTITY_SENSORS"].push_back("radar:latest");
ShipPod1.setEnvironmentVar("CONFIG", vars.dump());
// kubecontrol::KubePod pod1("Pod1",xg::newGuid().str(),"ship:latest");
// kubecontrol::KubePod pod2("Pod2",xg::newGuid().str(),"debugdebianhenry:0.1.3");
// pod2.setArgs("-c");
// pod2.setArgs("while true; do echo hello; sleep 5;done");
// pod2.setCommand("/bin/sh");
// podc.startPod(pod2);
LOG_S(INFO)<<"Starting";
podc.startPod(ShipPod1);
LOG_S(INFO)<<"started";
std::string info1 = "";
// info1 = podc.getInfoForPod("hamburg");
// nlohmann::json j1 = nlohmann::json::parse(info1);
std::this_thread::sleep_for(std::chrono::milliseconds(2000));
ShipPod1.updateInfoForThisPod(podc.getKubernetesAPI());
// podc.checkPodsHierarchy();
// LOG_S(INFO)<<podc.PodList_.size();;
// for(auto i: podc.PodList_)
// {
// LOG_S(INFO)<< i.InfoPod.Uuid;
// LOG_S(INFO)<< i.InfoPod.ToString();
// }
// nlohmann::json jall = nlohmann::json::parse(podc.getPodsInfo());
GIVEN("different Attributes for a Track in different forms")
{
WHEN("constructing Track Object with data")
{
THEN("check if Track attributes are correct")
{
auto info = podc.getInfoForPod(ShipPod1.getUUID());
for (auto item: info.Childs)
{
LOG_S(INFO)<<item.UUID;
LOG_S(INFO)<<item.IP;
LOG_S(INFO)<<item.Component;
LOG_S(INFO)<<item.Status;
}
REQUIRE(info.UUID == ShipPod1.getUUID());
REQUIRE(info.IP == ShipPod1.getIp());
REQUIRE(info.Owner == ShipPod1.getOwner());
REQUIRE(info.Component == ShipPod1.getComponent());
LOG_S(INFO)<<"Stopping";
std::this_thread::sleep_for(std::chrono::milliseconds(5000));
podc.stopAllPods();
// REQUIRE(info1 != "");
} //THEN
} // WHEN
} // GIVEN
} //SCENARIO