public void AddHintPath_AddsExtensionsPath()
        {
            var extensions          = GetBasicReferences_WithoutHintPath();
            var extensionsWithHints = GetBasicReferences_WithExtensionsHintPath();

            ValidateHintPathUnequal(extensions, extensionsWithHints);

            ExtensionsMetadataEnhancer.AddHintPath(extensions);

            ValidateAllEqual(extensionsWithHints, extensions);
        }
        public void AddHintPath_DoesNotAdd_WhenAlreadyPresent()
        {
            var extensionsPreset         = GetBasicReferences_WithPresetHintPath();
            var extensionsCorrectedHints = GetBasicReferences_WithExtensionsHintPath();

            ValidateHintPathUnequal(extensionsCorrectedHints, extensionsPreset);

            ExtensionsMetadataEnhancer.AddHintPath(extensionsPreset);

            ValidateHintPathUnequal(extensionsCorrectedHints, extensionsPreset);
            ValidateAllEqual(GetBasicReferences_WithPresetHintPath(), extensionsPreset);
        }
        public override bool Execute()
        {
            string json = File.ReadAllText(ExtensionsJsonPath);

            var extensionsMetadata = JsonSerializer.Deserialize <ExtensionsMetadata>(json);

            ExtensionsMetadataEnhancer.AddHintPath(extensionsMetadata?.Extensions ?? Enumerable.Empty <ExtensionReference>());

            string newJson = JsonSerializer.Serialize(extensionsMetadata, _serializerOptions);

            File.WriteAllText(OutputPath, newJson);

            File.Delete(ExtensionsJsonPath);

            return(true);
        }