#pragma once #include "lib/FancyZonesDataTypes.h" namespace CustomAssert { static void AreEqual(const RECT& r1, const RECT& r2) { const bool equal = ((r1.left == r2.left) && (r1.right == r2.right) && (r1.top == r2.top) && (r1.bottom == r2.bottom)); Microsoft::VisualStudio::CppUnitTestFramework::Assert::IsTrue(equal); } static void AreEqual(GUID g1, GUID g2) { Microsoft::VisualStudio::CppUnitTestFramework::Assert::IsTrue(g1 == g2); } static void AreEqual(FancyZonesDataTypes::ZoneSetLayoutType t1, FancyZonesDataTypes::ZoneSetLayoutType t2) { Microsoft::VisualStudio::CppUnitTestFramework::Assert::IsTrue(t1 == t2); } static void AreEqual(const std::vector>& a1, const std::vector>& a2) { Microsoft::VisualStudio::CppUnitTestFramework::Assert::IsTrue(a1.size() == a2.size()); for (size_t i = 0; i < a1.size(); i++) { Microsoft::VisualStudio::CppUnitTestFramework::Assert::IsTrue(a1[i].first == a2[i].first); } } } namespace Mocks { static HWND Window() { static UINT_PTR s_nextWindow = 0; return reinterpret_cast(++s_nextWindow); } static HMONITOR Monitor() { static UINT_PTR s_nextMonitor = 0; return reinterpret_cast(++s_nextMonitor); } static HINSTANCE Instance() { static UINT_PTR s_nextInstance = 0; return reinterpret_cast(++s_nextInstance); } HWND WindowCreate(HINSTANCE hInst); } namespace Helpers { std::wstring GuidToString(const GUID& guid); std::wstring CreateGuidString(); std::optional StringToGuid(const std::wstring& str); } template<> std::wstring Microsoft::VisualStudio::CppUnitTestFramework::ToString(const std::vector& vec) { std::wstring str = L"{"; for (size_t i = 0; i < vec.size(); i++) { str += std::to_wstring(vec[i]); if (i != vec.size() - 1) { str += L","; } } str += L"}"; return str; }