public async Task GetEvaluatedValue(object outputTypePropertyValue, string expectedMappedValue)
        {
            var properties = ProjectPropertiesFactory.Create(
                UnconfiguredProjectFactory.Create(),
                new PropertyPageData(ConfigurationGeneral.SchemaName, ConfigurationGeneral.OutputTypeProperty, outputTypePropertyValue));
            var provider = new OutputTypeValueProvider(properties);

            var actualPropertyValue = await provider.OnGetEvaluatedPropertyValueAsync(string.Empty, string.Empty, null !);

            Assert.Equal(expectedMappedValue, actualPropertyValue);
        }
        public async Task SetValue(string incomingValue, string expectedOutputTypeValue)
        {
            var setValues  = new List <object>();
            var properties = ProjectPropertiesFactory.Create(
                UnconfiguredProjectFactory.Create(),
                new PropertyPageData(ConfigurationGeneral.SchemaName, ConfigurationGeneral.OutputTypeProperty, "InitialValue", setValues));
            var provider = new OutputTypeValueProvider(properties);

            await provider.OnSetPropertyValueAsync(string.Empty, incomingValue, null !);

            Assert.Equal(setValues.Single(), expectedOutputTypeValue);
        }
        public async Task SetValue_ThrowsKeyNotFoundException(string invalidValue)
        {
            var setValues  = new List <object>();
            var properties = ProjectPropertiesFactory.Create(
                UnconfiguredProjectFactory.Create(),
                new PropertyPageData(ConfigurationGeneral.SchemaName, ConfigurationGeneral.OutputTypeProperty, "InitialValue", setValues));
            var provider = new OutputTypeValueProvider(properties);

            await Assert.ThrowsAsync <KeyNotFoundException>(async() =>
            {
                await provider.OnSetPropertyValueAsync(string.Empty, invalidValue, null !);
            });
        }
        public async void SetValue(string incomingValue, string expectedOutputTypeValue)
        {
            var setValues  = new List <object>();
            var properties = ProjectPropertiesFactory.Create(
                UnconfiguredProjectFactory.Create(),
                new PropertyPageData()
            {
                Category     = ConfigurationGeneral.SchemaName,
                PropertyName = ConfigurationGeneral.OutputTypeProperty,
                Value        = "InitialValue",
                SetValues    = setValues
            });
            var provider = new OutputTypeValueProvider(properties);

            var actualPropertyValue = await provider.OnSetPropertyValueAsync(incomingValue, null);

            Assert.Equal(setValues.Single(), expectedOutputTypeValue);
        }