2022-07-01 17:29:02 +02:00
|
|
|
#include "pch.h"
|
|
|
|
|
|
|
|
|
|
#include <FancyZonesLib/FancyZonesDataTypes.h>
|
|
|
|
|
#include <FancyZonesLib/util.h>
|
|
|
|
|
|
|
|
|
|
#include <FancyZonesTests/UnitTests/Util.h>
|
|
|
|
|
|
|
|
|
|
using namespace Microsoft::VisualStudio::CppUnitTestFramework;
|
|
|
|
|
|
|
|
|
|
namespace FancyZonesUnitTests
|
|
|
|
|
{
|
|
|
|
|
TEST_CLASS (WorkAreaIdComparison)
|
|
|
|
|
{
|
|
|
|
|
TEST_METHOD (MonitorHandleSame)
|
|
|
|
|
{
|
|
|
|
|
auto monitor = Mocks::Monitor();
|
|
|
|
|
|
|
|
|
|
FancyZonesDataTypes::WorkAreaId id1{
|
|
|
|
|
.monitorId = { .monitor = monitor, .deviceId = { .id = L"device-1", .instanceId = L"instance-id-1" }, .serialNumber = L"serial-number-1" },
|
|
|
|
|
.virtualDesktopId = FancyZonesUtils::GuidFromString(L"{E21F6F29-76FD-4FC1-8970-17AB8AD64847}").value()
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
FancyZonesDataTypes::WorkAreaId id2{
|
|
|
|
|
.monitorId = { .monitor = monitor, .deviceId = { .id = L"device-2", .instanceId = L"instance-id-2" }, .serialNumber = L"serial-number-2" },
|
|
|
|
|
.virtualDesktopId = FancyZonesUtils::GuidFromString(L"{E21F6F29-76FD-4FC1-8970-17AB8AD64847}").value()
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Assert::IsTrue(id1 == id2);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
TEST_METHOD (MonitorHandleDifferent)
|
|
|
|
|
{
|
|
|
|
|
FancyZonesDataTypes::WorkAreaId id1{
|
|
|
|
|
.monitorId = { .monitor = Mocks::Monitor(), .deviceId = { .id = L"device", .instanceId = L"instance-id" }, .serialNumber = L"serial-number" },
|
|
|
|
|
.virtualDesktopId = FancyZonesUtils::GuidFromString(L"{E21F6F29-76FD-4FC1-8970-17AB8AD64847}").value()
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
FancyZonesDataTypes::WorkAreaId id2{
|
|
|
|
|
.monitorId = { .monitor = Mocks::Monitor(), .deviceId = { .id = L"device", .instanceId = L"instance-id" }, .serialNumber = L"serial-number" },
|
|
|
|
|
.virtualDesktopId = FancyZonesUtils::GuidFromString(L"{E21F6F29-76FD-4FC1-8970-17AB8AD64847}").value()
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Assert::IsFalse(id1 == id2);
|
|
|
|
|
}
|
|
|
|
|
|
2023-09-21 13:47:56 +03:00
|
|
|
TEST_METHOD (VirtualDesktopDifferent)
|
2022-07-01 17:29:02 +02:00
|
|
|
{
|
|
|
|
|
FancyZonesDataTypes::WorkAreaId id1{
|
|
|
|
|
.monitorId = { .deviceId = { .id = L"device", .instanceId = L"instance-id" }, .serialNumber = L"serial-number" },
|
2023-09-21 13:47:56 +03:00
|
|
|
.virtualDesktopId = FancyZonesUtils::GuidFromString(L"{F21F6F29-76FD-4FC1-8970-17AB8AD64847}").value()
|
2022-07-01 17:29:02 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
FancyZonesDataTypes::WorkAreaId id2{
|
|
|
|
|
.monitorId = { .deviceId = { .id = L"device", .instanceId = L"instance-id" }, .serialNumber = L"serial-number" },
|
|
|
|
|
.virtualDesktopId = FancyZonesUtils::GuidFromString(L"{E21F6F29-76FD-4FC1-8970-17AB8AD64847}").value()
|
|
|
|
|
};
|
|
|
|
|
|
2023-09-21 13:47:56 +03:00
|
|
|
Assert::IsFalse(id1 == id2);
|
2022-07-01 17:29:02 +02:00
|
|
|
}
|
|
|
|
|
|
2023-09-21 13:47:56 +03:00
|
|
|
TEST_METHOD (VirtualDesktopNull)
|
2022-07-01 17:29:02 +02:00
|
|
|
{
|
|
|
|
|
FancyZonesDataTypes::WorkAreaId id1{
|
|
|
|
|
.monitorId = { .deviceId = { .id = L"device", .instanceId = L"instance-id" }, .serialNumber = L"serial-number" },
|
2023-09-21 13:47:56 +03:00
|
|
|
.virtualDesktopId = GUID_NULL
|
2022-07-01 17:29:02 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
FancyZonesDataTypes::WorkAreaId id2{
|
|
|
|
|
.monitorId = { .deviceId = { .id = L"device", .instanceId = L"instance-id" }, .serialNumber = L"serial-number" },
|
|
|
|
|
.virtualDesktopId = FancyZonesUtils::GuidFromString(L"{E21F6F29-76FD-4FC1-8970-17AB8AD64847}").value()
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Assert::IsFalse(id1 == id2);
|
|
|
|
|
}
|
|
|
|
|
|
2022-07-11 17:39:03 +02:00
|
|
|
TEST_METHOD (DifferentSerialNumber)
|
2022-07-01 17:29:02 +02:00
|
|
|
{
|
|
|
|
|
FancyZonesDataTypes::WorkAreaId id1{
|
|
|
|
|
.monitorId = { .deviceId = { .id = L"device", .instanceId = L"instance-id" }, .serialNumber = L"serial-number" },
|
|
|
|
|
.virtualDesktopId = FancyZonesUtils::GuidFromString(L"{E21F6F29-76FD-4FC1-8970-17AB8AD64847}").value()
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
FancyZonesDataTypes::WorkAreaId id2{
|
2022-07-11 17:39:03 +02:00
|
|
|
.monitorId = { .deviceId = { .id = L"device", .instanceId = L"instance-id" }, .serialNumber = L"another-serial-number" },
|
2022-07-01 17:29:02 +02:00
|
|
|
.virtualDesktopId = FancyZonesUtils::GuidFromString(L"{E21F6F29-76FD-4FC1-8970-17AB8AD64847}").value()
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Assert::IsFalse(id1 == id2);
|
|
|
|
|
}
|
|
|
|
|
|
2022-07-11 17:39:03 +02:00
|
|
|
TEST_METHOD (DefaultMonitorIdDifferentInstanceIdSameNumber)
|
2022-07-01 17:29:02 +02:00
|
|
|
{
|
|
|
|
|
FancyZonesDataTypes::WorkAreaId id1{
|
2022-07-11 17:39:03 +02:00
|
|
|
.monitorId = { .deviceId = { .id = L"Default_Monitor", .instanceId = L"instance-id", .number = 1 }, .serialNumber = L"" },
|
2022-07-01 17:29:02 +02:00
|
|
|
.virtualDesktopId = FancyZonesUtils::GuidFromString(L"{E21F6F29-76FD-4FC1-8970-17AB8AD64847}").value()
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
FancyZonesDataTypes::WorkAreaId id2{
|
2022-07-11 17:39:03 +02:00
|
|
|
.monitorId = { .deviceId = { .id = L"Default_Monitor", .instanceId = L"another-instance-id", .number = 1 }, .serialNumber = L"" },
|
2022-07-01 17:29:02 +02:00
|
|
|
.virtualDesktopId = FancyZonesUtils::GuidFromString(L"{E21F6F29-76FD-4FC1-8970-17AB8AD64847}").value()
|
|
|
|
|
};
|
|
|
|
|
|
2022-07-11 17:39:03 +02:00
|
|
|
Assert::IsTrue(id1 == id2);
|
2022-07-01 17:29:02 +02:00
|
|
|
}
|
|
|
|
|
|
2022-07-11 17:39:03 +02:00
|
|
|
TEST_METHOD (DefaultMonitorIdDifferentInstanceIdDifferentNumber)
|
2022-07-01 17:29:02 +02:00
|
|
|
{
|
|
|
|
|
FancyZonesDataTypes::WorkAreaId id1{
|
2022-07-11 17:39:03 +02:00
|
|
|
.monitorId = { .deviceId = { .id = L"Default_Monitor", .instanceId = L"instance-id", .number = 1 }, .serialNumber = L"" },
|
2022-07-01 17:29:02 +02:00
|
|
|
.virtualDesktopId = FancyZonesUtils::GuidFromString(L"{E21F6F29-76FD-4FC1-8970-17AB8AD64847}").value()
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
FancyZonesDataTypes::WorkAreaId id2{
|
2022-07-11 17:39:03 +02:00
|
|
|
.monitorId = { .deviceId = { .id = L"Default_Monitor", .instanceId = L"another-instance-id", .number = 2 }, .serialNumber = L"" },
|
2022-07-01 17:29:02 +02:00
|
|
|
.virtualDesktopId = FancyZonesUtils::GuidFromString(L"{E21F6F29-76FD-4FC1-8970-17AB8AD64847}").value()
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Assert::IsFalse(id1 == id2);
|
|
|
|
|
}
|
|
|
|
|
|
2022-07-11 17:39:03 +02:00
|
|
|
TEST_METHOD (DefaultMonitorIdSameInstanceId)
|
2022-07-01 17:29:02 +02:00
|
|
|
{
|
|
|
|
|
FancyZonesDataTypes::WorkAreaId id1{
|
|
|
|
|
.monitorId = { .deviceId = { .id = L"Default_Monitor", .instanceId = L"instance-id" }, .serialNumber = L"" },
|
|
|
|
|
.virtualDesktopId = FancyZonesUtils::GuidFromString(L"{E21F6F29-76FD-4FC1-8970-17AB8AD64847}").value()
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
FancyZonesDataTypes::WorkAreaId id2{
|
2022-07-11 17:39:03 +02:00
|
|
|
.monitorId = { .deviceId = { .id = L"Default_Monitor", .instanceId = L"instance-id" }, .serialNumber = L"" },
|
|
|
|
|
.virtualDesktopId = FancyZonesUtils::GuidFromString(L"{E21F6F29-76FD-4FC1-8970-17AB8AD64847}").value()
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Assert::IsTrue(id1 == id2);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
TEST_METHOD (DifferentId)
|
|
|
|
|
{
|
|
|
|
|
FancyZonesDataTypes::WorkAreaId id1{
|
|
|
|
|
.monitorId = { .deviceId = { .id = L"device-1", .instanceId = L"instance-id" }, .serialNumber = L"" },
|
|
|
|
|
.virtualDesktopId = FancyZonesUtils::GuidFromString(L"{E21F6F29-76FD-4FC1-8970-17AB8AD64847}").value()
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
FancyZonesDataTypes::WorkAreaId id2{
|
|
|
|
|
.monitorId = { .deviceId = { .id = L"device-2", .instanceId = L"instance-id" }, .serialNumber = L"" },
|
2022-07-01 17:29:02 +02:00
|
|
|
.virtualDesktopId = FancyZonesUtils::GuidFromString(L"{E21F6F29-76FD-4FC1-8970-17AB8AD64847}").value()
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Assert::IsFalse(id1 == id2);
|
|
|
|
|
}
|
|
|
|
|
|
2022-07-11 17:39:03 +02:00
|
|
|
TEST_METHOD (SameIdDifferentSerialNumbers)
|
2022-07-01 17:29:02 +02:00
|
|
|
{
|
|
|
|
|
FancyZonesDataTypes::WorkAreaId id1{
|
2022-07-11 17:39:03 +02:00
|
|
|
.monitorId = { .deviceId = { .id = L"device-1", .instanceId = L"instance-id-1" }, .serialNumber = L"serial-number-1" },
|
2022-07-01 17:29:02 +02:00
|
|
|
.virtualDesktopId = FancyZonesUtils::GuidFromString(L"{E21F6F29-76FD-4FC1-8970-17AB8AD64847}").value()
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
FancyZonesDataTypes::WorkAreaId id2{
|
2022-07-11 17:39:03 +02:00
|
|
|
.monitorId = { .deviceId = { .id = L"device-1", .instanceId = L"instance-id-2" }, .serialNumber = L"serial-number-2" },
|
2022-07-01 17:29:02 +02:00
|
|
|
.virtualDesktopId = FancyZonesUtils::GuidFromString(L"{E21F6F29-76FD-4FC1-8970-17AB8AD64847}").value()
|
|
|
|
|
};
|
|
|
|
|
|
2022-07-11 17:39:03 +02:00
|
|
|
Assert::IsFalse(id1 == id2);
|
2022-07-01 17:29:02 +02:00
|
|
|
}
|
|
|
|
|
|
2022-07-11 17:39:03 +02:00
|
|
|
TEST_METHOD (DifferentIdSameSerialNumbers)
|
2022-07-01 17:29:02 +02:00
|
|
|
{
|
|
|
|
|
FancyZonesDataTypes::WorkAreaId id1{
|
2022-07-11 17:39:03 +02:00
|
|
|
.monitorId = { .deviceId = { .id = L"device-1", .instanceId = L"instance-id-1" }, .serialNumber = L"serial-number-1" },
|
2022-07-01 17:29:02 +02:00
|
|
|
.virtualDesktopId = FancyZonesUtils::GuidFromString(L"{E21F6F29-76FD-4FC1-8970-17AB8AD64847}").value()
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
FancyZonesDataTypes::WorkAreaId id2{
|
2022-07-11 17:39:03 +02:00
|
|
|
.monitorId = { .deviceId = { .id = L"device-2", .instanceId = L"instance-id-2" }, .serialNumber = L"serial-number-1" },
|
2022-07-01 17:29:02 +02:00
|
|
|
.virtualDesktopId = FancyZonesUtils::GuidFromString(L"{E21F6F29-76FD-4FC1-8970-17AB8AD64847}").value()
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Assert::IsFalse(id1 == id2);
|
|
|
|
|
}
|
|
|
|
|
|
2022-07-11 17:39:03 +02:00
|
|
|
TEST_METHOD (MonitorReconnect)
|
2022-07-01 17:29:02 +02:00
|
|
|
{
|
2022-07-11 17:39:03 +02:00
|
|
|
// same: id, serial number and monitor number
|
|
|
|
|
// different: instance id
|
|
|
|
|
|
2022-07-01 17:29:02 +02:00
|
|
|
FancyZonesDataTypes::WorkAreaId id1{
|
2022-07-11 17:39:03 +02:00
|
|
|
.monitorId = { .deviceId = { .id = L"device", .instanceId = L"4&125707d6&0&UID1", .number = 1 }, .serialNumber = L"serial-number" },
|
2022-07-01 17:29:02 +02:00
|
|
|
.virtualDesktopId = FancyZonesUtils::GuidFromString(L"{E21F6F29-76FD-4FC1-8970-17AB8AD64847}").value()
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
FancyZonesDataTypes::WorkAreaId id2{
|
2022-07-11 17:39:03 +02:00
|
|
|
.monitorId = { .deviceId = { .id = L"device", .instanceId = L"4&125707d6&0&UID2", .number = 1 }, .serialNumber = L"serial-number" },
|
2022-07-01 17:29:02 +02:00
|
|
|
.virtualDesktopId = FancyZonesUtils::GuidFromString(L"{E21F6F29-76FD-4FC1-8970-17AB8AD64847}").value()
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Assert::IsTrue(id1 == id2);
|
|
|
|
|
}
|
|
|
|
|
|
2022-07-11 17:39:03 +02:00
|
|
|
TEST_METHOD (SameMonitorModels)
|
2022-07-01 17:29:02 +02:00
|
|
|
{
|
2022-07-11 17:39:03 +02:00
|
|
|
// same: id, serial number
|
|
|
|
|
// different: monitor number, instance id
|
|
|
|
|
|
2022-07-01 17:29:02 +02:00
|
|
|
FancyZonesDataTypes::WorkAreaId id1{
|
2022-07-11 17:39:03 +02:00
|
|
|
.monitorId = { .deviceId = { .id = L"device", .instanceId = L"4&125707d6&0&UID1", .number = 1 }, .serialNumber = L"serial-number" },
|
2022-07-01 17:29:02 +02:00
|
|
|
.virtualDesktopId = FancyZonesUtils::GuidFromString(L"{E21F6F29-76FD-4FC1-8970-17AB8AD64847}").value()
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
FancyZonesDataTypes::WorkAreaId id2{
|
2022-07-11 17:39:03 +02:00
|
|
|
.monitorId = { .deviceId = { .id = L"device", .instanceId = L"4&125707d6&0&UID2", .number = 2 }, .serialNumber = L"serial-number" },
|
2022-07-01 17:29:02 +02:00
|
|
|
.virtualDesktopId = FancyZonesUtils::GuidFromString(L"{E21F6F29-76FD-4FC1-8970-17AB8AD64847}").value()
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Assert::IsFalse(id1 == id2);
|
|
|
|
|
}
|
|
|
|
|
|
2022-07-11 17:39:03 +02:00
|
|
|
TEST_METHOD(SerialNumberNotFoundError)
|
2022-07-01 17:29:02 +02:00
|
|
|
{
|
2022-07-11 17:39:03 +02:00
|
|
|
// serial number is empty, other values are the same
|
|
|
|
|
|
2022-07-01 17:29:02 +02:00
|
|
|
FancyZonesDataTypes::WorkAreaId id1{
|
2022-07-11 17:39:03 +02:00
|
|
|
.monitorId = { .deviceId = { .id = L"device", .instanceId = L"instance-id", .number = 1 }, .serialNumber = L"serial-number" },
|
2022-07-01 17:29:02 +02:00
|
|
|
.virtualDesktopId = FancyZonesUtils::GuidFromString(L"{E21F6F29-76FD-4FC1-8970-17AB8AD64847}").value()
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
FancyZonesDataTypes::WorkAreaId id2{
|
2022-07-11 17:39:03 +02:00
|
|
|
.monitorId = { .deviceId = { .id = L"device", .instanceId = L"instance-id", .number = 1 }, .serialNumber = L"" },
|
2022-07-01 17:29:02 +02:00
|
|
|
.virtualDesktopId = FancyZonesUtils::GuidFromString(L"{E21F6F29-76FD-4FC1-8970-17AB8AD64847}").value()
|
|
|
|
|
};
|
|
|
|
|
|
2022-07-11 17:39:03 +02:00
|
|
|
Assert::IsTrue(id1 == id2);
|
2022-07-01 17:29:02 +02:00
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
}
|