diff --git a/src/common/data_provider/src/hardware/architectureDependantARMMac.cpp b/src/common/data_provider/src/hardware/architectureDependantARMMac.cpp index 208214a2b5..f8b207b5db 100644 --- a/src/common/data_provider/src/hardware/architectureDependantARMMac.cpp +++ b/src/common/data_provider/src/hardware/architectureDependantARMMac.cpp @@ -15,7 +15,7 @@ #define kIOMainPortDefault kIOMasterPortDefault #endif -double getMhz(IOsPrimitivesMac* osPrimitives) +int getMhz(IOsPrimitivesMac* osPrimitives) { constexpr auto MHz{1000000}; uint64_t cpuHz = 0; @@ -134,5 +134,5 @@ double getMhz(IOsPrimitivesMac* osPrimitives) } } - return static_cast(cpuHz) / MHz; + return cpuHz / MHz; } diff --git a/src/common/data_provider/src/hardware/architectureDependantX86_64Mac.cpp b/src/common/data_provider/src/hardware/architectureDependantX86_64Mac.cpp index f985e70820..dd12563e02 100644 --- a/src/common/data_provider/src/hardware/architectureDependantX86_64Mac.cpp +++ b/src/common/data_provider/src/hardware/architectureDependantX86_64Mac.cpp @@ -11,7 +11,7 @@ #include "hardwareWrapperImplMac.h" -double getMhz(IOsPrimitivesMac* osPrimitives) +int getMhz(IOsPrimitivesMac* osPrimitives) { constexpr auto MHz{1000000}; uint64_t cpuHz{0}; @@ -28,5 +28,5 @@ double getMhz(IOsPrimitivesMac* osPrimitives) }; } - return static_cast(cpuHz) / MHz; + return cpuHz / MHz; } diff --git a/src/common/data_provider/src/hardware/hardwareWrapperImplMac.h b/src/common/data_provider/src/hardware/hardwareWrapperImplMac.h index 701571c987..a01ecd9a01 100644 --- a/src/common/data_provider/src/hardware/hardwareWrapperImplMac.h +++ b/src/common/data_provider/src/hardware/hardwareWrapperImplMac.h @@ -23,7 +23,7 @@ #include "sharedDefs.h" -double getMhz(IOsPrimitivesMac* osPrimitives = nullptr); +int getMhz(IOsPrimitivesMac* osPrimitives = nullptr); template class OSHardwareWrapperMac final : public IOSHardwareWrapper, public TOsPrimitivesMac @@ -35,7 +35,7 @@ class OSHardwareWrapperMac final : public IOSHardwareWrapper, public TOsPrimitiv std::string boardSerial() const { - std::string ret{UNKNOWN_VALUE}; + std::string ret{EMPTY_VALUE}; const auto rawData{UtilsWrapperMac::exec("system_profiler SPHardwareDataType | grep Serial")}; if (!rawData.empty()) @@ -105,7 +105,7 @@ class OSHardwareWrapperMac final : public IOSHardwareWrapper, public TOsPrimitiv return cores; } - double cpuMhz() + int cpuMhz() { return getMhz(static_cast(this)); } diff --git a/src/common/data_provider/src/hardware/hardwareWrapperInterface.h b/src/common/data_provider/src/hardware/hardwareWrapperInterface.h index 04169133cc..6ff575057f 100644 --- a/src/common/data_provider/src/hardware/hardwareWrapperInterface.h +++ b/src/common/data_provider/src/hardware/hardwareWrapperInterface.h @@ -25,7 +25,7 @@ class IOSHardwareWrapper virtual std::string boardSerial() const = 0; virtual std::string cpuName() const = 0; virtual int cpuCores() const = 0; - virtual double cpuMhz() = 0; + virtual int cpuMhz() = 0; virtual uint64_t ramTotal() const = 0; virtual uint64_t ramFree() const = 0; virtual uint64_t ramUsage() const = 0; diff --git a/src/common/data_provider/src/network/networkBSDWrapper.h b/src/common/data_provider/src/network/networkBSDWrapper.h index 1edf6513be..d54d0debbc 100644 --- a/src/common/data_provider/src/network/networkBSDWrapper.h +++ b/src/common/data_provider/src/network/networkBSDWrapper.h @@ -58,9 +58,9 @@ class NetworkBSDInterface final : public INetworkInterfaceWrapper return m_interfaceAddress->ifa_name ? Utils::substrOnFirstOccurrence(m_interfaceAddress->ifa_name, ":") : ""; } - std::string adapter() const override + void adapter(nlohmann::json& network) const override { - return ""; + network["adapter"] = UNKNOWN_VALUE; } int family() const override @@ -84,12 +84,12 @@ class NetworkBSDInterface final : public INetworkInterfaceWrapper &(reinterpret_cast(m_interfaceAddress->ifa_netmask))->sin_addr) : ""; } - std::string broadcast() const override + void broadcast(nlohmann::json& network) const override { - return m_interfaceAddress->ifa_dstaddr ? + network["broadcast"] = m_interfaceAddress->ifa_dstaddr ? Utils::NetworkHelper::IAddressToBinary( m_interfaceAddress->ifa_dstaddr->sa_family, - &(reinterpret_cast(m_interfaceAddress->ifa_dstaddr))->sin_addr) : ""; + &(reinterpret_cast(m_interfaceAddress->ifa_dstaddr))->sin_addr) : EMPTY_VALUE; } std::string addressV6() const override @@ -108,17 +108,17 @@ class NetworkBSDInterface final : public INetworkInterfaceWrapper &(reinterpret_cast(m_interfaceAddress->ifa_netmask))->sin6_addr) : ""; } - std::string broadcastV6() const override + void broadcastV6(nlohmann::json& network) const override { - return m_interfaceAddress->ifa_dstaddr ? + network["broadcast"] = m_interfaceAddress->ifa_dstaddr ? Utils::NetworkHelper::IAddressToBinary( m_interfaceAddress->ifa_dstaddr->sa_family, - &(reinterpret_cast(m_interfaceAddress->ifa_dstaddr))->sin6_addr) : ""; + &(reinterpret_cast(m_interfaceAddress->ifa_dstaddr))->sin6_addr) : EMPTY_VALUE; } - std::string gateway() const override + void gateway(nlohmann::json& network) const override { - std::string retVal; + network["gateway"] = UNKNOWN_VALUE; size_t tableSize { 0 }; int mib[] = { CTL_NET, AF_ROUTE, 0, AF_UNSPEC, NET_RT_FLAGS, RTF_UP | RTF_GATEWAY }; @@ -144,7 +144,7 @@ class NetworkBSDInterface final : public INetworkInterfaceWrapper if (sock && AF_INET == sock->sa_family) { - retVal = Utils::NetworkHelper::IAddressToBinary(AF_INET, &reinterpret_cast(sock)->sin_addr); + network["gateway"] = Utils::NetworkHelper::IAddressToBinary(AF_INET, &reinterpret_cast(sock)->sin_addr); } break; @@ -154,28 +154,30 @@ class NetworkBSDInterface final : public INetworkInterfaceWrapper } } } - - return retVal; } - std::string metrics() const override + void metrics(nlohmann::json& network) const override { - return ""; + network["metric"] = UNKNOWN_VALUE; } - std::string metricsV6() const override + void metricsV6(nlohmann::json& network) const override { - return ""; + network["metric"] = UNKNOWN_VALUE; } - std::string dhcp() const override + void dhcp(nlohmann::json& network) const override { - return "unknown"; + network["dhcp"] = UNKNOWN_VALUE; } - uint32_t mtu() const override + void mtu(nlohmann::json& network) const override { - return m_interfaceAddress->ifa_data ? reinterpret_cast(m_interfaceAddress->ifa_data)->ifi_mtu : 0; + network["mtu"] = UNKNOWN_VALUE; + if(m_interfaceAddress->ifa_data) + { + network["mtu"] = reinterpret_cast(m_interfaceAddress->ifa_data)->ifi_mtu; + } } LinkStats stats() const override @@ -197,28 +199,29 @@ class NetworkBSDInterface final : public INetworkInterfaceWrapper return retVal; } - std::string type() const override + void type(nlohmann::json& network) const override { - std::string retVal { UNKNOWN_VALUE }; + network["type"] = UNKNOWN_VALUE; if (m_interfaceAddress->ifa_addr) { auto sdl { reinterpret_cast(m_interfaceAddress->ifa_addr) }; const auto type { Utils::NetworkHelper::getNetworkTypeStringCode(sdl->sdl_type, NETWORK_INTERFACE_TYPE) }; - retVal = type.empty() ? UNKNOWN_VALUE : type; + if(!type.empty()) + { + network["type"] = type; + } } - - return retVal; } - std::string state() const override + void state(nlohmann::json& network) const override { - return m_interfaceAddress->ifa_flags & IFF_UP ? "up" : "down"; + network["state"] = m_interfaceAddress->ifa_flags & IFF_UP ? "up" : "down"; } - std::string MAC() const override + void MAC(nlohmann::json& network) const override { - std::string retVal { "00:00:00:00:00:00" }; + network["mac"] = UNKNOWN_VALUE; auto sdl { reinterpret_cast(m_interfaceAddress->ifa_addr) }; std::stringstream ss; @@ -239,11 +242,9 @@ class NetworkBSDInterface final : public INetworkInterfaceWrapper } } - retVal = ss.str(); + network["mac"] = ss.str(); } } - - return retVal; } }; diff --git a/src/common/data_provider/src/network/networkInterfaceBSD.cpp b/src/common/data_provider/src/network/networkInterfaceBSD.cpp index e3a8d87ad8..0db11e6fb7 100644 --- a/src/common/data_provider/src/network/networkInterfaceBSD.cpp +++ b/src/common/data_provider/src/network/networkInterfaceBSD.cpp @@ -55,9 +55,9 @@ void BSDNetworkImpl::buildNetworkData(nlohmann::json& network) nlohmann::json ipv4JS {}; ipv4JS["address"] = address; ipv4JS["netmask"] = m_interfaceAddress->netmask(); - ipv4JS["broadcast"] = m_interfaceAddress->broadcast(); - ipv4JS["metric"] = m_interfaceAddress->metrics(); - ipv4JS["dhcp"] = m_interfaceAddress->dhcp(); + m_interfaceAddress->broadcast(ipv4JS); + m_interfaceAddress->metrics(ipv4JS); + m_interfaceAddress->dhcp(ipv4JS); network["IPv4"].push_back(ipv4JS); } @@ -76,9 +76,9 @@ void BSDNetworkImpl::buildNetworkData(nlohmann::json& network) nlohmann::json ipv6JS {}; ipv6JS["address"] = address; ipv6JS["netmask"] = m_interfaceAddress->netmaskV6(); - ipv6JS["broadcast"] = m_interfaceAddress->broadcastV6(); - ipv6JS["metric"] = m_interfaceAddress->metricsV6(); - ipv6JS["dhcp"] = m_interfaceAddress->dhcp(); + m_interfaceAddress->broadcastV6(ipv6JS); + m_interfaceAddress->metricsV6(ipv6JS); + m_interfaceAddress->dhcp(ipv6JS); network["IPv6"].push_back(ipv6JS); } @@ -93,10 +93,10 @@ void BSDNetworkImpl::buildNetworkData(nlohmann::json& network) /* Get stats of interface */ network["name"] = m_interfaceAddress->name(); - network["adapter"] = m_interfaceAddress->adapter(); - network["state"] = m_interfaceAddress->state(); - network["type"] = m_interfaceAddress->type(); - network["mac"] = m_interfaceAddress->MAC(); + m_interfaceAddress->adapter(network); + m_interfaceAddress->state(network); + m_interfaceAddress->type(network); + m_interfaceAddress->MAC(network); const auto stats { m_interfaceAddress->stats() }; @@ -109,6 +109,6 @@ void BSDNetworkImpl::buildNetworkData(nlohmann::json& network) network["tx_dropped"] = stats.txDropped; network["rx_dropped"] = stats.rxDropped; - network["mtu"] = m_interfaceAddress->mtu(); - network["gateway"] = m_interfaceAddress->gateway(); + m_interfaceAddress->mtu(network); + m_interfaceAddress->gateway(network); } diff --git a/src/common/data_provider/src/packages/brewWrapper.h b/src/common/data_provider/src/packages/brewWrapper.h index 9584b0e8f0..98ae3a4aad 100644 --- a/src/common/data_provider/src/packages/brewWrapper.h +++ b/src/common/data_provider/src/packages/brewWrapper.h @@ -23,16 +23,15 @@ class BrewWrapper final : public IPackageWrapper explicit BrewWrapper(const PackageContext& ctx) : m_name{ctx.package} , m_version{Utils::splitIndex(ctx.version, '_', 0)} - , m_groups{UNKNOWN_VALUE} - , m_description {UNKNOWN_VALUE} - , m_architecture{UNKNOWN_VALUE} + , m_groups{EMPTY_VALUE} + , m_description {EMPTY_VALUE} + , m_architecture{EMPTY_VALUE} , m_format{"pkg"} , m_source{"homebrew"} , m_location{ctx.filePath} - , m_priority{UNKNOWN_VALUE} - , m_size{0} - , m_vendor{UNKNOWN_VALUE} - , m_installTime{UNKNOWN_VALUE} + , m_priority{EMPTY_VALUE} + , m_vendor{EMPTY_VALUE} + , m_installTime{EMPTY_VALUE} { const auto rows { Utils::split(Utils::getFileContent(ctx.filePath + "/" + ctx.package + "/" + ctx.version + "/.brew/" + ctx.package + ".rb"), '\n')}; @@ -65,66 +64,76 @@ class BrewWrapper final : public IPackageWrapper ~BrewWrapper() = default; - std::string name() const override + void name(nlohmann::json& package) const override { - return m_name; + package["name"] = m_name; } - std::string version() const override + + void version(nlohmann::json& package) const override { - return m_version; + package["version"] = m_version; } - std::string groups() const override + + void groups(nlohmann::json& package) const override { - return m_groups; + package["groups"] = UNKNOWN_VALUE; } - std::string description() const override + + void description(nlohmann::json& package) const override { - return m_description; + package["description"] = m_description; } - std::string architecture() const override + + void architecture(nlohmann::json& package) const override { - return m_architecture; + package["architecture"] = UNKNOWN_VALUE; } - std::string format() const override + + void format(nlohmann::json& package) const override { - return m_format; + package["format"] = m_format; } - std::string osPatch() const override + + void osPatch(nlohmann::json& package) const override { - return m_osPatch; + package["os_patch"] = UNKNOWN_VALUE; } - std::string source() const override + + void source(nlohmann::json& package) const override { - return m_source; + package["source"] = m_source; } - std::string location() const override + + void location(nlohmann::json& package) const override { - return m_location; + package["location"] = m_location; } - std::string vendor() const override + + void vendor(nlohmann::json& package) const override { - return m_vendor; + package["vendor"] = UNKNOWN_VALUE; } - std::string priority() const override + void priority(nlohmann::json& package) const override { - return m_priority; + package["priority"] = UNKNOWN_VALUE; } - int size() const override + void size(nlohmann::json& package) const override { - return m_size; + package["size"] = UNKNOWN_VALUE; } - std::string install_time() const override + void install_time(nlohmann::json& package) const override { - return m_installTime; + package["install_time"] = UNKNOWN_VALUE; } - std::string multiarch() const override + void multiarch(nlohmann::json& package) const override { - return m_multiarch; + package["multiarch"] = UNKNOWN_VALUE; } + private: std::string m_name; std::string m_version; @@ -136,7 +145,6 @@ class BrewWrapper final : public IPackageWrapper const std::string m_source; const std::string m_location; std::string m_priority; - int m_size; std::string m_vendor; std::string m_installTime; std::string m_multiarch; diff --git a/src/common/data_provider/src/packages/macportsWrapper.h b/src/common/data_provider/src/packages/macportsWrapper.h index 22fbae57b1..e849a340ff 100644 --- a/src/common/data_provider/src/packages/macportsWrapper.h +++ b/src/common/data_provider/src/packages/macportsWrapper.h @@ -31,83 +31,82 @@ class MacportsWrapper final : public IPackageWrapper { public: explicit MacportsWrapper(SQLiteLegacy::IStatement& stmt) - : m_version{UNKNOWN_VALUE} - , m_groups {UNKNOWN_VALUE} - , m_description {UNKNOWN_VALUE} - , m_architecture{UNKNOWN_VALUE} + : m_version{EMPTY_VALUE} + , m_groups {EMPTY_VALUE} + , m_description {EMPTY_VALUE} + , m_architecture{EMPTY_VALUE} , m_format{"macports"} - , m_osPatch {UNKNOWN_VALUE} - , m_source{UNKNOWN_VALUE} - , m_location{UNKNOWN_VALUE} - , m_priority{UNKNOWN_VALUE} - , m_size{0} - , m_vendor{UNKNOWN_VALUE} - , m_installTime{UNKNOWN_VALUE} + , m_osPatch {EMPTY_VALUE} + , m_source{EMPTY_VALUE} + , m_location{EMPTY_VALUE} + , m_priority{EMPTY_VALUE} + , m_vendor{EMPTY_VALUE} + , m_installTime{EMPTY_VALUE} { getPkgData(stmt); } ~MacportsWrapper() = default; - std::string name() const override + void name(nlohmann::json& package) const override { - return m_name; + package["name"] = m_name; } - std::string version() const override + void version(nlohmann::json& package) const override { - return m_version; + package["version"] = m_version; } - std::string groups() const override + void groups(nlohmann::json& package) const override { - return m_groups; + package["groups"] = UNKNOWN_VALUE; } - std::string description() const override + void description(nlohmann::json& package) const override { - return m_description; + package["description"] = UNKNOWN_VALUE; } - std::string architecture() const override + void architecture(nlohmann::json& package) const override { - return m_architecture; + package["architecture"] = m_architecture; } - std::string format() const override + void format(nlohmann::json& package) const override { - return m_format; + package["format"] = m_format; } - std::string osPatch() const override + void osPatch(nlohmann::json& package) const override { - return m_osPatch; + package["os_patch"] = UNKNOWN_VALUE; } - std::string source() const override + void source(nlohmann::json& package) const override { - return m_source; + package["source"] = UNKNOWN_VALUE; } - std::string location() const override + void location(nlohmann::json& package) const override { - return m_location; + package["location"] = m_location; } - std::string vendor() const override + void vendor(nlohmann::json& package) const override { - return m_vendor; + package["vendor"] = UNKNOWN_VALUE; } - std::string priority() const override + void priority(nlohmann::json& package) const override { - return m_priority; + package["priority"] = UNKNOWN_VALUE; } - int size() const override + void size(nlohmann::json& package) const override { - return m_size; + package["size"] = UNKNOWN_VALUE; } - std::string install_time() const override + void install_time(nlohmann::json& package) const override { - return m_installTime; + package["install_time"] = m_installTime; } - std::string multiarch() const override + void multiarch(nlohmann::json& package) const override { - return m_multiarch; + package["multiarch"] = UNKNOWN_VALUE; } private: void getPkgData(SQLiteLegacy::IStatement& stmt) @@ -178,7 +177,6 @@ class MacportsWrapper final : public IPackageWrapper std::string m_location; std::string m_multiarch; std::string m_priority; - int m_size; std::string m_vendor; std::string m_installTime; }; diff --git a/src/common/data_provider/src/packages/packageMac.cpp b/src/common/data_provider/src/packages/packageMac.cpp index 8aa1c0f6c3..39db5669fd 100644 --- a/src/common/data_provider/src/packages/packageMac.cpp +++ b/src/common/data_provider/src/packages/packageMac.cpp @@ -57,17 +57,17 @@ BSDPackageImpl::BSDPackageImpl(const std::shared_ptr& packageWr void BSDPackageImpl::buildPackageData(nlohmann::json& package) { - package["name"] = m_packageWrapper->name(); - package["version"] = m_packageWrapper->version(); - package["groups"] = m_packageWrapper->groups(); - package["description"] = m_packageWrapper->description(); - package["architecture"] = m_packageWrapper->architecture(); - package["format"] = m_packageWrapper->format(); - package["source"] = m_packageWrapper->source(); - package["location"] = m_packageWrapper->location(); - package["priority"] = m_packageWrapper->priority(); - package["size"] = m_packageWrapper->size(); - package["vendor"] = m_packageWrapper->vendor(); - package["install_time"] = m_packageWrapper->install_time(); - package["multiarch"] = m_packageWrapper->multiarch(); + m_packageWrapper->name(package); + m_packageWrapper->version(package); + m_packageWrapper->groups(package); + m_packageWrapper->description(package); + m_packageWrapper->architecture(package); + m_packageWrapper->format(package); + m_packageWrapper->source(package); + m_packageWrapper->location(package); + m_packageWrapper->priority(package); + m_packageWrapper->size(package); + m_packageWrapper->vendor(package); + m_packageWrapper->install_time(package); + m_packageWrapper->multiarch(package); } diff --git a/src/common/data_provider/src/packages/pkgWrapper.h b/src/common/data_provider/src/packages/pkgWrapper.h index 8e5f3d4177..d59e4fc6f3 100644 --- a/src/common/data_provider/src/packages/pkgWrapper.h +++ b/src/common/data_provider/src/packages/pkgWrapper.h @@ -30,17 +30,17 @@ class PKGWrapper final : public IPackageWrapper { public: explicit PKGWrapper(const PackageContext& ctx) - : m_version{UNKNOWN_VALUE} - , m_groups{UNKNOWN_VALUE} - , m_description {UNKNOWN_VALUE} - , m_architecture{UNKNOWN_VALUE} + : m_version{EMPTY_VALUE} + , m_groups{EMPTY_VALUE} + , m_description {EMPTY_VALUE} + , m_architecture{EMPTY_VALUE} , m_format{"pkg"} - , m_source {UNKNOWN_VALUE} - , m_location {UNKNOWN_VALUE} - , m_priority {UNKNOWN_VALUE} + , m_source {EMPTY_VALUE} + , m_location {EMPTY_VALUE} + , m_priority {EMPTY_VALUE} , m_size {0} - , m_vendor{UNKNOWN_VALUE} - , m_installTime {UNKNOWN_VALUE} + , m_vendor{EMPTY_VALUE} + , m_installTime {EMPTY_VALUE} { if (Utils::endsWith(ctx.package, ".app")) { @@ -54,65 +54,65 @@ class PKGWrapper final : public IPackageWrapper ~PKGWrapper() = default; - std::string name() const override + void name(nlohmann::json& package) const override { - return m_name; + package["name"] = m_name; } - std::string version() const override + void version(nlohmann::json& package) const override { - return m_version; + package["version"] = m_version; } - std::string groups() const override + void groups(nlohmann::json& package) const override { - return m_groups; + package["groups"] = m_groups; } - std::string description() const override + void description(nlohmann::json& package) const override { - return m_description; + package["description"] = m_description; } - std::string architecture() const override + void architecture(nlohmann::json& package) const override { - return m_architecture; + package["architecture"] = UNKNOWN_VALUE; } - std::string format() const override + void format(nlohmann::json& package) const override { - return m_format; + package["format"] = m_format; } - std::string osPatch() const override + void osPatch(nlohmann::json& package) const override { - return m_osPatch; + package["os_patch"] = UNKNOWN_VALUE; } - std::string source() const override + void source(nlohmann::json& package) const override { - return m_source; + package["source"] = m_source; } - std::string location() const override + void location(nlohmann::json& package) const override { - return m_location; + package["location"] = m_location; } - std::string vendor() const override + void vendor(nlohmann::json& package) const override { - return m_vendor; + package["vendor"] = m_vendor; } - std::string priority() const override + void priority(nlohmann::json& package) const override { - return m_priority; + package["priority"] = UNKNOWN_VALUE; } - int size() const override + int size(nlohmann::json& package) const override { - return m_size; + package["size"] = UNKNOWN_VALUE; } - std::string install_time() const override + void install_time(nlohmann::json& package) const override { - return m_installTime; + package["install_time"] = m_installTime; } - std::string multiarch() const override + void multiarch(nlohmann::json& package) const override { - return m_multiarch; + package["multiarch"] = UNKNOWN_VALUE; } private: @@ -209,11 +209,11 @@ class PKGWrapper final : public IPackageWrapper } } - m_architecture = UNKNOWN_VALUE; - m_multiarch = UNKNOWN_VALUE; - m_priority = UNKNOWN_VALUE; + m_architecture = EMPTY_VALUE; + m_multiarch = EMPTY_VALUE; + m_priority = EMPTY_VALUE; m_size = 0; - m_installTime = UNKNOWN_VALUE; + m_installTime = EMPTY_VALUE; m_source = filePath.find(UTILITIES_FOLDER) ? "utilities" : "applications"; m_location = filePath; } @@ -309,7 +309,7 @@ class PKGWrapper final : public IPackageWrapper } } - m_multiarch = UNKNOWN_VALUE; + m_multiarch = EMPTY_VALUE; m_source = "receipts"; m_location = filePath; } diff --git a/src/common/data_provider/src/ports/portBSDWrapper.h b/src/common/data_provider/src/ports/portBSDWrapper.h index a595702332..49e571f955 100644 --- a/src/common/data_provider/src/ports/portBSDWrapper.h +++ b/src/common/data_provider/src/ports/portBSDWrapper.h @@ -67,19 +67,18 @@ class BSDPortWrapper final : public IPortWrapper }; ~BSDPortWrapper() = default; - std::string protocol() const override + void protocol(nlohmann::json& port) const override { - std::string retVal; + port["protocol"] = UNKNOWN_VALUE; const auto it { PORTS_TYPE.find(m_spSocketInfo->psi.soi_kind) }; if (it != PORTS_TYPE.end()) { - retVal = AF_INET6 == m_spSocketInfo->psi.soi_family ? it->second + "6" : it->second; + port["protocol"] = AF_INET6 == m_spSocketInfo->psi.soi_family ? it->second + "6" : it->second; } - - return retVal; } - std::string localIp() const override + + void localIp(nlohmann::json& port) const override { char ipAddress[NI_MAXHOST] { 0 }; @@ -98,13 +97,15 @@ class BSDPortWrapper final : public IPortWrapper getnameinfo(reinterpret_cast(&socketAddressIn), sizeof(socketAddressIn), ipAddress, sizeof(ipAddress), nullptr, 0, NI_NUMERICHOST); } - return Utils::substrOnFirstOccurrence(ipAddress, "%"); + port["local_ip"] = Utils::substrOnFirstOccurrence(ipAddress, "%"); } - int32_t localPort() const override + + void localPort(nlohmann::json& port) const override { - return ntohs(m_spSocketInfo->psi.soi_proto.pri_in.insi_lport); + port["local_port"] = ntohs(m_spSocketInfo->psi.soi_proto.pri_in.insi_lport); } - std::string remoteIP() const override + + void remoteIP(nlohmann::json& port) const override { char ipAddress[NI_MAXHOST] { 0 }; @@ -124,27 +125,32 @@ class BSDPortWrapper final : public IPortWrapper getnameinfo(reinterpret_cast(&socketAddressIn), sizeof(socketAddressIn), ipAddress, sizeof(ipAddress), nullptr, 0, NI_NUMERICHOST); } - return Utils::substrOnFirstOccurrence(ipAddress, "%"); + port["remote_ip"] = Utils::substrOnFirstOccurrence(ipAddress, "%"); } - int32_t remotePort() const override + + void remotePort(nlohmann::json& port) const override { - return ntohs(m_spSocketInfo->psi.soi_proto.pri_in.insi_fport); + port["remote_port"] = ntohs(m_spSocketInfo->psi.soi_proto.pri_in.insi_fport); } - int32_t txQueue() const override + + void txQueue(nlohmann::json& port) const override { - return 0; + port["tx_queue"] = UNKNOWN_VALUE; } - int32_t rxQueue() const override + + void rxQueue(nlohmann::json& port) const override { - return 0; + port["rx_queue"] = UNKNOWN_VALUE; } - int64_t inode() const override + + void inode(nlohmann::json& port) const override { - return 0; + port["inode"] = 0; } - std::string state() const override + + void state(nlohmann::json& port) const override { - std::string retVal; + port["state"] = UNKNOWN_VALUE; const auto itProtocol { PORTS_TYPE.find(m_spSocketInfo->psi.soi_kind) }; @@ -154,21 +160,19 @@ class BSDPortWrapper final : public IPortWrapper if (itState != STATE_TYPE.end()) { - retVal = itState->second; + port["state"] = itState->second; } } - - return retVal; } - int32_t pid() const override + void pid(nlohmann::json& port) const override { - return m_processInformation.pid; + port["pid"] = m_processInformation.pid; } - std::string processName() const override + void processName(nlohmann::json& port) const override { - return m_processInformation.processName; + port["process"] = m_processInformation.processName; } }; diff --git a/src/common/data_provider/src/ports/portLinuxWrapper.h b/src/common/data_provider/src/ports/portLinuxWrapper.h index 85bc3bee47..e035c4e678 100644 --- a/src/common/data_provider/src/ports/portLinuxWrapper.h +++ b/src/common/data_provider/src/ports/portLinuxWrapper.h @@ -252,7 +252,7 @@ class LinuxPortWrapper final : public IPortWrapper } catch (...) { - port["inode"] = UNKNOWN_VALUE; + port["inode"] = 0; } } diff --git a/src/common/data_provider/src/sysInfoUnix.cpp b/src/common/data_provider/src/sysInfoUnix.cpp index 9954260d04..9b81009077 100644 --- a/src/common/data_provider/src/sysInfoUnix.cpp +++ b/src/common/data_provider/src/sysInfoUnix.cpp @@ -26,12 +26,12 @@ static void getOsInfoFromUname(nlohmann::json& info) static std::string getSerialNumber() { - return UNKNOWN_VALUE; + return EMPTY_VALUE; } static std::string getCpuName() { - return UNKNOWN_VALUE; + return EMPTY_VALUE; } static int getCpuMHz() diff --git a/src/common/data_provider/tests/sysInfoHardwareMac/sysInfoHardwareMac_test.cpp b/src/common/data_provider/tests/sysInfoHardwareMac/sysInfoHardwareMac_test.cpp index ec45666713..f893f846f9 100644 --- a/src/common/data_provider/tests/sysInfoHardwareMac/sysInfoHardwareMac_test.cpp +++ b/src/common/data_provider/tests/sysInfoHardwareMac/sysInfoHardwareMac_test.cpp @@ -28,7 +28,7 @@ class OSHardwareWrapperMacMock: public IOSHardwareWrapper MOCK_METHOD(std::string, boardSerial, (), (const override)); MOCK_METHOD(std::string, cpuName, (), (const override)); MOCK_METHOD(int, cpuCores, (), (const override)); - MOCK_METHOD(double, cpuMhz, (), (override)); + MOCK_METHOD(int, cpuMhz, (), (override)); MOCK_METHOD(uint64_t, ramTotal, (), (const override)); MOCK_METHOD(uint64_t, ramFree, (), (const override)); MOCK_METHOD(uint64_t, ramUsage, (), (const override)); @@ -41,7 +41,7 @@ TEST_F(SysInfoHardwareMacTest, Test_BuildHardwareData_Succeed) EXPECT_CALL(*mock, boardSerial()).WillOnce(Return("H2WH91N3Q6NY")); EXPECT_CALL(*mock, cpuName()).WillOnce(Return("Macmini9,1")); EXPECT_CALL(*mock, cpuCores()).WillOnce(Return(8)); - EXPECT_CALL(*mock, cpuMhz()).WillOnce(Return(3204.0)); + EXPECT_CALL(*mock, cpuMhz()).WillOnce(Return(3204)); EXPECT_CALL(*mock, ramTotal()).WillOnce(Return(16777216)); EXPECT_CALL(*mock, ramFree()).WillOnce(Return(8388608)); EXPECT_CALL(*mock, ramUsage()).WillOnce(Return(50)); @@ -50,7 +50,7 @@ TEST_F(SysInfoHardwareMacTest, Test_BuildHardwareData_Succeed) EXPECT_EQ("H2WH91N3Q6NY", hardware.at("board_serial").get_ref()); EXPECT_EQ("Macmini9,1", hardware.at("cpu_name").get_ref()); EXPECT_EQ((int)8, hardware.at("cpu_cores").get_ref()); - EXPECT_EQ((double)3204.0, hardware.at("cpu_mhz").get_ref()); + EXPECT_EQ((int)3204, hardware.at("cpu_mhz").get_ref()); EXPECT_EQ((uint64_t)16777216, hardware.at("ram_total").get_ref()); EXPECT_EQ((uint64_t)8388608, hardware.at("ram_free").get_ref()); EXPECT_EQ((uint64_t)50, hardware.at("ram_usage").get_ref()); diff --git a/src/common/data_provider/tests/sysInfoHardwareMac/sysInfoHardwareWrapperARMMac_test.cpp b/src/common/data_provider/tests/sysInfoHardwareMac/sysInfoHardwareWrapperARMMac_test.cpp index 33ea325716..61a5da6555 100644 --- a/src/common/data_provider/tests/sysInfoHardwareMac/sysInfoHardwareWrapperARMMac_test.cpp +++ b/src/common/data_provider/tests/sysInfoHardwareMac/sysInfoHardwareWrapperARMMac_test.cpp @@ -71,9 +71,9 @@ TEST_F(SysInfoHardwareWrapperARMMacTest, Test_CpuMhz_Succeed) .WillRepeatedly(Return(KERN_SUCCESS)); EXPECT_CALL(*wrapper, CFRelease(_)).Times(2); - double ret = 0.0; + int ret = 0; EXPECT_NO_THROW(ret = wrapper->cpuMhz()); - EXPECT_DOUBLE_EQ(ret, (double)3280896 / 1000000); + EXPECT_EQ(ret, 3280896 / 1000000); } TEST_F(SysInfoHardwareWrapperARMMacTest, Test_CpuMhz_Failed_IOServiceMatching) diff --git a/src/common/data_provider/tests/sysInfoHardwareMac/sysInfoHardwareWrapperMac_test.cpp b/src/common/data_provider/tests/sysInfoHardwareMac/sysInfoHardwareWrapperMac_test.cpp index d375030132..a9eae4a4fc 100644 --- a/src/common/data_provider/tests/sysInfoHardwareMac/sysInfoHardwareWrapperMac_test.cpp +++ b/src/common/data_provider/tests/sysInfoHardwareMac/sysInfoHardwareWrapperMac_test.cpp @@ -141,9 +141,9 @@ TEST_F(SysInfoHardwareWrapperMacTest, Test_CpuMhz_WithCpuFrequency_Succeed) *static_cast(oldp) = 3280896; return 0; }); - double ret = 0.0; + int ret = 0; EXPECT_NO_THROW(ret = wrapper->cpuMhz()); - EXPECT_DOUBLE_EQ(ret, (double)3280896 / 1000000); + EXPECT_EQ(ret, 3280896 / 1000000); } @@ -426,5 +426,5 @@ TEST_F(SysInfoHardwareWrapperMacTest, Test_BoardSerial_Failed_UnknowValue) std::string ret; EXPECT_NO_THROW(ret = wrapper->boardSerial()); - EXPECT_STREQ(ret.c_str(), UNKNOWN_VALUE); + EXPECT_STREQ(ret.c_str(), EMPTY_VALUE); } diff --git a/src/common/data_provider/tests/sysInfoNetworkBSD/sysInfoNetworkBSD_test.cpp b/src/common/data_provider/tests/sysInfoNetworkBSD/sysInfoNetworkBSD_test.cpp index e7b18929bd..3802cc4a8b 100644 --- a/src/common/data_provider/tests/sysInfoNetworkBSD/sysInfoNetworkBSD_test.cpp +++ b/src/common/data_provider/tests/sysInfoNetworkBSD/sysInfoNetworkBSD_test.cpp @@ -29,20 +29,20 @@ class SysInfoNetworkBSDWrapperMock: public INetworkInterfaceWrapper MOCK_METHOD(std::string, name, (), (const override)); MOCK_METHOD(std::string, address, (), (const override)); MOCK_METHOD(std::string, netmask, (), (const override)); - MOCK_METHOD(std::string, broadcast, (), (const override)); + MOCK_METHOD(void, broadcast, (nlohmann::json&), (const override)); MOCK_METHOD(std::string, addressV6, (), (const override)); MOCK_METHOD(std::string, netmaskV6, (), (const override)); - MOCK_METHOD(std::string, broadcastV6, (), (const override)); - MOCK_METHOD(std::string, metrics, (), (const override)); - MOCK_METHOD(std::string, metricsV6, (), (const override)); - MOCK_METHOD(std::string, gateway, (), (const override)); - MOCK_METHOD(std::string, dhcp, (), (const override)); - MOCK_METHOD(uint32_t, mtu, (), (const override)); + MOCK_METHOD(void, broadcastV6, (nlohmann::json&), (const override)); + MOCK_METHOD(void, metrics, (nlohmann::json&), (const override)); + MOCK_METHOD(void, metricsV6, (nlohmann::json&), (const override)); + MOCK_METHOD(void, gateway, (nlohmann::json&), (const override)); + MOCK_METHOD(void, dhcp, (nlohmann::json&), (const override)); + MOCK_METHOD(void, mtu, (nlohmann::json&), (const override)); MOCK_METHOD(LinkStats, stats, (), (const override)); - MOCK_METHOD(std::string, type, (), (const override)); - MOCK_METHOD(std::string, state, (), (const override)); - MOCK_METHOD(std::string, MAC, (), (const override)); - MOCK_METHOD(std::string, adapter, (), (const override)); + MOCK_METHOD(void, type, (nlohmann::json&), (const override)); + MOCK_METHOD(void, state, (nlohmann::json&), (const override)); + MOCK_METHOD(void, MAC, (nlohmann::json&), (const override)); + MOCK_METHOD(void, adapter, (nlohmann::json&), (const override)); }; TEST_F(SysInfoNetworkBSDTest, Test_AF_INET_THROW) @@ -61,9 +61,9 @@ TEST_F(SysInfoNetworkBSDTest, Test_AF_INET) EXPECT_CALL(*mock, family()).Times(1).WillOnce(Return(AF_INET)); EXPECT_CALL(*mock, address()).Times(1).WillOnce(Return("192.168.0.1")); EXPECT_CALL(*mock, netmask()).Times(1).WillOnce(Return("255.255.255.0")); - EXPECT_CALL(*mock, broadcast()).Times(1).WillOnce(Return("192.168.0.255")); - EXPECT_CALL(*mock, metrics()).Times(1).WillOnce(Return(" ")); - EXPECT_CALL(*mock, dhcp()).Times(1).WillOnce(Return(" ")); + EXPECT_CALL(*mock, broadcast(_)).Times(1).WillOnce([](nlohmann::json& json) { json["broadcast"] = "192.168.0.255"; }); + EXPECT_CALL(*mock, metrics(_)).Times(1).WillOnce([](nlohmann::json& json) { json["metric"] = " "; }); + EXPECT_CALL(*mock, dhcp(_)).Times(1).WillOnce([](nlohmann::json& json) { json["dhcp"] = " "; }); EXPECT_NO_THROW(FactoryNetworkFamilyCreator::create(mock)->buildNetworkData(ifaddr)); for (auto& element : ifaddr.at("IPv4")) @@ -92,9 +92,9 @@ TEST_F(SysInfoNetworkBSDTest, Test_AF_INET6) EXPECT_CALL(*mock, family()).Times(1).WillOnce(Return(AF_INET6)); EXPECT_CALL(*mock, addressV6()).Times(1).WillOnce(Return("2001:db8:85a3:8d3:1319:8a2e:370:7348")); EXPECT_CALL(*mock, netmaskV6()).Times(1).WillOnce(Return("2001:db8:abcd:0012:ffff:ffff:ffff:ffff")); - EXPECT_CALL(*mock, broadcastV6()).Times(1).WillOnce(Return("2001:db8:85a3:8d3:1319:8a2e:370:0000")); - EXPECT_CALL(*mock, metricsV6()).Times(1).WillOnce(Return(" ")); - EXPECT_CALL(*mock, dhcp()).Times(1).WillOnce(Return(" ")); + EXPECT_CALL(*mock, broadcastV6(_)).Times(1).WillOnce([](nlohmann::json& json) { json["broadcast"] = "2001:db8:85a3:8d3:1319:8a2e:370:0000"; }); + EXPECT_CALL(*mock, metricsV6(_)).Times(1).WillOnce([](nlohmann::json& json) { json["metric"] = " "; }); + EXPECT_CALL(*mock, dhcp(_)).Times(1).WillOnce([](nlohmann::json& json) { json["dhcp"] = " "; }); EXPECT_NO_THROW(FactoryNetworkFamilyCreator::create(mock)->buildNetworkData(ifaddr)); for (auto& element : ifaddr.at("IPv6")) @@ -113,13 +113,13 @@ TEST_F(SysInfoNetworkBSDTest, Test_AF_LINK) nlohmann::json ifaddr {}; EXPECT_CALL(*mock, family()).Times(1).WillOnce(Return(AF_LINK)); EXPECT_CALL(*mock, name()).Times(1).WillOnce(Return("eth01")); - EXPECT_CALL(*mock, type()).Times(1).WillOnce(Return("ethernet")); - EXPECT_CALL(*mock, state()).Times(1).WillOnce(Return("up")); - EXPECT_CALL(*mock, MAC()).Times(1).WillOnce(Return("00:A0:C9:14:C8:29")); + EXPECT_CALL(*mock, type(_)).Times(1).WillOnce([](nlohmann::json& json) { json["type"] = "ethernet"; }); + EXPECT_CALL(*mock, state(_)).Times(1).WillOnce([](nlohmann::json& json) { json["state"] = "up"; }); + EXPECT_CALL(*mock, MAC(_)).Times(1).WillOnce([](nlohmann::json& json) { json["mac"] = "00:A0:C9:14:C8:29"; }); EXPECT_CALL(*mock, stats()).Times(1).WillOnce(Return(LinkStats{0, 1, 2, 3, 4, 5, 6, 7})); - EXPECT_CALL(*mock, mtu()).Times(1).WillOnce(Return(1500)); - EXPECT_CALL(*mock, gateway()).Times(1).WillOnce(Return("8.8.4.4")); - EXPECT_CALL(*mock, adapter()).Times(1).WillOnce(Return("")); + EXPECT_CALL(*mock, mtu(_)).Times(1).WillOnce([](nlohmann::json& json) { json["mtu"] = 1500; }); + EXPECT_CALL(*mock, gateway(_)).Times(1).WillOnce([](nlohmann::json& json) { json["gateway"] = "8.8.4.4"; }); + EXPECT_CALL(*mock, adapter(_)).Times(1).WillOnce([](nlohmann::json& json) { json["adapter"] = ""; }); EXPECT_NO_THROW(FactoryNetworkFamilyCreator::create(mock)->buildNetworkData(ifaddr)); diff --git a/src/common/data_provider/tests/sysInfoPackagesMAC/pkgWrapper_test.cpp b/src/common/data_provider/tests/sysInfoPackagesMAC/pkgWrapper_test.cpp index 0b9b91e5c2..5255851827 100644 --- a/src/common/data_provider/tests/sysInfoPackagesMAC/pkgWrapper_test.cpp +++ b/src/common/data_provider/tests/sysInfoPackagesMAC/pkgWrapper_test.cpp @@ -35,20 +35,35 @@ TEST_F(PKGWrapperTest, LongVersion) }; std::shared_ptr wrapper; EXPECT_NO_THROW(wrapper = std::make_shared(ctx)); - EXPECT_EQ(wrapper->name(), "Opera"); - EXPECT_EQ(wrapper->version(), "100.0.4815.54"); - EXPECT_EQ(wrapper->groups(), "public.app-category.productivity"); - EXPECT_EQ(wrapper->description(), "com.operasoftware.Opera"); - EXPECT_EQ(wrapper->architecture(), UNKNOWN_VALUE); - EXPECT_EQ(wrapper->format(), "pkg"); - EXPECT_EQ(wrapper->osPatch(), ""); - EXPECT_EQ(wrapper->source(), "utilities"); - EXPECT_EQ(wrapper->location(), inputPath + "/" + package + "/" + APP_INFO_PATH); - EXPECT_EQ(wrapper->vendor(), "operasoftware"); - EXPECT_EQ(wrapper->priority(), UNKNOWN_VALUE); - EXPECT_EQ(wrapper->size(), 0); - EXPECT_EQ(wrapper->install_time(), UNKNOWN_VALUE); - EXPECT_EQ(wrapper->multiarch(), UNKNOWN_VALUE); + nlohmann::json packageJson; + wrapper->name(packageJson); + EXPECT_EQ(packageJson["name"], "Opera"); + wrapper->version(packageJson); + EXPECT_EQ(packageJson["version"], "100.0.4815.54"); + wrapper->groups(packageJson); + EXPECT_EQ(packageJson["groups"], "public.app-category.productivity"); + wrapper->description(packageJson); + EXPECT_EQ(packageJson["description"], "com.operasoftware.Opera"); + wrapper->architecture(packageJson); + EXPECT_EQ(packageJson["architecture"], UNKNOWN_VALUE); + wrapper->format(packageJson); + EXPECT_EQ(packageJson["format"], "pkg"); + wrapper->osPatch(packageJson); + EXPECT_EQ(packageJson["os_patch"], UNKNOWN_VALUE); + wrapper->source(packageJson); + EXPECT_EQ(packageJson["source"], "utilities"); + wrapper->location(packageJson); + EXPECT_EQ(packageJson["location"], inputPath + "/" + package + "/" + APP_INFO_PATH); + wrapper->vendor(packageJson); + EXPECT_EQ(packageJson["vendor"], "operasoftware"); + wrapper->priority(packageJson); + EXPECT_EQ(packageJson["priority"], UNKNOWN_VALUE); + wrapper->size(packageJson); + EXPECT_EQ(packageJson["size"], UNKNOWN_VALUE); + wrapper->install_time(packageJson); + EXPECT_EQ(packageJson["install_time"], EMPTY_VALUE); + wrapper->multiarch(packageJson); + EXPECT_EQ(packageJson["multiarch"], UNKNOWN_VALUE); } TEST_F(PKGWrapperTest, ShortVersion) @@ -64,20 +79,35 @@ TEST_F(PKGWrapperTest, ShortVersion) }; std::shared_ptr wrapper; EXPECT_NO_THROW(wrapper = std::make_shared(ctx)); - EXPECT_EQ(wrapper->name(), "Opera"); - EXPECT_EQ(wrapper->version(), "100.0"); - EXPECT_EQ(wrapper->groups(), "public.app-category.productivity"); - EXPECT_EQ(wrapper->description(), "com.operasoftware.Opera"); - EXPECT_EQ(wrapper->architecture(), UNKNOWN_VALUE); - EXPECT_EQ(wrapper->format(), "pkg"); - EXPECT_EQ(wrapper->osPatch(), ""); - EXPECT_EQ(wrapper->source(), "utilities"); - EXPECT_EQ(wrapper->location(), inputPath + "/" + package + "/" + APP_INFO_PATH); - EXPECT_EQ(wrapper->vendor(), "operasoftware"); - EXPECT_EQ(wrapper->priority(), UNKNOWN_VALUE); - EXPECT_EQ(wrapper->size(), 0); - EXPECT_EQ(wrapper->install_time(), UNKNOWN_VALUE); - EXPECT_EQ(wrapper->multiarch(), UNKNOWN_VALUE); + nlohmann::json packageJson; + wrapper->name(packageJson); + EXPECT_EQ(packageJson["name"], "Opera"); + wrapper->version(packageJson); + EXPECT_EQ(packageJson["version"], "100.0"); + wrapper->groups(packageJson); + EXPECT_EQ(packageJson["groups"], "public.app-category.productivity"); + wrapper->description(packageJson); + EXPECT_EQ(packageJson["description"], "com.operasoftware.Opera"); + wrapper->architecture(packageJson); + EXPECT_EQ(packageJson["architecture"], UNKNOWN_VALUE); + wrapper->format(packageJson); + EXPECT_EQ(packageJson["format"], "pkg"); + wrapper->osPatch(packageJson); + EXPECT_EQ(packageJson["os_patch"], UNKNOWN_VALUE); + wrapper->source(packageJson); + EXPECT_EQ(packageJson["source"], "utilities"); + wrapper->location(packageJson); + EXPECT_EQ(packageJson["location"], inputPath + "/" + package + "/" + APP_INFO_PATH); + wrapper->vendor(packageJson); + EXPECT_EQ(packageJson["vendor"], "operasoftware"); + wrapper->priority(packageJson); + EXPECT_EQ(packageJson["priority"], UNKNOWN_VALUE); + wrapper->size(packageJson); + EXPECT_EQ(packageJson["size"], UNKNOWN_VALUE); + wrapper->install_time(packageJson); + EXPECT_EQ(packageJson["install_time"], EMPTY_VALUE); + wrapper->multiarch(packageJson); + EXPECT_EQ(packageJson["multiarch"], UNKNOWN_VALUE); } TEST_F(PKGWrapperTest, NoName) @@ -93,20 +123,35 @@ TEST_F(PKGWrapperTest, NoName) }; std::shared_ptr wrapper; EXPECT_NO_THROW(wrapper = std::make_shared(ctx)); - EXPECT_EQ(wrapper->name(), ""); - EXPECT_EQ(wrapper->version(), "100.0.4815.54"); - EXPECT_EQ(wrapper->groups(), "public.app-category.productivity"); - EXPECT_EQ(wrapper->description(), "com.operasoftware.Opera"); - EXPECT_EQ(wrapper->architecture(), UNKNOWN_VALUE); - EXPECT_EQ(wrapper->format(), "pkg"); - EXPECT_EQ(wrapper->osPatch(), ""); - EXPECT_EQ(wrapper->source(), "utilities"); - EXPECT_EQ(wrapper->location(), inputPath + "/" + package + "/" + APP_INFO_PATH); - EXPECT_EQ(wrapper->vendor(), "operasoftware"); - EXPECT_EQ(wrapper->priority(), UNKNOWN_VALUE); - EXPECT_EQ(wrapper->size(), 0); - EXPECT_EQ(wrapper->install_time(), UNKNOWN_VALUE); - EXPECT_EQ(wrapper->multiarch(), UNKNOWN_VALUE); + nlohmann::json packageJson; + wrapper->name(packageJson); + EXPECT_EQ(packageJson["name"], ""); + wrapper->version(packageJson); + EXPECT_EQ(packageJson["version"], "100.0.4815.54"); + wrapper->groups(packageJson); + EXPECT_EQ(packageJson["groups"], "public.app-category.productivity"); + wrapper->description(packageJson); + EXPECT_EQ(packageJson["description"], "com.operasoftware.Opera"); + wrapper->architecture(packageJson); + EXPECT_EQ(packageJson["architecture"], UNKNOWN_VALUE); + wrapper->format(packageJson); + EXPECT_EQ(packageJson["format"], "pkg"); + wrapper->osPatch(packageJson); + EXPECT_EQ(packageJson["os_patch"], UNKNOWN_VALUE); + wrapper->source(packageJson); + EXPECT_EQ(packageJson["source"], "utilities"); + wrapper->location(packageJson); + EXPECT_EQ(packageJson["location"], inputPath + "/" + package + "/" + APP_INFO_PATH); + wrapper->vendor(packageJson); + EXPECT_EQ(packageJson["vendor"], "operasoftware"); + wrapper->priority(packageJson); + EXPECT_EQ(packageJson["priority"], UNKNOWN_VALUE); + wrapper->size(packageJson); + EXPECT_EQ(packageJson["size"], UNKNOWN_VALUE); + wrapper->install_time(packageJson); + EXPECT_EQ(packageJson["install_time"], EMPTY_VALUE); + wrapper->multiarch(packageJson); + EXPECT_EQ(packageJson["multiarch"], UNKNOWN_VALUE); } TEST_F(PKGWrapperTest, NoVersion) @@ -122,20 +167,35 @@ TEST_F(PKGWrapperTest, NoVersion) }; std::shared_ptr wrapper; EXPECT_NO_THROW(wrapper = std::make_shared(ctx)); - EXPECT_EQ(wrapper->name(), "Opera"); - EXPECT_EQ(wrapper->version(), " "); - EXPECT_EQ(wrapper->groups(), "public.app-category.productivity"); - EXPECT_EQ(wrapper->description(), "com.operasoftware.Opera"); - EXPECT_EQ(wrapper->architecture(), UNKNOWN_VALUE); - EXPECT_EQ(wrapper->format(), "pkg"); - EXPECT_EQ(wrapper->osPatch(), ""); - EXPECT_EQ(wrapper->source(), "utilities"); - EXPECT_EQ(wrapper->location(), inputPath + "/" + package + "/" + APP_INFO_PATH); - EXPECT_EQ(wrapper->vendor(), "operasoftware"); - EXPECT_EQ(wrapper->priority(), UNKNOWN_VALUE); - EXPECT_EQ(wrapper->size(), 0); - EXPECT_EQ(wrapper->install_time(), UNKNOWN_VALUE); - EXPECT_EQ(wrapper->multiarch(), UNKNOWN_VALUE); + nlohmann::json packageJson; + wrapper->name(packageJson); + EXPECT_EQ(packageJson["name"], "Opera"); + wrapper->version(packageJson); + EXPECT_EQ(packageJson["version"], EMPTY_VALUE); + wrapper->groups(packageJson); + EXPECT_EQ(packageJson["groups"], "public.app-category.productivity"); + wrapper->description(packageJson); + EXPECT_EQ(packageJson["description"], "com.operasoftware.Opera"); + wrapper->architecture(packageJson); + EXPECT_EQ(packageJson["architecture"], UNKNOWN_VALUE); + wrapper->format(packageJson); + EXPECT_EQ(packageJson["format"], "pkg"); + wrapper->osPatch(packageJson); + EXPECT_EQ(packageJson["os_patch"], UNKNOWN_VALUE); + wrapper->source(packageJson); + EXPECT_EQ(packageJson["source"], "utilities"); + wrapper->location(packageJson); + EXPECT_EQ(packageJson["location"], inputPath + "/" + package + "/" + APP_INFO_PATH); + wrapper->vendor(packageJson); + EXPECT_EQ(packageJson["vendor"], "operasoftware"); + wrapper->priority(packageJson); + EXPECT_EQ(packageJson["priority"], UNKNOWN_VALUE); + wrapper->size(packageJson); + EXPECT_EQ(packageJson["size"], UNKNOWN_VALUE); + wrapper->install_time(packageJson); + EXPECT_EQ(packageJson["install_time"], EMPTY_VALUE); + wrapper->multiarch(packageJson); + EXPECT_EQ(packageJson["multiarch"], UNKNOWN_VALUE); } TEST_F(PKGWrapperTest, NoGroups) @@ -151,20 +211,35 @@ TEST_F(PKGWrapperTest, NoGroups) }; std::shared_ptr wrapper; EXPECT_NO_THROW(wrapper = std::make_shared(ctx)); - EXPECT_EQ(wrapper->name(), "Opera"); - EXPECT_EQ(wrapper->version(), "100.0.4815.54"); - EXPECT_EQ(wrapper->groups(), " "); - EXPECT_EQ(wrapper->description(), "com.operasoftware.Opera"); - EXPECT_EQ(wrapper->architecture(), UNKNOWN_VALUE); - EXPECT_EQ(wrapper->format(), "pkg"); - EXPECT_EQ(wrapper->osPatch(), ""); - EXPECT_EQ(wrapper->source(), "utilities"); - EXPECT_EQ(wrapper->location(), inputPath + "/" + package + "/" + APP_INFO_PATH); - EXPECT_EQ(wrapper->vendor(), "operasoftware"); - EXPECT_EQ(wrapper->priority(), UNKNOWN_VALUE); - EXPECT_EQ(wrapper->size(), 0); - EXPECT_EQ(wrapper->install_time(), UNKNOWN_VALUE); - EXPECT_EQ(wrapper->multiarch(), UNKNOWN_VALUE); + nlohmann::json packageJson; + wrapper->name(packageJson); + EXPECT_EQ(packageJson["name"], "Opera"); + wrapper->version(packageJson); + EXPECT_EQ(packageJson["version"], "100.0.4815.54"); + wrapper->groups(packageJson); + EXPECT_EQ(packageJson["groups"], EMPTY_VALUE); + wrapper->description(packageJson); + EXPECT_EQ(packageJson["description"], "com.operasoftware.Opera"); + wrapper->architecture(packageJson); + EXPECT_EQ(packageJson["architecture"], UNKNOWN_VALUE); + wrapper->format(packageJson); + EXPECT_EQ(packageJson["format"], "pkg"); + wrapper->osPatch(packageJson); + EXPECT_EQ(packageJson["os_patch"], UNKNOWN_VALUE); + wrapper->source(packageJson); + EXPECT_EQ(packageJson["source"], "utilities"); + wrapper->location(packageJson); + EXPECT_EQ(packageJson["location"], inputPath + "/" + package + "/" + APP_INFO_PATH); + wrapper->vendor(packageJson); + EXPECT_EQ(packageJson["vendor"], "operasoftware"); + wrapper->priority(packageJson); + EXPECT_EQ(packageJson["priority"], UNKNOWN_VALUE); + wrapper->size(packageJson); + EXPECT_EQ(packageJson["size"], UNKNOWN_VALUE); + wrapper->install_time(packageJson); + EXPECT_EQ(packageJson["install_time"], EMPTY_VALUE); + wrapper->multiarch(packageJson); + EXPECT_EQ(packageJson["multiarch"], UNKNOWN_VALUE); } TEST_F(PKGWrapperTest, NoDescription) @@ -180,20 +255,35 @@ TEST_F(PKGWrapperTest, NoDescription) }; std::shared_ptr wrapper; EXPECT_NO_THROW(wrapper = std::make_shared(ctx)); - EXPECT_EQ(wrapper->name(), "Opera"); - EXPECT_EQ(wrapper->version(), "100.0.4815.54"); - EXPECT_EQ(wrapper->groups(), "public.app-category.productivity"); - EXPECT_EQ(wrapper->description(), " "); - EXPECT_EQ(wrapper->architecture(), UNKNOWN_VALUE); - EXPECT_EQ(wrapper->format(), "pkg"); - EXPECT_EQ(wrapper->osPatch(), ""); - EXPECT_EQ(wrapper->source(), "utilities"); - EXPECT_EQ(wrapper->location(), inputPath + "/" + package + "/" + APP_INFO_PATH); - EXPECT_EQ(wrapper->vendor(), UNKNOWN_VALUE); - EXPECT_EQ(wrapper->priority(), UNKNOWN_VALUE); - EXPECT_EQ(wrapper->size(), 0); - EXPECT_EQ(wrapper->install_time(), UNKNOWN_VALUE); - EXPECT_EQ(wrapper->multiarch(), UNKNOWN_VALUE); + nlohmann::json packageJson; + wrapper->name(packageJson); + EXPECT_EQ(packageJson["name"], "Opera"); + wrapper->version(packageJson); + EXPECT_EQ(packageJson["version"], "100.0.4815.54"); + wrapper->groups(packageJson); + EXPECT_EQ(packageJson["groups"], "public.app-category.productivity"); + wrapper->description(packageJson); + EXPECT_EQ(packageJson["description"], EMPTY_VALUE); + wrapper->architecture(packageJson); + EXPECT_EQ(packageJson["architecture"], UNKNOWN_VALUE); + wrapper->format(packageJson); + EXPECT_EQ(packageJson["format"], "pkg"); + wrapper->osPatch(packageJson); + EXPECT_EQ(packageJson["os_patch"], UNKNOWN_VALUE); + wrapper->source(packageJson); + EXPECT_EQ(packageJson["source"], "utilities"); + wrapper->location(packageJson); + EXPECT_EQ(packageJson["location"], inputPath + "/" + package + "/" + APP_INFO_PATH); + wrapper->vendor(packageJson); + EXPECT_EQ(packageJson["vendor"], EMPTY_VALUE); + wrapper->priority(packageJson); + EXPECT_EQ(packageJson["priority"], UNKNOWN_VALUE); + wrapper->size(packageJson); + EXPECT_EQ(packageJson["size"], UNKNOWN_VALUE); + wrapper->install_time(packageJson); + EXPECT_EQ(packageJson["install_time"], EMPTY_VALUE); + wrapper->multiarch(packageJson); + EXPECT_EQ(packageJson["multiarch"], UNKNOWN_VALUE); } TEST_F(PKGWrapperTest, NoVendor) @@ -209,20 +299,35 @@ TEST_F(PKGWrapperTest, NoVendor) }; std::shared_ptr wrapper; EXPECT_NO_THROW(wrapper = std::make_shared(ctx)); - EXPECT_EQ(wrapper->name(), "Opera"); - EXPECT_EQ(wrapper->version(), "100.0.4815.54"); - EXPECT_EQ(wrapper->groups(), "public.app-category.productivity"); - EXPECT_EQ(wrapper->description(), "description_text"); - EXPECT_EQ(wrapper->architecture(), UNKNOWN_VALUE); - EXPECT_EQ(wrapper->format(), "pkg"); - EXPECT_EQ(wrapper->osPatch(), ""); - EXPECT_EQ(wrapper->source(), "utilities"); - EXPECT_EQ(wrapper->location(), inputPath + "/" + package + "/" + APP_INFO_PATH); - EXPECT_EQ(wrapper->vendor(), UNKNOWN_VALUE); - EXPECT_EQ(wrapper->priority(), UNKNOWN_VALUE); - EXPECT_EQ(wrapper->size(), 0); - EXPECT_EQ(wrapper->install_time(), UNKNOWN_VALUE); - EXPECT_EQ(wrapper->multiarch(), UNKNOWN_VALUE); + nlohmann::json packageJson; + wrapper->name(packageJson); + EXPECT_EQ(packageJson["name"], "Opera"); + wrapper->version(packageJson); + EXPECT_EQ(packageJson["version"], "100.0.4815.54"); + wrapper->groups(packageJson); + EXPECT_EQ(packageJson["groups"], "public.app-category.productivity"); + wrapper->description(packageJson); + EXPECT_EQ(packageJson["description"], "description_text"); + wrapper->architecture(packageJson); + EXPECT_EQ(packageJson["architecture"], UNKNOWN_VALUE); + wrapper->format(packageJson); + EXPECT_EQ(packageJson["format"], "pkg"); + wrapper->osPatch(packageJson); + EXPECT_EQ(packageJson["os_patch"], UNKNOWN_VALUE); + wrapper->source(packageJson); + EXPECT_EQ(packageJson["source"], "utilities"); + wrapper->location(packageJson); + EXPECT_EQ(packageJson["location"], inputPath + "/" + package + "/" + APP_INFO_PATH); + wrapper->vendor(packageJson); + EXPECT_EQ(packageJson["vendor"], EMPTY_VALUE); + wrapper->priority(packageJson); + EXPECT_EQ(packageJson["priority"], UNKNOWN_VALUE); + wrapper->size(packageJson); + EXPECT_EQ(packageJson["size"], UNKNOWN_VALUE); + wrapper->install_time(packageJson); + EXPECT_EQ(packageJson["install_time"], EMPTY_VALUE); + wrapper->multiarch(packageJson); + EXPECT_EQ(packageJson["multiarch"], UNKNOWN_VALUE); } TEST_F(PKGWrapperTest, pkgVersionXML) @@ -238,20 +343,35 @@ TEST_F(PKGWrapperTest, pkgVersionXML) }; std::shared_ptr wrapper; EXPECT_NO_THROW(wrapper = std::make_shared(ctx)); - EXPECT_EQ(wrapper->name(), "wazuh-agent"); - EXPECT_EQ(wrapper->version(), "4.10.1"); - EXPECT_EQ(wrapper->groups(), " "); - EXPECT_EQ(wrapper->description(), "com.wazuh.pkg.wazuh-agent"); - EXPECT_EQ(wrapper->architecture(), " "); - EXPECT_EQ(wrapper->format(), "pkg"); - EXPECT_EQ(wrapper->osPatch(), ""); - EXPECT_EQ(wrapper->source(), "receipts"); - EXPECT_EQ(wrapper->location(), inputPath + "/" + package); - EXPECT_EQ(wrapper->vendor(), "wazuh"); - EXPECT_EQ(wrapper->priority(), " "); - EXPECT_EQ(wrapper->size(), 0); - EXPECT_EQ(wrapper->install_time(), "2024-11-07T08:58:38Z"); - EXPECT_EQ(wrapper->multiarch(), " "); + nlohmann::json packageJson; + wrapper->name(packageJson); + EXPECT_EQ(packageJson["name"], "wazuh-agent"); + wrapper->version(packageJson); + EXPECT_EQ(packageJson["version"], "4.10.1"); + wrapper->groups(packageJson); + EXPECT_EQ(packageJson["groups"], EMPTY_VALUE); + wrapper->description(packageJson); + EXPECT_EQ(packageJson["description"], "com.wazuh.pkg.wazuh-agent"); + wrapper->architecture(packageJson); + EXPECT_EQ(packageJson["architecture"], UNKNOWN_VALUE); + wrapper->format(packageJson); + EXPECT_EQ(packageJson["format"], "pkg"); + wrapper->osPatch(packageJson); + EXPECT_EQ(packageJson["os_patch"], UNKNOWN_VALUE); + wrapper->source(packageJson); + EXPECT_EQ(packageJson["source"], "receipts"); + wrapper->location(packageJson); + EXPECT_EQ(packageJson["location"], inputPath + "/" + package); + wrapper->vendor(packageJson); + EXPECT_EQ(packageJson["vendor"], "wazuh"); + wrapper->priority(packageJson); + EXPECT_EQ(packageJson["priority"], UNKNOWN_VALUE); + wrapper->size(packageJson); + EXPECT_EQ(packageJson["size"], UNKNOWN_VALUE); + wrapper->install_time(packageJson); + EXPECT_EQ(packageJson["install_time"], "2024-11-07T08:58:38Z"); + wrapper->multiarch(packageJson); + EXPECT_EQ(packageJson["multiarch"], UNKNOWN_VALUE); } TEST_F(PKGWrapperTest, pkgVersionBin) @@ -267,20 +387,35 @@ TEST_F(PKGWrapperTest, pkgVersionBin) }; std::shared_ptr wrapper; EXPECT_NO_THROW(wrapper = std::make_shared(ctx)); - EXPECT_EQ(wrapper->name(), "videomeeting"); - EXPECT_EQ(wrapper->version(), "6.2.6.41824"); - EXPECT_EQ(wrapper->groups(), " "); - EXPECT_EQ(wrapper->description(), "us.zoom.pkg.videomeeting"); - EXPECT_EQ(wrapper->architecture(), " "); - EXPECT_EQ(wrapper->format(), "pkg"); - EXPECT_EQ(wrapper->osPatch(), ""); - EXPECT_EQ(wrapper->source(), "receipts"); - EXPECT_EQ(wrapper->location(), inputPath + "/" + package); - EXPECT_EQ(wrapper->vendor(), "zoom"); - EXPECT_EQ(wrapper->priority(), " "); - EXPECT_EQ(wrapper->size(), 0); - EXPECT_EQ(wrapper->install_time(), "2024-11-08T11:44:04Z"); - EXPECT_EQ(wrapper->multiarch(), " "); + nlohmann::json packageJson; + wrapper->name(packageJson); + EXPECT_EQ(packageJson["name"], "videomeeting"); + wrapper->version(packageJson); + EXPECT_EQ(packageJson["version"], "6.2.6.41824"); + wrapper->groups(packageJson); + EXPECT_EQ(packageJson["groups"], EMPTY_VALUE); + wrapper->description(packageJson); + EXPECT_EQ(packageJson["description"], "us.zoom.pkg.videomeeting"); + wrapper->architecture(packageJson); + EXPECT_EQ(packageJson["architecture"], UNKNOWN_VALUE); + wrapper->format(packageJson); + EXPECT_EQ(packageJson["format"], "pkg"); + wrapper->osPatch(packageJson); + EXPECT_EQ(packageJson["os_patch"], UNKNOWN_VALUE); + wrapper->source(packageJson); + EXPECT_EQ(packageJson["source"], "receipts"); + wrapper->location(packageJson); + EXPECT_EQ(packageJson["location"], inputPath + "/" + package); + wrapper->vendor(packageJson); + EXPECT_EQ(packageJson["vendor"], "zoom"); + wrapper->priority(packageJson); + EXPECT_EQ(packageJson["priority"], UNKNOWN_VALUE); + wrapper->size(packageJson); + EXPECT_EQ(packageJson["size"], UNKNOWN_VALUE); + wrapper->install_time(packageJson); + EXPECT_EQ(packageJson["install_time"], "2024-11-08T11:44:04Z"); + wrapper->multiarch(packageJson); + EXPECT_EQ(packageJson["multiarch"], UNKNOWN_VALUE); } TEST_F(PKGWrapperTest, pkgVersionLong) @@ -296,18 +431,33 @@ TEST_F(PKGWrapperTest, pkgVersionLong) }; std::shared_ptr wrapper; EXPECT_NO_THROW(wrapper = std::make_shared(ctx)); - EXPECT_EQ(wrapper->name(), "R.GUI"); - EXPECT_EQ(wrapper->version(), "1.81"); - EXPECT_EQ(wrapper->groups(), " "); - EXPECT_EQ(wrapper->description(), "org.R-project.x86_64.R.GUI.pkg"); - EXPECT_EQ(wrapper->architecture(), " "); - EXPECT_EQ(wrapper->format(), "pkg"); - EXPECT_EQ(wrapper->osPatch(), ""); - EXPECT_EQ(wrapper->source(), "receipts"); - EXPECT_EQ(wrapper->location(), inputPath + "/" + package); - EXPECT_EQ(wrapper->vendor(), "R-project"); - EXPECT_EQ(wrapper->priority(), " "); - EXPECT_EQ(wrapper->size(), 0); - EXPECT_EQ(wrapper->install_time(), "2024-11-13T10:59:10Z"); - EXPECT_EQ(wrapper->multiarch(), " "); + nlohmann::json packageJson; + wrapper->name(packageJson); + EXPECT_EQ(packageJson["name"], "R.GUI"); + wrapper->version(packageJson); + EXPECT_EQ(packageJson["version"], "1.81"); + wrapper->groups(packageJson); + EXPECT_EQ(packageJson["groups"], EMPTY_VALUE); + wrapper->description(packageJson); + EXPECT_EQ(packageJson["description"], "org.R-project.x86_64.R.GUI.pkg"); + wrapper->architecture(packageJson); + EXPECT_EQ(packageJson["architecture"], UNKNOWN_VALUE); + wrapper->format(packageJson); + EXPECT_EQ(packageJson["format"], "pkg"); + wrapper->osPatch(packageJson); + EXPECT_EQ(packageJson["os_patch"], UNKNOWN_VALUE); + wrapper->source(packageJson); + EXPECT_EQ(packageJson["source"], "receipts"); + wrapper->location(packageJson); + EXPECT_EQ(packageJson["location"], inputPath + "/" + package); + wrapper->vendor(packageJson); + EXPECT_EQ(packageJson["vendor"], "R-project"); + wrapper->priority(packageJson); + EXPECT_EQ(packageJson["priority"], UNKNOWN_VALUE); + wrapper->size(packageJson); + EXPECT_EQ(packageJson["size"], UNKNOWN_VALUE); + wrapper->install_time(packageJson); + EXPECT_EQ(packageJson["install_time"], "2024-11-13T10:59:10Z"); + wrapper->multiarch(packageJson); + EXPECT_EQ(packageJson["multiarch"], UNKNOWN_VALUE); } diff --git a/src/common/data_provider/tests/sysInfoPackagesMAC/sysInfoMacPackages_test.cpp b/src/common/data_provider/tests/sysInfoPackagesMAC/sysInfoMacPackages_test.cpp index a852425ae9..c82ad5555a 100644 --- a/src/common/data_provider/tests/sysInfoPackagesMAC/sysInfoMacPackages_test.cpp +++ b/src/common/data_provider/tests/sysInfoPackagesMAC/sysInfoMacPackages_test.cpp @@ -29,39 +29,39 @@ class SysInfoMacPackagesWrapperMock: public IPackageWrapper public: SysInfoMacPackagesWrapperMock() = default; virtual ~SysInfoMacPackagesWrapperMock() = default; - MOCK_METHOD(std::string, name, (), (const override)); - MOCK_METHOD(std::string, version, (), (const override)); - MOCK_METHOD(std::string, groups, (), (const override)); - MOCK_METHOD(std::string, description, (), (const override)); - MOCK_METHOD(std::string, architecture, (), (const override)); - MOCK_METHOD(std::string, format, (), (const override)); - MOCK_METHOD(std::string, osPatch, (), (const override)); - MOCK_METHOD(std::string, source, (), (const override)); - MOCK_METHOD(std::string, location, (), (const override)); - MOCK_METHOD(std::string, priority, (), (const override)); - MOCK_METHOD(int, size, (), (const override)); - MOCK_METHOD(std::string, vendor, (), (const override)); - MOCK_METHOD(std::string, install_time, (), (const override)); - MOCK_METHOD(std::string, multiarch, (), (const override)); + MOCK_METHOD(void, name, (nlohmann::json& package), (const override)); + MOCK_METHOD(void, version, (nlohmann::json& package), (const override)); + MOCK_METHOD(void, groups, (nlohmann::json& package), (const override)); + MOCK_METHOD(void, description, (nlohmann::json& package), (const override)); + MOCK_METHOD(void, architecture, (nlohmann::json& package), (const override)); + MOCK_METHOD(void, format, (nlohmann::json& package), (const override)); + MOCK_METHOD(void, osPatch, (nlohmann::json& package), (const override)); + MOCK_METHOD(void, source, (nlohmann::json& package), (const override)); + MOCK_METHOD(void, location, (nlohmann::json& package), (const override)); + MOCK_METHOD(void, priority, (nlohmann::json& package), (const override)); + MOCK_METHOD(void, size, (nlohmann::json& package), (const override)); + MOCK_METHOD(void, vendor, (nlohmann::json& package), (const override)); + MOCK_METHOD(void, install_time, (nlohmann::json& package), (const override)); + MOCK_METHOD(void, multiarch, (nlohmann::json& package), (const override)); }; TEST_F(SysInfoMacPackagesTest, Test_SPEC_Data) { auto mock { std::make_shared() }; nlohmann::json packages {}; - EXPECT_CALL(*mock, name()).Times(1).WillOnce(Return("1")); - EXPECT_CALL(*mock, version()).Times(1).WillOnce(Return("2")); - EXPECT_CALL(*mock, groups()).Times(1).WillOnce(Return("3")); - EXPECT_CALL(*mock, description()).Times(1).WillOnce(Return("4")); - EXPECT_CALL(*mock, architecture()).Times(1).WillOnce(Return("5")); - EXPECT_CALL(*mock, format()).Times(1).WillOnce(Return("6")); - EXPECT_CALL(*mock, source()).Times(1).WillOnce(Return("7")); - EXPECT_CALL(*mock, location()).Times(1).WillOnce(Return("8")); - EXPECT_CALL(*mock, priority()).Times(1).WillOnce(Return("9")); - EXPECT_CALL(*mock, size()).Times(1).WillOnce(Return(10)); - EXPECT_CALL(*mock, vendor()).Times(1).WillOnce(Return("11")); - EXPECT_CALL(*mock, install_time()).Times(1).WillOnce(Return("12")); - EXPECT_CALL(*mock, multiarch()).Times(1).WillOnce(Return("13")); + EXPECT_CALL(*mock, name(_)).WillOnce([](nlohmann::json& package) { package["name"] = "1"; }); + EXPECT_CALL(*mock, version(_)).WillOnce([](nlohmann::json& package) { package["version"] = "2"; }); + EXPECT_CALL(*mock, groups(_)).WillOnce([](nlohmann::json& package) { package["groups"] = "3"; }); + EXPECT_CALL(*mock, description(_)).WillOnce([](nlohmann::json& package) { package["description"] = "4"; }); + EXPECT_CALL(*mock, architecture(_)).WillOnce([](nlohmann::json& package) { package["architecture"] = "5"; }); + EXPECT_CALL(*mock, format(_)).WillOnce([](nlohmann::json& package) { package["format"] = "6"; }); + EXPECT_CALL(*mock, source(_)).WillOnce([](nlohmann::json& package) { package["source"] = "7"; }); + EXPECT_CALL(*mock, location(_)).WillOnce([](nlohmann::json& package) { package["location"] = "8"; }); + EXPECT_CALL(*mock, priority(_)).WillOnce([](nlohmann::json& package) { package["priority"] = "9"; }); + EXPECT_CALL(*mock, size(_)).WillOnce([](nlohmann::json& package) { package["size"] = 10; }); + EXPECT_CALL(*mock, vendor(_)).WillOnce([](nlohmann::json& package) { package["vendor"] = "11"; }); + EXPECT_CALL(*mock, install_time(_)).WillOnce([](nlohmann::json& package) { package["install_time"] = "12"; }); + EXPECT_CALL(*mock, multiarch(_)).WillOnce([](nlohmann::json& package) { package["multiarch"] = "13"; }); EXPECT_NO_THROW(std::make_unique(mock)->buildPackageData(packages)); EXPECT_EQ("1", packages.at("name").get_ref()); @@ -114,11 +114,18 @@ TEST_F(SysInfoMacPackagesTest, macPortsValidData) MacportsWrapper macportsMock(*mockStatement); - EXPECT_EQ(macportsMock.name(), "neovim"); - EXPECT_EQ(macportsMock.version(), "0.8.1"); - EXPECT_FALSE(macportsMock.install_time().empty()); - EXPECT_EQ(macportsMock.location(), "/opt/local/var/macports/software/neovim/neovim-0.8.1.tgz"); - EXPECT_EQ(macportsMock.architecture(), "x86_64"); + nlohmann::json package; + macportsMock.name(package); + macportsMock.version(package); + macportsMock.install_time(package); + macportsMock.location(package); + macportsMock.architecture(package); + + EXPECT_EQ(package["name"], "neovim"); + EXPECT_EQ(package["version"], "0.8.1"); + EXPECT_FALSE(package["install_time"].empty()); + EXPECT_EQ(package["location"], "/opt/local/var/macports/software/neovim/neovim-0.8.1.tgz"); + EXPECT_EQ(package["architecture"], "x86_64"); } TEST_F(SysInfoMacPackagesTest, macPortsValidDataEmptyFields) @@ -156,12 +163,19 @@ TEST_F(SysInfoMacPackagesTest, macPortsValidDataEmptyFields) MacportsWrapper macportsMock(*mockStatement); - EXPECT_EQ(macportsMock.name(), "neovim"); + nlohmann::json package; + macportsMock.name(package); + macportsMock.version(package); + macportsMock.install_time(package); + macportsMock.location(package); + macportsMock.architecture(package); + + EXPECT_EQ(package["name"], "neovim"); // Empty string fields are replaced with space. - EXPECT_EQ(macportsMock.version(), " "); - EXPECT_FALSE(macportsMock.install_time().empty()); - EXPECT_EQ(macportsMock.location(), " "); - EXPECT_EQ(macportsMock.architecture(), " "); + EXPECT_EQ(package["version"], EMPTY_VALUE); + EXPECT_FALSE(package["install_time"].empty()); + EXPECT_EQ(package["location"], EMPTY_VALUE); + EXPECT_EQ(package["architecture"], EMPTY_VALUE); } TEST_F(SysInfoMacPackagesTest, macPortsValidDataEmptyName) @@ -199,6 +213,9 @@ TEST_F(SysInfoMacPackagesTest, macPortsValidDataEmptyName) MacportsWrapper macportsMock(*mockStatement); + nlohmann::json package; + macportsMock.name(package); + // Packages with empty string names are discarded. - EXPECT_EQ(macportsMock.name(), ""); + EXPECT_EQ(package["name"], ""); }