#include "pch.h" #include #include #include "CppUnitTest.h" using namespace Microsoft::VisualStudio::CppUnitTestFramework; // test class for base64 encoding and decoding namespace FrameworkTests { TEST_CLASS (Base64Tests) { public: TEST_METHOD (TestEncoding) { const char* data = "Hello World!"; const char* encoded = "SGVsbG8gV29ybGQh"; Framework::Text encodedData = Framework::base64Encode(data, Framework::textLength(data)); Assert::AreEqual(encoded, encodedData.getText()); } TEST_METHOD (TestDecoding) { const char* data = "SGVsbG8gV29ybGQh"; const char* decoded = "Hello World!"; char* decodedData = 0; int decodecLength; Framework::base64Decode(data, &decodedData, &decodecLength); Assert::AreEqual(decoded, decodedData); delete[] decodedData; } TEST_METHOD (TestDecodingInvalid) { const char* data = "SGVsbG8.gVd29ybGQh"; char* decodedData = 0; int decodecLength; Framework::base64Decode(data, &decodedData, &decodecLength); Assert::AreEqual(0, decodecLength); delete[] decodedData; } TEST_METHOD (TestDecodeAndEncode) { const char* data = "g0OLN0EJepEiT8eiNdvb9PfJkIqSpiLqb3uvRwyg2Y7iZsQkbkC1kI99M8Na" "ELhT2Erca/" "D+VmB6B6aFpoAViuXZrlQaZeSo4RhtPScmjwFwbGtha8DA5Mdna2/" "ngPjOWqgkdA4JHe8hiS1Ir7tIICmygZR0Qnk8qeSrkWWlYL5OhDRcjFBMrNl" "584o1Pape7izxZG1soBdRTKi28Ap2QI2pmxr55sbTYbtelfcK8+" "c15UyiUuy4ozliWitr0Gr3egYAE3Ts2UlOlafjjbDXdeS+" "wYcRrkGz56IPEw/" "efQgAAAAAWYMbzXDzF76JvaIYb3uNVDpQ20v9Hf3mvw75zet31Ub57xRr4ys" "qbujMhVhIFKuCY4jMYqTLSWXYRDTFuwoMtfggIt1KS0w0GdGLYOQ44ki/" "r6lle/LJVDf9GvEIAAAAACaoAgBFyt6PFyzCL/" "xPj+GGcipGItOqncd18f1zDfB7Mpp9d2VcCAAAAAB7h8qphRo5Z5+" "rkeXNZZFrLQdeLHpqHvWct3MUHc8cmFjlQ9z+" "fESeKNSF9TsXYWgev5OYKrCOxmgDAAAAANmF0fUfK9thCADVAQDa3Ex6BgAi" "/vpcF13DNB1Yy0cJWw5xXef2MN0XWrl3YpVVrRFbzhFWLCez71rQSCcZUYIm" "wd4PuRDrz2mmSMo8nHlM90lcT3SDAwAAADG1AWXd06wFAAAAAOv8hxK/" "ZiB6dg1K3rKSqu4wJTwobZh24Rx5R/" "hN8v058IVLsetqLGJ3dkIqCuwaORJVYH7s1WAJT6cDAAAAAJuaAdSMhiA/" "c4pq1QIA4Bgs6gYARSQXmYOVhlr1j6mdkkU5kxvEGjoEAAAAAI3DbmPEUHvv" "O4A1XpbO4S1WPCPk5MB3K/gMRb4lf8KxQzEWCAAAAADFAgCBkPe8ES4cp/" "v81FI69jgguK9LsbqPcN8PM5JSZKda5TlSokl/" "vvB8u8XO9b0IAAAAABd2t2Eoc/" "CYVAHL5VIxjqsXxv25EX54AgD6NcfJLIXRQvuJoiT7k7xQlIg35bnEktCMkI" "qdDwQAAAAANQMAnwAACjln02TspaXoMEkOLdzJfHFTs1cNeencBgBVAwB6AA" "Boo4lsQ5OkqWgKlg6vfz73jGrVV+ZHqZqethSIlBoEAAAAAPy8jWn+" "IQ6piBdBlsW/" "075NP5SkJtpOv3oGANMEAAAAAJntB5erkwGrtA5VPiWV0+" "pWqKmj5j5IDRqWzJScoZc3kJ3NPDLN5uXbPSQB0vfrKqCVzYjTF5XtrWOCSg" "UAAAAAGoGUt0/Q6B64z/" "j18vnI6uXyjHzAFVHXqj+" "FDsHPEttRppOgeH29MU23J0Gy7yyZ47gWpc1mfXilAwAAAACFZ9KXQyQ/" "1sO2VYLnojoQ4uv+EIXjx5uJlQMAAAAAMAQAAAAABw+oCpMR2yxU/" "morwyKARgojgBkGAGwZFvH73Y6FdJGMgjqVF0pyQp1yrMg2zUp812z78HJpC" "4dcB2bpjNl8Gly1r3IBIrSek2FnyDCwRgkeQviPqwQAAAAAkAQAAAAAGAgAA" "AAAC33xl1dusLMkYA=="; char* decodedData = 0; int decodecLength; Framework::base64Decode(data, &decodedData, &decodecLength); Framework::Text encoded = Framework::base64Encode(decodedData, decodecLength); Assert::IsTrue(encoded.istGleich(data)); delete[] decodedData; } }; } // namespace FrameworkTests