fishbowl/engine/tests/src/resource.cc

34 lines
No EOL
1.2 KiB
C++

#include "fishbone/client.h"
#include "fishbone/resource.h"
#include <catch2/catch_test_macros.hpp>
#include <cstring>
#include <limits.h>
#include <unistd.h>
namespace {
class TestEngine : public fishbone::BaseEngine {
public:
TestEngine() {
// TODO: Use abstraction instead of relying on POSIX
char cwd[PATH_MAX];
getcwd(cwd, PATH_MAX);
this->resourceResolver = new fishbone::DirectoryResourceResolver({std::string(cwd) + "/testresources"});
}
};
} // namespace
static const char* LOREM = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut "
"labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi "
"ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum "
"dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia "
"deserunt mollit anim id est laborum.";
TEST_CASE("Directory loader") {
TestEngine engine;
fishbone::Resource rsc(&engine, "lorem.txt");
REQUIRE(rsc.getBuffer() != NULL);
REQUIRE(rsc.getSize() == strlen(LOREM));
REQUIRE(strncmp(rsc.getBuffer(), LOREM, rsc.getSize()) == 0);
}