public string ShouldApplyFormatOptions(CollectionFormatOptions options)
        {
            var format = new CollectionFormat()
                         .AddOptions(options)
                         .SetCollectionPrefixAndSuffix("[", "]")
                         .SetIndexValuePairPrefixAndSuffix("<", ">")
                         .SetIndexPrefixAndSuffix("'", "'")
                         .SetValuePrefixAndSuffix("'", "'")
                         .SetIndexValueSeparator(":")
                         .SetIndexValuePairSeparator(",");

            return(format.Compile()(new [] { "John", "", null }));
        }
        public void ShouldCreateFormatWithDefaultSetting()
        {
            ValueTuple <string, string> defaultPrefixAndSuffix = (null, null);

            var format = new CollectionFormat();

            var toString = format.Compile();

            Assert.That(format.IndexValuePairSeparator, Is.Null);
            Assert.That(format.IndexValueSeparator, Is.Null);
            Assert.That(format.IndexValuePairPrefixAndSuffix, Is.EqualTo(defaultPrefixAndSuffix));
            Assert.That(format.ValuePrefixAndSuffix, Is.EqualTo(defaultPrefixAndSuffix));
            Assert.That(format.IndexPrefixAndSuffix, Is.EqualTo(defaultPrefixAndSuffix));
            Assert.That(format.CollectionPrefixAndSuffix, Is.EqualTo(defaultPrefixAndSuffix));
            Assert.That(format.Options, Is.EqualTo(None));

            Assert.That(toString(new object[] { "John", 12, "Mercedes" }), Is.EqualTo("John12Mercedes"));
        }