#include <cstdlib>
#include <string>
#include "serializable.h"
#include "test_platform.h"
namespace crdtp {
namespace {
class SimpleExample : public Serializable {
public:
explicit SimpleExample(const std::vector<uint8_t>& contents)
: contents_(contents) {}
void AppendSerialized(std::vector<uint8_t>* out) const override {
out->insert(out->end(), contents_.begin(), contents_.end());
}
private:
std::vector<uint8_t> contents_;
};
}
TEST(SerializableTest, YieldsContents) {
std::vector<uint8_t> contents = {1, 2, 3};
SimpleExample foo(contents);
foo.AppendSerialized(&contents);
EXPECT_THAT(contents, testing::ElementsAre(1, 2, 3, 1, 2, 3));
EXPECT_THAT(foo.Serialize(), testing::ElementsAre(1, 2, 3));
}
}