Sha256: b07120c97f72f65739cebcd40c1fc5f13446ad2dd28af4d1802ba4860676e197

Contents?: true

Size: 1.89 KB

Versions: 16

Compression:

Stored size: 1.89 KB

Contents

#include <catch.hpp>
#include <internal/facts/resolvers/zpool_resolver.hpp>
#include <facter/facts/collection.hpp>
#include <facter/facts/fact.hpp>
#include <facter/facts/scalar_value.hpp>
#include "../../collection_fixture.hpp"

using namespace std;
using namespace facter::facts;
using namespace facter::facts::resolvers;
using namespace facter::testing;

struct empty_zpool_resolver : zpool_resolver
{
 protected:
    virtual string zpool_command() override
    {
        return "";
    }

    virtual data collect_data(collection& facts) override
    {
        data result;
        return result;
    }
};

struct test_zpool_resolver : zpool_resolver
{
 protected:
    virtual string zpool_command() override
    {
        return "";
    }

    virtual data collect_data(collection& facts) override
    {
        data result;
        result.version = "1";
        result.versions = { "1", "2", "3" };
        result.feature_flags = { "async_destroy", "lz4_compress", "enabled_txg" };
        return result;
    }
};

SCENARIO("using the zpool resolver") {
    collection_fixture facts;
    WHEN("data is not present") {
        facts.add(make_shared<empty_zpool_resolver>());
        THEN("facts should not be added") {
            REQUIRE(facts.size() == 0u);
        }
    }
    WHEN("data is present") {
        facts.add(make_shared<test_zpool_resolver>());
        THEN("flat facts are added") {
            REQUIRE(facts.size() == 3u);
            auto value = facts.get<string_value>(fact::zpool_version);
            REQUIRE(value);
            REQUIRE(value->value() == "1");
            value = facts.get<string_value>(fact::zpool_versionnumbers);
            REQUIRE(value);
            REQUIRE(value->value() == "1,2,3");
            value = facts.get<string_value>(fact::zpool_featureflags);
            REQUIRE(value);
            REQUIRE(value->value() == "async_destroy,lz4_compress,enabled_txg");
        }
    }
}

Version data entries

16 entries across 16 versions & 2 rubygems

Version Path
facter-3.12.2.cfacter.20181217 ext/facter/facter/lib/tests/facts/resolvers/zpool_resolver.cc
facter-3.12.1.cfacter.20181031 ext/facter/facter/lib/tests/facts/resolvers/zpool_resolver.cc
facter-3.11.6.cfacter.20181031 ext/facter/facter/lib/tests/facts/resolvers/zpool_resolver.cc
facter-3.12.1.cfacter.20181023 ext/facter/facter/lib/tests/facts/resolvers/zpool_resolver.cc
facter-3.11.5.cfacter.20181022 ext/facter/facter/lib/tests/facts/resolvers/zpool_resolver.cc
facter-3.12.0.cfacter.20181004 ext/facter/facter/lib/tests/facts/resolvers/zpool_resolver.cc
facter-3.12.0.cfacter.20181001 ext/facter/facter/lib/tests/facts/resolvers/zpool_resolver.cc
facter-3.12.0.cfacter.20180918 ext/facter/facter/lib/tests/facts/resolvers/zpool_resolver.cc
facter-3.11.4.cfacter.20180821 ext/facter/facter/lib/tests/facts/resolvers/zpool_resolver.cc
facter-3.11.3.cfacter.20180716 ext/facter/facter/lib/tests/facts/resolvers/zpool_resolver.cc
facter-3.11.2.cfacter.20180612 ext/facter/facter/lib/tests/facts/resolvers/zpool_resolver.cc
facter-3.9.6.cfacter.20180612 ext/facter/facter/lib/tests/facts/resolvers/zpool_resolver.cc
facter-3.11.2.cfacter.20180606 ext/facter/facter/lib/tests/facts/resolvers/zpool_resolver.cc
facter-3.9.6.cfacter.20180606 ext/facter/facter/lib/tests/facts/resolvers/zpool_resolver.cc
facter-3.11.0.cfacter.20180319 ext/facter/facter/lib/tests/facts/resolvers/zpool_resolver.cc
cfacter-3.11.0.rc.20180314 ext/facter/facter/lib/tests/facts/resolvers/zpool_resolver.cc