Browse Source

Tests: Framework - Add utils.cc with some *_to_string() funcs

LIB-12
heck 1 year ago
parent
commit
c8590750c8
2 changed files with 147 additions and 0 deletions
  1. +126
    -0
      test/framework/utils.cc
  2. +21
    -0
      test/framework/utils.hh

+ 126
- 0
test/framework/utils.cc View File

@ -0,0 +1,126 @@
// This file is under GNU General Public License 3.0
// see LICENSE.txt
#include "utils.hh"
#include <pEp/keymanagement.h>
#include "../../src/Adapter.hh"
#include "../../src/adapter_group.h"
using namespace std;
using namespace pEp;
namespace pEp {
namespace Test {
namespace Utils {
string identity_to_string(::pEp_identity* ident, bool full, int indent)
{
stringstream builder;
if (ident != nullptr) {
if (full) {
builder << endl;
builder << std::string(indent, '\t') << "{" << endl;
indent++;
builder << std::string(indent, '\t') << "address: "
<< (ident->address != nullptr ? ident->address : "NULL") << endl;
builder << std::string(indent, '\t') << "user_id: "
<< (ident->user_id != nullptr ? ident->user_id : "NULL") << endl;
builder << std::string(indent, '\t') << "username: "
<< (ident->username != nullptr ? ident->username : "NULL") << endl;
builder << std::string(indent, '\t')
<< "fpr: " << (ident->fpr != nullptr ? ident->fpr : "NULL") << endl;
builder << std::string(indent, '\t') << "comm_type: " << ident->comm_type
<< endl;
builder << std::string(indent, '\t')
<< "lang: " << static_cast<string>(ident->lang) << endl;
builder << std::string(indent, '\t') << "me: " << ident->me << endl;
builder << std::string(indent, '\t') << "major_ver: " << ident->major_ver
<< endl;
builder << std::string(indent, '\t') << "minor_ver: " << ident->minor_ver
<< endl;
builder << std::string(indent, '\t') << "enc_format: " << ident->enc_format
<< endl;
builder << std::string(indent, '\t') << "flags: " << ident->flags << endl;
indent--;
builder << std::string(indent, '\t') << "}";
} else {
builder << "{ " << (ident->address != nullptr ? ident->address : "NULL")
<< "/" << (ident->user_id != nullptr ? ident->user_id : "NULL")
<< "/" << (ident->username != nullptr ? ident->username : "NULL")
<< "/" << (ident->fpr != nullptr ? ident->fpr : "NULL") << " }";
}
} else {
builder << "NULL";
}
return builder.str();
}
string member_to_string(::pEp_member* member, bool full, int indent)
{
stringstream builder;
if (member != nullptr) {
builder << std::string(indent, '\t') << "{" << endl;
indent++;
builder << std::string(indent, '\t')
<< "ident: " << identity_to_string(member->ident, full, indent) << endl;
builder << std::string(indent, '\t') << "joined: " << member->joined << endl;
indent--;
builder << std::string(indent, '\t') << "}";
} else {
builder << "NULL";
}
return builder.str();
}
string memberlist_to_string(::member_list* mbl, bool full, int indent)
{
stringstream builder;
if (mbl != nullptr) {
builder << endl;
builder << std::string(indent, '\t') << "[" << endl;
indent++;
for (member_list* curr_member = mbl; curr_member != nullptr;
curr_member = curr_member->next) {
builder << member_to_string(curr_member->member, full, indent) << endl;
}
indent--;
builder << std::string(indent, '\t') << "]";
} else {
builder << "NULL";
}
return builder.str();
}
string group_to_string(::pEp_group* group, bool full, int indent)
{
stringstream builder;
if (group != nullptr) {
builder << endl;
builder << std::string(indent, '\t') << "{" << endl;
indent++;
builder << std::string(indent, '\t') << "group_identity: "
<< identity_to_string(group->group_identity, full, indent) << endl;
builder << std::string(indent, '\t')
<< "manager: " << identity_to_string(group->manager, full, indent)
<< endl;
builder << std::string(indent, '\t') << "active: " << group->active << endl;
builder << std::string(indent, '\t')
<< "members: " << memberlist_to_string(group->members, full, indent)
<< endl;
indent--;
builder << std::string(indent, '\t') << "]";
} else {
builder << "NULL";
}
return builder.str();
}
} // namespace Utils
} // namespace Test
} // namespace pEp

+ 21
- 0
test/framework/utils.hh View File

@ -0,0 +1,21 @@
// This file is under GNU General Public License 3.0
// see LICENSE.txt
#ifndef LIBPEPADAPTER_UTILS_HH
#define LIBPEPADAPTER_UTILS_HH
#include <string>
#include <pEp/message.h>
#include <pEp/group.h>
namespace pEp {
namespace Test {
namespace Utils {
std::string identity_to_string(::pEp_identity* ident, bool full = true, int indent = 0);
std::string member_to_string(::pEp_member* member, bool full = true, int indent = 0);
std::string memberlist_to_string(::member_list* mbl, bool full = true, int indent = 0);
std::string group_to_string(::pEp_group* group, bool full = true, int indent = 0);
}
} // namespace Test
} // namespace pEp
#endif

Loading…
Cancel
Save