public void AddPropertyToDictionary_ValueIsNotNull_PropertyIsAddedAsSerializedObject()
        {
            PropertyInfo           property   = typeof(FullCalendarParameters).GetProperties().Single(x => x.Name == nameof(FullCalendarParameters.CustomButtons));
            FullCalendarParameters parameters = new FullCalendarParameters
            {
                CustomButtons = new Dictionary <string, CustomButton>
                {
                    {
                        "myCustomButton", new CustomButton
                        {
                            Text  = "custom!",
                            Click = @"function() {
                                alert('clicked the custom button!');
                            }",
                            Icon  = false
                        }
                    }
                }
            };
            CustomButtonsPropertyParser parser = new CustomButtonsPropertyParser(property, new JavaScriptSerializer());
            Dictionary <string, string> target = new Dictionary <string, string>();

            parser.AddPropertyToDictionary(parameters, ref target);
            target.Should().Contain("data-fc-CustomButtons", @"{'myCustomButton':{'text':'custom!','click':'function() {\r\n                                alert(\u0027clicked the custom button!\u0027);\r\n                            }','icon':false,'themeIcon':null,'bootstrapGlyphicon':null}}");
        }
        public void AddPropertyToDictionary_ValueIsNull_PropertyIsNotAdded()
        {
            PropertyInfo                property   = typeof(FullCalendarParameters).GetProperties().Single(x => x.Name == nameof(FullCalendarParameters.CustomButtons));
            FullCalendarParameters      parameters = new FullCalendarParameters();
            CustomButtonsPropertyParser parser     = new CustomButtonsPropertyParser(property, null);
            Dictionary <string, string> target     = new Dictionary <string, string>();

            parser.AddPropertyToDictionary(parameters, ref target);
            target.Should().BeEmpty();
        }