mirror of
https://github.com/EasyRPG/Player.git
synced 2026-10-27 10:48:51 +00:00
71 lines
1.8 KiB
C++
71 lines
1.8 KiB
C++
#include <cassert>
|
|
#include <cstdlib>
|
|
#include "platform.h"
|
|
#include "doctest.h"
|
|
|
|
TEST_SUITE_BEGIN("Platform");
|
|
|
|
namespace {
|
|
const std::string onekb = EP_TEST_PATH "/platform/1kb";
|
|
const std::string empty = EP_TEST_PATH "/platform/empty";
|
|
const std::string folder = EP_TEST_PATH "/platform/folder";
|
|
const std::string bad = EP_TEST_PATH "/platform/!!!nonexistant!!!";
|
|
}
|
|
|
|
TEST_CASE("Exists") {
|
|
CHECK(Platform::File(empty).Exists());
|
|
CHECK(Platform::File(folder).Exists());
|
|
CHECK(!Platform::File(bad).Exists());
|
|
}
|
|
|
|
TEST_CASE("IsFile") {
|
|
CHECK(Platform::File(empty).IsFile(false));
|
|
CHECK(!Platform::File(folder).IsFile(false));
|
|
CHECK(!Platform::File(bad).IsFile(false));
|
|
}
|
|
|
|
TEST_CASE("IsDirectory") {
|
|
CHECK(!Platform::File(empty).IsDirectory(false));
|
|
CHECK(Platform::File(folder).IsDirectory(false));
|
|
CHECK(!Platform::File(bad).IsDirectory(false));
|
|
}
|
|
|
|
TEST_CASE("GetType") {
|
|
CHECK(Platform::File(empty).GetType(false) == Platform::FileType::File);
|
|
CHECK(Platform::File(folder).GetType(false) == Platform::FileType::Directory);
|
|
CHECK(Platform::File(bad).GetType(false) == Platform::FileType::Unknown);
|
|
}
|
|
|
|
TEST_CASE("GetSize") {
|
|
CHECK(Platform::File(empty).GetSize() == 0);
|
|
CHECK(Platform::File(onekb).GetSize() == 1024);
|
|
CHECK(Platform::File(bad).GetSize() == -1);
|
|
}
|
|
|
|
TEST_CASE("ReadDirectory") {
|
|
Platform::Directory dir(EP_TEST_PATH "/platform");
|
|
|
|
CHECK(dir);
|
|
|
|
int iterations = 0;
|
|
int matches = 0;
|
|
|
|
while (dir.Read()) {
|
|
if (dir.GetEntryName() == "folder") {
|
|
++matches;
|
|
CHECK(dir.GetEntryType() == Platform::FileType::Directory);
|
|
} else if (dir.GetEntryName() == "empty" ||
|
|
dir.GetEntryName() == "1kb") {
|
|
++matches;
|
|
CHECK(dir.GetEntryType() == Platform::FileType::File);
|
|
}
|
|
++iterations;
|
|
}
|
|
|
|
CHECK(matches == 3);
|
|
// Could contain . and .. but not more
|
|
CHECK(iterations <= 5);
|
|
}
|
|
|
|
TEST_SUITE_END();
|