2026-27-cpp-homework/feladat3/UnitTest1/UnitTest1.cpp
2026-10-28 16:54:20 +01:00

113 lines
3.2 KiB
C++

// IFPQYY | Tóth Dániel Mátyás | V2
#include "pch.h"
#include "CppUnitTest.h"
#include "feladat3.h"
using namespace Microsoft::VisualStudio::CppUnitTestFramework;
namespace UnitTest1
{
TEST_CLASS(UnitTest1)
{
public:
char infn[MYMAXFILES][MYMAXFN] = {};
char outfn[MYMAXFILES][MYMAXFN] = {};
static unsigned char buf[MYBUFSIZE];
unsigned short minv, maxv, avgv, nv;
TEST_METHOD(InvalidFileParameter)
{
char* argv[] = {
"",
"doesntexist"
};
Assert::AreEqual(GetFilenames(2, argv, infn, outfn), NOK);
}
TEST_METHOD(AllValidFileParameter)
{
char* argv[] = {
"",
"C:\\Users\\danit\\Desktop\\2026-27-cpp-homework\\feladat3\\UnitTest1\\datasets.txt"
//couldn't find the working directory :(
};
Assert::AreEqual(GetFilenames(2, argv, infn, outfn), OK);
}
TEST_METHOD(NoFileParameter)
{
char* argv[] = {
""
};
Assert::AreEqual(GetFilenames(1, argv, infn, outfn), NOK);
}
TEST_METHOD(EmptyFile)
{
char* argv[] = {
"",
"C:\\Users\\danit\\Desktop\\2026-27-cpp-homework\\feladat3\\UnitTest1\\empty.txt"
};
Assert::AreEqual(GetFilenames(2, argv, infn, outfn), NOK);
}
TEST_METHOD(InvalidFile)
{
char* argv[] = {
"",
"C:\\Users\\danit\\Desktop\\2026-27-cpp-homework\\feladat3\\UnitTest1\\bad.txt"
};
Assert::AreEqual(GetFilenames(2, argv, infn, outfn), NOK);
}
TEST_METHOD(SortSomeMoodleFiles)
{
char infn[MYMAXFILES][MYMAXFN] = {};
char outfn[MYMAXFILES][MYMAXFN] = {};
static unsigned char buf[MYBUFSIZE];
unsigned short minv, maxv, avgv, nv;
char* argv[] = {
"",
"C:\\Users\\danit\\Desktop\\2026-27-cpp-homework\\feladat3\\UnitTest1\\somedatasets.txt"
};
GetFilenames(2, argv, infn, outfn); //valid files, too lazyto write in by hand
for (int n = 0; (n < MYMAXFILES) && (infn[n][0] != '\0'); n++)
{
Assert::AreEqual(SortFile(infn[n], outfn[n], buf, &minv, &maxv, &avgv, &nv, MYBUFSIZE, true), OK);
}
}
TEST_METHOD(SortAllMoodleFiles)
{
char infn[MYMAXFILES][MYMAXFN] = {};
char outfn[MYMAXFILES][MYMAXFN] = {};
static unsigned char buf[MYBUFSIZE];
unsigned short minv, maxv, avgv, nv;
char* argv[] = {
"",
"C:\\Users\\danit\\Desktop\\2026-27-cpp-homework\\feladat3\\UnitTest1\\datasets.txt"
};
GetFilenames(2, argv, infn, outfn); //also valid files
for (int n = 0; (n < MYMAXFILES) && (infn[n][0] != '\0'); n++)
{
Assert::AreEqual(SortFile(infn[n], outfn[n], buf, &minv, &maxv, &avgv, &nv, MYBUFSIZE, true), OK);
}
}
TEST_METHOD(NullPtrs)
{
for (int n = 0; (n < MYMAXFILES) && (infn[n][0] != '\0'); n++)
{
Assert::AreEqual(SortFile(nullptr, nullptr, nullptr, &minv, &maxv, &avgv, &nv, MYBUFSIZE, true), NOK);
}
}
TEST_METHOD(InvalidFileNames)
{
static unsigned char buf[MYBUFSIZE];
unsigned short minv, maxv, avgv, nv;
Assert::AreEqual(SortFile("bad", "morebad", buf, &minv, &maxv, &avgv, &nv, MYBUFSIZE, true), NOK);
}
TEST_METHOD(BadBufferSize)
{
char infn[MYMAXFILES][MYMAXFN] = {};
char outfn[MYMAXFILES][MYMAXFN] = {};
static unsigned char buf[2];
unsigned short minv, maxv, avgv, nv;
Assert::AreEqual(SortFile(infn[0], outfn[0], buf, &minv, &maxv, &avgv, &nv, MYBUFSIZE, true), NOK);
}
};
}