public static async Task SetPropertyAsync_ExistingProperties()
        {
            var postbuildEventProjectProperties =
                IProjectPropertiesFactory.MockWithPropertyAndValue("PostBuildEvent", "echo $(ProjectDir)").Object;
            var success = await systemUnderTest.TrySetPropertyAsync(@"echo ""post build $(OutDir)""", postbuildEventProjectProperties);

            Assert.True(success);

            var expected = @"echo ""post build $(OutDir)""";
            var actual   = await postbuildEventProjectProperties.GetUnevaluatedPropertyValueAsync("PostBuildEvent");

            Assert.Equal(expected, actual);
        }
        public void Constructor_NullUnconfiguredProject_ThrowsArgumentNullException()
        {
            var delegatePropertiesMock = IProjectPropertiesFactory
                                         .MockWithPropertyAndValue("ProjectGuid", "7259e9ef-87d1-45a5-95c6-3a8432d23776");

            var delegateProperties = delegatePropertiesMock.Object;
            var delegateProvider   = IProjectPropertiesProviderFactory.Create(delegateProperties);

            Assert.Throws <ArgumentNullException>("unconfiguredProject", () =>
            {
                new ImplicitProjectPropertiesProvider(delegateProvider, IProjectInstancePropertiesProviderFactory.Create(), null);
            });
        }
예제 #3
0
        public void Constructor_NullDelegatedInstanceProvider_ThrowsArgumentNullException()
        {
            var delegatePropertiesMock = IProjectPropertiesFactory
                                         .MockWithPropertyAndValue("ProjectGuid", "7259e9ef-87d1-45a5-95c6-3a8432d23776");

            var delegateProperties  = delegatePropertiesMock.Object;
            var delegateProvider    = IProjectPropertiesProviderFactory.Create(delegateProperties);
            var unconfiguredProject = IUnconfiguredProjectFactory.Create();

            Assert.Throws <ArgumentNullException>("instanceProvider", () =>
            {
                new ImplicitProjectPropertiesProvider(delegateProvider,
                                                      null,
                                                      new ImplicitProjectPropertiesStore <string, string>(unconfiguredProject),
                                                      unconfiguredProject);
            });
        }
예제 #4
0
        public void Provider_ReturnsImplicitPropertyProvider()
        {
            var unconfiguredProject = IUnconfiguredProjectFactory.Create();
            var instanceProvider    = IProjectInstancePropertiesProviderFactory.ImplementsGetItemTypeProperties();

            var delegatePropertiesMock = IProjectPropertiesFactory
                                         .MockWithPropertyAndValue("Something", "NotImportant");

            var delegateProperties = delegatePropertiesMock.Object;
            var delegateProvider   = IProjectPropertiesProviderFactory.Create(delegateProperties);
            var propertyStore      = new ImplicitProjectPropertiesStore <string, string>(unconfiguredProject);

            var provider   = new ImplicitProjectPropertiesProvider(delegateProvider, instanceProvider, propertyStore, unconfiguredProject);
            var properties = provider.GetItemTypeProperties(null, "");

            properties.SetPropertyValueAsync("ProjectGuid", "7259e9ef-87d1-45a5-95c6-3a8432d23776");

            Assert.Equal("7259e9ef-87d1-45a5-95c6-3a8432d23776", properties.GetEvaluatedPropertyValueAsync("ProjectGuid").Result);
        }
예제 #5
0
        public static async Task SetPropertyTest_ExistingProperties()
        {
            var root = @"<Project Sdk=""Microsoft.NET.Sdk"">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp1.1</TargetFramework>
    <PreBuildEvent>echo $(ProjectDir)</PreBuildEvent>
    <PostBuildEvent>echo $(ProjectDir)</PostBuildEvent>
  </PropertyGroup>
</Project>".AsProjectRootElement();

            var prebuildEventProjectProperties =
                IProjectPropertiesFactory.MockWithPropertyAndValue("PreBuildEvent", "echo $(ProjectDir)").Object;
            await systemUnderTest.SetPropertyAsync(@"echo ""post build $(OutDir)""", prebuildEventProjectProperties, root);

            var expected = @"echo ""post build $(OutDir)""";
            var actual   = await prebuildEventProjectProperties.GetUnevaluatedPropertyValueAsync("PreBuildEvent");

            Assert.Equal(expected, actual);
        }
        public void Provider_SetsPropertyIfPresent()
        {
            var unconfiguredProject = IUnconfiguredProjectFactory.Create();
            var instanceProvider    = IProjectInstancePropertiesProviderFactory.Create();

            var delegatePropertiesMock = IProjectPropertiesFactory
                                         .MockWithPropertyAndValue("ProjectGuid", "7259e9ef-87d1-45a5-95c6-3a8432d23776");

            var delegateProperties = delegatePropertiesMock.Object;
            var delegateProvider   = IProjectPropertiesProviderFactory.Create(delegateProperties);

            var provider   = new ImplicitProjectPropertiesProvider(delegateProvider, instanceProvider, unconfiguredProject);
            var properties = provider.GetProperties("path/to/project.testproj", null, null);

            // calls delegate above with matching values
            properties.SetPropertyValueAsync("ProjectGuid", "7259e9ef-87d1-45a5-95c6-3a8432d23776");

            // verify all the setups
            delegatePropertiesMock.Verify(p => p.SetPropertyValueAsync("ProjectGuid", "7259e9ef-87d1-45a5-95c6-3a8432d23776", null));
        }