public void TryGetConfiguration_SucceedsWithAllPreRequisites()
        {
            // Arrange
            var expectedLanguageVersion        = RazorLanguageVersion.Version_1_0;
            var expectedConfigurationName      = "Razor-Test";
            var expectedExtension1Name         = "Extension1";
            var expectedExtension2Name         = "Extension2";
            var expectedRazorConfigurationItem = new TestMSBuildItem("RazorConfiguration")
            {
                Include = expectedConfigurationName,
            };

            expectedRazorConfigurationItem.TestMetadata.SetValue("Extensions", "Extension1;Extension2");
            var projectItems = new IMSBuildItemEvaluated[]
            {
                new TestMSBuildItem("RazorConfiguration")
                {
                    Include = "UnconfiguredRazorConfiguration",
                },
                new TestMSBuildItem("RazorExtension")
                {
                    Include = "UnconfiguredExtensionName",
                },
                new TestMSBuildItem("RazorExtension")
                {
                    Include = expectedExtension1Name,
                },
                new TestMSBuildItem("RazorExtension")
                {
                    Include = expectedExtension2Name,
                },
                expectedRazorConfigurationItem,
            };
            var projectProperties = new MSBuildPropertyGroup();

            projectProperties.SetValue("RazorDefaultConfiguration", expectedConfigurationName);
            projectProperties.SetValue("RazorLangVersion", "1.0");

            // Act
            var result = DefaultRazorProjectHost.TryGetConfiguration(projectProperties, projectItems, out var configuration);

            // Assert
            Assert.True(result);
            Assert.Equal(expectedLanguageVersion, configuration.LanguageVersion);
            Assert.Equal(expectedConfigurationName, configuration.ConfigurationName);
            Assert.Collection(
                configuration.Extensions,
                extension => Assert.Equal(expectedExtension1Name, extension.ExtensionName),
                extension => Assert.Equal(expectedExtension2Name, extension.ExtensionName));
        }
        public void TryGetConfiguration_FailsIfNoConfigurationItems()
        {
            // Arrange
            var projectProperties = new MSBuildPropertyGroup();

            projectProperties.SetValue("RazorDefaultConfiguration", "Razor-13.37");
            projectProperties.SetValue("RazorLangVersion", "1.0");
            var projectItems = new IMSBuildItemEvaluated[0];

            // Act
            var result = DefaultRazorProjectHost.TryGetConfiguration(projectProperties, projectItems, out var configuration);

            // Assert
            Assert.False(result);
            Assert.Null(configuration);
        }
 public override void ApplyChanges()
 {
     if (widget.PackOnBuild != packOnBuild)
     {
         propertyGroup.SetValue("PackOnBuild", widget.PackOnBuild, false);
     }
 }
예제 #4
0
        protected override void OnPrepareForEvaluation(MSBuildProject project)
        {
            MSBuildPropertyGroup globalGroup = project.GetGlobalPropertyGroup();
            var provider = new MSBuildGlobalPropertyProvider();

            foreach (KeyValuePair <string, string> property in provider.GetGlobalProperties())
            {
                globalGroup.SetValue(property.Key, property.Value, property.Value);
            }
        }
예제 #5
0
 void SetProperty(MSBuildPropertyGroup propertyGroup, string name, bool value)
 {
     if (value)
     {
         propertyGroup.SetValue(name, value);
     }
     else
     {
         propertyGroup.RemoveProperty(name);
     }
 }
예제 #6
0
 void SetProperty(MSBuildPropertyGroup propertyGroup, string name, string value)
 {
     if (string.IsNullOrEmpty(value))
     {
         propertyGroup.RemoveProperty(name);
     }
     else
     {
         propertyGroup.SetValue(name, value);
     }
 }
        public void TryGetConfiguration_SucceedsWithoutConfiguredExtensionNames()
        {
            // Arrange
            var projectProperties = new MSBuildPropertyGroup();

            projectProperties.SetValue("RazorDefaultConfiguration", "Razor-13.37");
            projectProperties.SetValue("RazorLangVersion", "1.0");
            var projectItems = new IMSBuildItemEvaluated[]
            {
                new TestMSBuildItem("RazorConfiguration")
                {
                    Include = "Razor-13.37",
                },
            };

            // Act
            var result = DefaultRazorProjectHost.TryGetConfiguration(projectProperties, projectItems, out var configuration);

            // Assert
            Assert.True(result);
            Assert.Empty(configuration.Extensions);
        }
        public void TryGetLanguageVersion_SucceedsWithValidLanguageVersion()
        {
            // Arrange
            var projectProperties = new MSBuildPropertyGroup();

            projectProperties.SetValue("RazorLangVersion", "1.0");

            // Act
            var result = DefaultRazorProjectHost.TryGetLanguageVersion(projectProperties, out var languageVersion);

            // Assert
            Assert.True(result);
            Assert.Same(RazorLanguageVersion.Version_1_0, languageVersion);
        }
        public void TryGetLanguageVersion_FailsIfEmptyLanguageVersion()
        {
            // Arrange
            var projectProperties = new MSBuildPropertyGroup();

            projectProperties.SetValue("RazorLangVersion", string.Empty);

            // Act
            var result = DefaultRazorProjectHost.TryGetLanguageVersion(projectProperties, out var languageVersion);

            // Assert
            Assert.False(result);
            Assert.Null(languageVersion);
        }
        public void TryGetDefaultConfiguration_FailsIfEmptyConfiguration()
        {
            // Arrange
            var projectProperties = new MSBuildPropertyGroup();

            projectProperties.SetValue("RazorDefaultConfiguration", string.Empty);

            // Act
            var result = DefaultRazorProjectHost.TryGetDefaultConfiguration(projectProperties, out var defaultConfiguration);

            // Assert
            Assert.False(result);
            Assert.Null(defaultConfiguration);
        }
        public void TryGetLanguageVersion_SucceedsWithUnknownLanguageVersion_DefaultsToLatest()
        {
            // Arrange
            var projectProperties = new MSBuildPropertyGroup();

            projectProperties.SetValue("RazorLangVersion", "13.37");

            // Act
            var result = DefaultRazorProjectHost.TryGetLanguageVersion(projectProperties, out var languageVersion);

            // Assert
            Assert.True(result);
            Assert.Same(RazorLanguageVersion.Latest, languageVersion);
        }
        public void TryGetDefaultConfiguration_SucceedsWithValidConfiguration()
        {
            // Arrange
            var expectedConfiguration = "Razor-13.37";
            var projectProperties     = new MSBuildPropertyGroup();

            projectProperties.SetValue("RazorDefaultConfiguration", expectedConfiguration);

            // Act
            var result = DefaultRazorProjectHost.TryGetDefaultConfiguration(projectProperties, out var defaultConfiguration);

            // Assert
            Assert.True(result);
            Assert.Equal(expectedConfiguration, defaultConfiguration);
        }
 MSBuildProperty AddProperty(MSBuildPropertyGroup propertyGroup, string name, string unevaluatedValue)
 {
     propertyGroup.SetValue(name, unevaluatedValue);
     return(propertyGroup.GetProperty(name));
 }
        void AddPropertyWithNotEmptyCondition(MSBuildPropertyGroup propertyGroup, string name, string unevaluatedValue)
        {
            string condition = String.Format("'$({0})' == ''", name);

            propertyGroup.SetValue(name, unevaluatedValue, condition: condition);
        }
		void SetProperty (MSBuildPropertyGroup propertyGroup, string name, bool value)
		{
			if (value)
				propertyGroup.SetValue (name, value);
			else
				propertyGroup.RemoveProperty (name);
		}
		void SetProperty (MSBuildPropertyGroup propertyGroup, string name, string value)
		{
			if (string.IsNullOrEmpty (value))
				propertyGroup.RemoveProperty (name);
			else
				propertyGroup.SetValue (name, value);
		}