Improves rules dump for better testing

This commit is contained in:
Felipe Zimmerle
2019-04-11 10:18:03 -03:00
parent 17c4201522
commit 1e9c54860b
8 changed files with 53 additions and 9 deletions

View File

@@ -46,8 +46,8 @@ class Rule {
Rule(std::unique_ptr<std::string> fileName, int lineNumber)
: m_fileName(std::make_shared<std::string>(*fileName)),
m_lineNumber(lineNumber),
m_phase(modsecurity::Phases::RequestHeadersPhase) {
}
m_phase(modsecurity::Phases::RequestHeadersPhase)
{ }
Rule(const Rule &other) :
m_fileName(other.m_fileName),
@@ -82,6 +82,18 @@ class Rule {
return "<<no file>>:" + std::to_string(m_lineNumber);
}
virtual void dump(std::stringstream &out) {
out << getOriginInTextFormat() << std::endl;
}
protected:
std::string getOriginInTextFormat() const {
std::stringstream ss;
ss << "# File name: " << *getFileName() << std::endl;
ss << "# Line number: " << getLineNumber();
return ss.str();
}
private:
std::shared_ptr<std::string> m_fileName;
int m_lineNumber;

View File

@@ -61,7 +61,12 @@ class Rules {
std::vector<std::shared_ptr<actions::Action> > m_defaultActions;
std::vector<std::shared_ptr<actions::transformations::Transformation> > m_defaultTransformations;
void dump();
virtual void dump() {
std::stringstream ss;
dump(ss);
std::cout << ss.str();
};
virtual void dump(std::stringstream &out);
inline iterator begin() noexcept { return m_rules.begin(); }
inline const_iterator cbegin() const noexcept { return m_rules.cbegin(); }