public void GetContainedLanguageFactoryForFile_WhenNoContainedLanguageFactory_ReturnE_FAIL()
        {
            var project    = IVsProject_Factory.ImplementIsDocumentInProject(found: true);
            var properties = ProjectPropertiesFactory.Create(ConfigurationGeneral.SchemaName, ConfigurationGeneral.LanguageServiceIdProperty, LanguageServiceId);
            var hostObject = IConfiguredProjectHostObjectFactory.Create();

            var factory = CreateInstance((IVsContainedLanguageFactory)null, hostObject: hostObject, project: project, properties: properties);

            var result = factory.GetContainedLanguageFactoryForFile("FilePath", out var hierarchyResult, out var itemIdResult, out var containedLanguageFactoryResult);

            AssertFailed(result, hierarchyResult, itemIdResult, containedLanguageFactoryResult);
        }
        public void GetContainedLanguageFactoryForFile_WhenReturnsResult_ReturnsS_OK()
        {
            var project    = IVsProject_Factory.ImplementIsDocumentInProject(found: true, itemid: 1);
            var properties = ProjectPropertiesFactory.Create(ConfigurationGeneral.SchemaName, ConfigurationGeneral.LanguageServiceIdProperty, LanguageServiceId);
            var hostObject = IConfiguredProjectHostObjectFactory.Create();
            var containedLanguageFactory = IVsContainedLanguageFactoryFactory.Create();

            var factory = CreateInstance(containedLanguageFactory, hostObject: hostObject, project: project, properties: properties);

            var result = factory.GetContainedLanguageFactoryForFile("FilePath", out var hierarchyResult, out var itemIdResult, out var containedLanguageFactoryResult);

            Assert.Equal(VSConstants.S_OK, result);
            Assert.Same(hostObject, hierarchyResult);
            Assert.Same(containedLanguageFactory, containedLanguageFactoryResult);
            Assert.Equal(1u, itemIdResult);
        }