#include #include #include #include #include #include "../../collection_fixture.hpp" using namespace std; using namespace facter::facts; using namespace facter::facts::resolvers; using namespace facter::testing; struct empty_zfs_resolver : zfs_resolver { protected: virtual string zfs_command() override { return ""; } virtual data collect_data(collection& facts) override { data result; return result; } }; struct test_zfs_resolver : zfs_resolver { protected: virtual string zfs_command() override { return ""; } virtual data collect_data(collection& facts) override { data result; result.version = "1"; result.versions = { "1", "2", "3" }; return result; } }; SCENARIO("using the ZFS resolver") { collection_fixture facts; WHEN("data is not present") { facts.add(make_shared()); THEN("facts should not be added") { REQUIRE(facts.size() == 0u); } } WHEN("data is present") { facts.add(make_shared()); THEN("flat facts are added") { REQUIRE(facts.size() == 2u); auto value = facts.get(fact::zfs_version); REQUIRE(value); REQUIRE(value->value() == "1"); value = facts.get(fact::zfs_versionnumbers); REQUIRE(value); REQUIRE(value->value() == "1,2,3"); } } }