public void CanCorrectlyMapDescription()
        {
            string      expectedMessage     = Guid.NewGuid().ToString();
            short       expectedLength      = short.MaxValue;
            Editability expectedEditability = Enum.GetValues(typeof(Editability)).OfType <Editability>().Last();
            var         expectedDesc        = Guid.NewGuid().ToString();
            Random      rand = new Random();
            var         wing = DummyWing();

            while (wing.Targets.Count < 5)
            {
                var target = wing.Targets.DummyItem <Wing, Target>(wing);
                target.ClrType = "dummy";
                while (target.Measures.Count < 5)
                {
                    var measure = target.Measures.DummyItem <Target, Measure>(target);
                    measure.Description = expectedDesc;
                    //measure.Description.EditRule.Editability = expectedEditability;
                    //measure.Description.EditRule.Message = expectedMessage;
                    //measure.Description.ValidationRule.IsRequired = true;
                    //measure.Description.ValidationRule.MaxLength = expectedLength;
                    //measure.Description.ValidationRule.Message = expectedMessage;
                }
            }
            using (var session = _lazyFactory.Value.OpenSession())
            {
                session.Persist(wing);
                session.Flush();
            }

            using (var session = _lazyFactory.Value.OpenSession())
            {
                var items = session.Query <Target>();
                Assert.AreEqual(wing.Targets.Count, items.Count());
                foreach (var expected in wing.Targets)
                {
                    var actual = items.FirstOrDefault(c => c.Id == expected.Id);
                    Assert.IsNotNull(actual);
                    foreach (var measure in actual.Measures)
                    {
                        var theField    = measure.Description;
                        var actualValue = theField;
                        Assert.AreEqual(expectedDesc, actualValue);
                        //var actualValMessage = theField.ValidationRule.Message;
                        //Assert.AreEqual(expectedMessage, actualValMessage);
                        //var actualEditMessage = theField.EditRule.Message;
                        //Assert.AreEqual(expectedMessage, actualEditMessage);
                        //var actualValLen = theField.ValidationRule.MaxLength;
                        //Assert.AreEqual(expectedLength, actualValLen);
                        //var actualReq = theField.ValidationRule.IsRequired;
                        //Assert.AreEqual(true, actualReq);
                    }
                }
            }
        }
 public TatoebaList(
     long listId,
     string username,
     DateTime dateCreated,
     DateTime dateModified,
     string listName,
     Editability editableBy)
 {
     ListId       = listId;
     Username     = username ?? throw new ArgumentNullException(nameof(username));
     DateCreated  = dateCreated;
     DateModified = dateModified;
     ListName     = listName ?? throw new ArgumentNullException(nameof(listName));
     EditableBy   = editableBy;
 }