public void CanBuildModelDefinition_ThatCanReturnOptions()
        {
            var optionProvider = new OptionProvider();
            var expected       = optionProvider.Get().ToList();

            target.PropertyWithOptions(x => x.OptionProperty, (OptionProvider provider) => provider.Get(), option => option.IntKey, option => option.DisplayValue);
            var result  = GetPropertyWithOption(target.Build()).BuildOptionSet(mockServiceProvider.Object);
            var options = result.OptionSelections.ToList();

            Assert.Equal(expected.Count, options.Count);
            Assert.Equal(expected.Single(s => s.IntKey == 2).DisplayValue, options.Single(s => s.Key == 2.ToString()).DisplayValue);
        }
        public void CanBuildModelDefinition_ThatCanReturnOptionByKey_IfExists()
        {
            var optionProvider = new OptionProvider();
            var expected       = optionProvider.Get().ToList();

            target.PropertyWithOptions(x => x.OptionProperty, (OptionProvider provider) => provider.Get(), opt => opt.IntKey, opt => opt.DisplayValue);
            var    result = GetPropertyWithOption(target.Build()).BuildOptionSet(mockServiceProvider.Object);
            object output;
            var    option = result.TryGetValue(2.ToString(), out output);

            Assert.True(option);
            var outputAsOption = output as OptionTestClass;

            Assert.NotNull(outputAsOption);
            Assert.Equal(expected.Single(s => s.IntKey == 2).DisplayValue, outputAsOption.DisplayValue);
        }