Sha256: 45c18f9759b8a42477004d665579ae213c3934d21a1c47b20d62a7af5a461d3b

Contents?: true

Size: 1.75 KB

Versions: 16

Compression:

Stored size: 1.75 KB

Contents

#include <catch.hpp>
#include <internal/facts/external/text_resolver.hpp>
#include <facter/facts/collection.hpp>
#include <facter/facts/scalar_value.hpp>
#include "../../fixtures.hpp"

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

SCENARIO("resolving external text facts") {
    collection_fixture facts;
    text_resolver resolver;

    GIVEN("a non-text file extension") {
        THEN("it should not be able to resolve") {
            REQUIRE_FALSE(resolver.can_resolve("foo.json"));
        }
    }
    GIVEN("a text file extension") {
        THEN("it should be able to resolve") {
            REQUIRE(resolver.can_resolve("foo.txt"));
            REQUIRE(resolver.can_resolve("FoO.TxT"));
        }
    }
    GIVEN("a non-existent file to resolve") {
        THEN("it should throw an exception") {
            REQUIRE_THROWS_AS(resolver.resolve("doesnotexist.txt", facts), external_fact_exception);
        }
    }
    GIVEN("a text file to resolve") {
        THEN("it should populate the facts") {
            resolver.resolve(LIBFACTER_TESTS_DIRECTORY "/fixtures/facts/external/text/facts.txt", facts);
            REQUIRE_FALSE(facts.empty());
            REQUIRE(facts.get<string_value>("txt_fact1"));
            REQUIRE(facts.get<string_value>("txt_fact1")->value() == "value1");
            REQUIRE(facts.get<string_value>("txt_fact2"));
            REQUIRE(facts.get<string_value>("txt_fact2")->value() == "");
            REQUIRE_FALSE(facts.get<string_value>("txt_fact3"));
            REQUIRE(facts.get<string_value>("txt_fact4"));
            REQUIRE_FALSE(facts.get<string_value>("TXT_Fact4"));
            REQUIRE(facts.get<string_value>("txt_fact4")->value() == "value2");
        }
    }
}

Version data entries

16 entries across 16 versions & 2 rubygems

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