38 class RuleTestClass :
public Rule 41 virtual std::ostream &
print_(std::ostream &os)
const 48 virtual std::unique_ptr<Rule>
clone()
const 50 return std::make_unique<RuleTestClass>();
55 if (packet.
name() ==
"PING")
84 REQUIRE_NOTHROW(RuleTestClass());
90 REQUIRE(RuleTestClass() == RuleTestClass());
91 REQUIRE_FALSE(RuleTestClass() != RuleTestClass());
95 TEST_CASE(
"Rule's 'action' method determines what to do with a packet with " 96 "respect to a destination address.",
"[Rule]")
133 SECTION(
"By direct type.")
135 REQUIRE(
str(
rule) ==
"test_rule");
137 SECTION(
"By polymorphic type.")
139 REQUIRE(
str(polymorphic) ==
"test_rule");
144 TEST_CASE(
"Rule's 'clone' method returns a polymorphic copy.",
"[Rule]")
148 std::unique_ptr<Rule> polymorphic_copy = polymorphic.
clone();
149 REQUIRE(
rule == *polymorphic_copy);
static Action make_reject()
virtual bool operator==(const Rule &other) const =0
std::string str(const T &object)
virtual std::string name() const =0
static Action make_accept(std::optional< int > priority={})
virtual std::unique_ptr< Rule > clone() const =0
static Action make_continue()
virtual std::ostream & print_(std::ostream &os) const =0
TEST_CASE("Rule's can be constructed.", "[Rule]")
bool contains(const MAVAddress &address) const
virtual bool operator!=(const Rule &other) const =0
virtual Action action(const Packet &packet, const MAVAddress &address) const =0