public void WithElement_Should_Throw_For_Duplicate_Elements()
 {
     var recordGroup = new RecordGroup();
     var expression = new RecordExpression(recordGroup);
     expression.WithElement("a");
     expression.WithElement("a");
 }
 public void WithElement_Applies_Custom_Configuration()
 {
     var recordGroup = new RecordGroup();
     var expression = new RecordExpression(recordGroup);
     Assert.IsNotNull(expression.WithElement("elementName", x => x.WithLabel("bla")));
     Assert.AreEqual(recordGroup.Elements.Count, 1);
     Assert.AreEqual(((RecordElement)recordGroup.Elements[0]).Label, "bla");
 }
 public void WithElement_Adds_New_Element()
 {
     var recordGroup = new RecordGroup();
     var expression = new RecordExpression(recordGroup);
     Assert.IsNotNull(expression.WithElement("elementName"));
     Assert.AreEqual(recordGroup.Elements.Count, 1);
     Assert.AreEqual(((RecordElement)recordGroup.Elements[0]).Name, "elementName");
 }
Beispiel #4
0
        /// <summary>
        /// Adds a group to this record.
        /// </summary>
        /// <param name="groupContentConfiguration">The group content configuration.</param>
        /// <param name="groupConfiguration">The group configuration.</param>
        /// <returns>The current expression instance.</returns>
        public IRecordExpression WithGroup(Action<IRecordExpression> groupContentConfiguration, Action<IRecordGroupExpression> groupConfiguration)
        {
            if (groupContentConfiguration != null) {
                var nestedGroup = new RecordGroup(group.ElementTracker);
                var expression = new RecordExpression(nestedGroup);
                groupContentConfiguration(expression);

                if (nestedGroup.Elements.Count > 0) {
                    group.AddElement(nestedGroup);
                }

                if (groupConfiguration != null)
                {
                    groupConfiguration(new RecordGroupExpression(nestedGroup));
                }
            }

            return this;
        }