public IPluginOptionViewModel Construct(IOption option) { if (option is IListOption) { var optionType = option.GetType().FindBaseType(typeof(ListOption <>)); if (optionType != null) { var tValue = optionType.GetGenericArguments().First(); var generic = _constructListOptionMethodInfo.MakeGenericMethod(tValue); var opt = generic.Invoke(this, new object?[] { option }); if (opt != null) { return((IPluginOptionViewModel)opt); } } } return(option switch { BooleanOption bOption => new PluginBooleanOptionViewModel(bOption, _localizationProvider), NumberOption nOption => new PluginNumberOptionViewModel(nOption, _localizationProvider), TextOption tOption => new PluginTextOptionViewModel(tOption, _localizationProvider), CommandOption cOption => new PluginCommandOptionViewModel(cOption, _localizationProvider), EncryptedTextOption eOption => new PluginEncryptedTextOptionViewModel(eOption, _localizationProvider), StringCollectionOption sOption => new PluginStringCollectionOptionViewModel(sOption, _localizationProvider), DisplayOption dOption => new PluginDisplayOptionViewModel(dOption, _localizationProvider), _ => ConstructDisplayOption(option) });
public void ConstructorShouldSetCorrectValue(string[] expected) { // Arrange var sut = new StringCollectionOption(expected, "name", "description"); // Act var actual = sut.Value; // Assert Assert.Equal(expected, actual); }
public PluginStringCollectionOptionViewModel(StringCollectionOption option, ILocalizationProvider localizationProvider) : base(option.NameTextId, option.Value) { _pluginOptionViewModelImplementation = new PluginOptionViewModelImplementation <List <string> >(option, localizationProvider, this); }