Beispiel #1
0
        /// <summary>
        /// Creates new <see cref="CompositeFormatter"/> with formatters added from <paramref name="formatters"/>.
        /// </summary>
        /// <param name="formatter">Source formatter.</param>
        /// <param name="formatters">Formatters to add.</param>
        /// <returns>New instance of <see cref="CompositeFormatter"/>.</returns>
        public static CompositeFormatter With(this CompositeFormatter formatter, IEnumerable <IValueFormatter> formatters)
        {
            formatter.AssertArgumentNotNull(nameof(formatter));
            formatters.AssertArgumentNotNull(nameof(formatters));

            return(new CompositeFormatter(formatter.GetFormatters().Concat(formatters)));
        }
Beispiel #2
0
		internal static IFormatter GetFormatter(IConfig config) {
			var formatters = new CompositeFormatter();
			string[] patterns = config.GetAttributeArray(".", "rule", "pattern");
			foreach(string pattern in patterns) {
				string replacement = config.GetAttribute(".", string.Format("rule[@pattern='{0}']", pattern), "replacement");
				bool caseSensitive = false;

				if(config.ContainsAttribute(".", string.Format("rule[@pattern='{0}']", pattern), "caseSensitive")) {
					caseSensitive = config.GetAttribute<bool>(".", string.Format("rule[@pattern='{0}']", pattern), "caseSensitive");
				}

				var rule = new Rule(pattern, replacement, caseSensitive);
				var ruleFormatter = new RegexFormatter(rule);

				formatters.Add(ruleFormatter);
			}
			return formatters;
		}
Beispiel #3
0
        public void CompositeFormatter_WhenCustomerHaveMultipleRentals_ShouldPass()
        {
            var jsonFormatter      = new JsonFormatter();
            var xmlFormatter       = new XmlFormatter();
            var standardFormatter  = new StandardFormatter();
            var compositeFormatter = new CompositeFormatter();

            compositeFormatter.AddFormatter(new JsonFormatter());
            compositeFormatter.AddFormatter(new StandardFormatter());
            compositeFormatter.AddFormatter(new XmlFormatter());

            var      customer           = CustomerFactory.GetCustomer();
            var      serializedData     = customer.GetStatement(compositeFormatter);
            Customer actualFromJson     = jsonFormatter.Deserialize(serializedData);
            Customer actualFromXml      = xmlFormatter.Deserialize(serializedData);
            Customer actualFromStandard = standardFormatter.Deserialize(serializedData);

            Assert.True(customer.Equals(actualFromJson));
            Assert.True(customer.Equals(actualFromXml));
            Assert.True(customer.Equals(actualFromStandard));
        }
Beispiel #4
0
 /// <summary>
 /// Creates new <see cref="CompositeFormatter"/> with formatters added from <paramref name="formatters"/>.
 /// </summary>
 /// <param name="formatter">Source formatter.</param>
 /// <param name="formatters">Formatters to add.</param>
 /// <returns>New instance of <see cref="CompositeFormatter"/>.</returns>
 public static CompositeFormatter With(this CompositeFormatter formatter, params IValueFormatter[] formatters)
 {
     return(formatter.With((IEnumerable <IValueFormatter>)formatters));
 }
Beispiel #5
0
 /// <summary>
 /// Creates new <see cref="CompositeFormatter"/> with formatters added from <paramref name="formatterProvider"/>.
 /// </summary>
 /// <param name="formatter">Source formatter.</param>
 /// <param name="formatterProvider">Formatters provider to add.</param>
 /// <returns>New instance of <see cref="CompositeFormatter"/>.</returns>
 public static CompositeFormatter With(this CompositeFormatter formatter, IValueFormatterProvider formatterProvider)
 {
     return(formatter.With(formatterProvider.GetFormatters()));
 }