ModulesRegistry.Tests.cpp
1 #include "pch.h" 2 #include "TestHelpers.h" 3 #include <modulesRegistry.h> 4 5 using namespace Microsoft::VisualStudio::CppUnitTestFramework; 6 7 namespace UnitTestsCommonUtils 8 { 9 static std::wstring GetInstallDir() 10 { 11 wchar_t path[MAX_PATH]; 12 GetModuleFileNameW(nullptr, path, MAX_PATH); 13 return std::filesystem::path{ path }.parent_path().wstring(); 14 } 15 16 TEST_CLASS(ModulesRegistryTests) 17 { 18 public: 19 // Test that all changeset generator functions return valid changesets 20 TEST_METHOD(GetSvgPreviewHandlerChangeSet_ReturnsChangeSet) 21 { 22 auto changeSet = getSvgPreviewHandlerChangeSet(GetInstallDir(), false); 23 24 Assert::IsFalse(changeSet.changes.empty()); 25 } 26 27 TEST_METHOD(GetSvgThumbnailProviderChangeSet_ReturnsChangeSet) 28 { 29 auto changeSet = getSvgThumbnailHandlerChangeSet(GetInstallDir(), false); 30 31 Assert::IsFalse(changeSet.changes.empty()); 32 } 33 34 TEST_METHOD(GetMarkdownPreviewHandlerChangeSet_ReturnsChangeSet) 35 { 36 auto changeSet = getMdPreviewHandlerChangeSet(GetInstallDir(), false); 37 38 Assert::IsFalse(changeSet.changes.empty()); 39 } 40 41 TEST_METHOD(GetMonacoPreviewHandlerChangeSet_ReturnsChangeSet) 42 { 43 auto changeSet = getMonacoPreviewHandlerChangeSet(GetInstallDir(), false); 44 45 Assert::IsFalse(changeSet.changes.empty()); 46 } 47 48 TEST_METHOD(GetPdfPreviewHandlerChangeSet_ReturnsChangeSet) 49 { 50 auto changeSet = getPdfPreviewHandlerChangeSet(GetInstallDir(), false); 51 52 Assert::IsFalse(changeSet.changes.empty()); 53 } 54 55 TEST_METHOD(GetPdfThumbnailProviderChangeSet_ReturnsChangeSet) 56 { 57 auto changeSet = getPdfThumbnailHandlerChangeSet(GetInstallDir(), false); 58 59 Assert::IsFalse(changeSet.changes.empty()); 60 } 61 62 TEST_METHOD(GetGcodePreviewHandlerChangeSet_ReturnsChangeSet) 63 { 64 auto changeSet = getGcodePreviewHandlerChangeSet(GetInstallDir(), false); 65 66 Assert::IsFalse(changeSet.changes.empty()); 67 } 68 69 TEST_METHOD(GetGcodeThumbnailProviderChangeSet_ReturnsChangeSet) 70 { 71 auto changeSet = getGcodeThumbnailHandlerChangeSet(GetInstallDir(), false); 72 73 Assert::IsFalse(changeSet.changes.empty()); 74 } 75 76 TEST_METHOD(GetStlThumbnailProviderChangeSet_ReturnsChangeSet) 77 { 78 auto changeSet = getStlThumbnailHandlerChangeSet(GetInstallDir(), false); 79 80 Assert::IsFalse(changeSet.changes.empty()); 81 } 82 83 TEST_METHOD(GetQoiPreviewHandlerChangeSet_ReturnsChangeSet) 84 { 85 auto changeSet = getQoiPreviewHandlerChangeSet(GetInstallDir(), false); 86 87 Assert::IsFalse(changeSet.changes.empty()); 88 } 89 90 TEST_METHOD(GetQoiThumbnailProviderChangeSet_ReturnsChangeSet) 91 { 92 auto changeSet = getQoiThumbnailHandlerChangeSet(GetInstallDir(), false); 93 94 Assert::IsFalse(changeSet.changes.empty()); 95 } 96 97 // Test enabled vs disabled state 98 TEST_METHOD(ChangeSet_EnabledVsDisabled_MayDiffer) 99 { 100 auto enabledSet = getSvgPreviewHandlerChangeSet(GetInstallDir(), true); 101 auto disabledSet = getSvgPreviewHandlerChangeSet(GetInstallDir(), false); 102 103 // Both should be valid change sets 104 Assert::IsFalse(enabledSet.changes.empty()); 105 Assert::IsFalse(disabledSet.changes.empty()); 106 } 107 108 // Test getAllOnByDefaultModulesChangeSets 109 TEST_METHOD(GetAllOnByDefaultModulesChangeSets_ReturnsMultipleChangeSets) 110 { 111 auto changeSets = getAllOnByDefaultModulesChangeSets(GetInstallDir()); 112 113 // Should return multiple changesets for all default-enabled modules 114 Assert::IsTrue(changeSets.size() > 0); 115 } 116 117 // Test getAllModulesChangeSets 118 TEST_METHOD(GetAllModulesChangeSets_ReturnsChangeSets) 119 { 120 auto changeSets = getAllModulesChangeSets(GetInstallDir()); 121 122 // Should return changesets for all modules 123 Assert::IsTrue(changeSets.size() > 0); 124 } 125 126 TEST_METHOD(GetAllModulesChangeSets_ContainsMoreThanOnByDefault) 127 { 128 auto allSets = getAllModulesChangeSets(GetInstallDir()); 129 auto defaultSets = getAllOnByDefaultModulesChangeSets(GetInstallDir()); 130 131 // All modules should be >= on-by-default modules 132 Assert::IsTrue(allSets.size() >= defaultSets.size()); 133 } 134 135 // Test that changesets have valid structure 136 TEST_METHOD(ChangeSet_HasValidKeyPath) 137 { 138 auto changeSet = getSvgPreviewHandlerChangeSet(GetInstallDir(), false); 139 140 Assert::IsFalse(changeSet.changes.empty()); 141 } 142 143 // Test all changeset functions don't crash 144 TEST_METHOD(AllChangeSetFunctions_DoNotCrash) 145 { 146 auto installDir = GetInstallDir(); 147 getSvgPreviewHandlerChangeSet(installDir, true); 148 getSvgPreviewHandlerChangeSet(installDir, false); 149 getSvgThumbnailHandlerChangeSet(installDir, true); 150 getSvgThumbnailHandlerChangeSet(installDir, false); 151 getMdPreviewHandlerChangeSet(installDir, true); 152 getMdPreviewHandlerChangeSet(installDir, false); 153 getMonacoPreviewHandlerChangeSet(installDir, true); 154 getMonacoPreviewHandlerChangeSet(installDir, false); 155 getPdfPreviewHandlerChangeSet(installDir, true); 156 getPdfPreviewHandlerChangeSet(installDir, false); 157 getPdfThumbnailHandlerChangeSet(installDir, true); 158 getPdfThumbnailHandlerChangeSet(installDir, false); 159 getGcodePreviewHandlerChangeSet(installDir, true); 160 getGcodePreviewHandlerChangeSet(installDir, false); 161 getGcodeThumbnailHandlerChangeSet(installDir, true); 162 getGcodeThumbnailHandlerChangeSet(installDir, false); 163 getStlThumbnailHandlerChangeSet(installDir, true); 164 getStlThumbnailHandlerChangeSet(installDir, false); 165 getQoiPreviewHandlerChangeSet(installDir, true); 166 getQoiPreviewHandlerChangeSet(installDir, false); 167 getQoiThumbnailHandlerChangeSet(installDir, true); 168 getQoiThumbnailHandlerChangeSet(installDir, false); 169 170 Assert::IsTrue(true); 171 } 172 }; 173 }