public async Task SetApplicationManifestKind(string newValue, string?currentApplicationManifestPropertyValue, string?currentNoManifestPropertyValue, string?expectedAppManifestPropertyValue, string?expectedNoManifestPropertyValue, string?expectedStoredValue)
        {
            Dictionary <string, string> storageDictionary = new();
            var storage = ITemporaryPropertyStorageFactory.Create(storageDictionary);

            Dictionary <string, string?> defaultPropertiesDictionary = new();

            defaultPropertiesDictionary["ApplicationManifest"] = currentApplicationManifestPropertyValue;
            defaultPropertiesDictionary["NoWin32Manifest"]     = currentNoManifestPropertyValue;
            var defaultProperties = IProjectPropertiesFactory.CreateWithPropertiesAndValues(defaultPropertiesDictionary);

            var provider = new ApplicationManifestKindValueProvider(storage);
            await provider.OnSetPropertyValueAsync("", newValue, defaultProperties);

            defaultPropertiesDictionary.TryGetValue("ApplicationManifest", out string?finalAppManifestPropertyValue);
            defaultPropertiesDictionary.TryGetValue("NoWin32Manifest", out string?finalNoManifestPropertyValue);
            storageDictionary.TryGetValue("ApplicationManifestKind", out string?finalStoredValue);

            Assert.Equal(expectedAppManifestPropertyValue, finalAppManifestPropertyValue);
            Assert.Equal(expectedNoManifestPropertyValue, finalNoManifestPropertyValue);
            Assert.Equal(expectedStoredValue, finalStoredValue);
        }