Ejemplo n.º 1
0
        public void Test_Validation003()
        {
            var d = new Tezt
            {
                F1 = new Atom(0xfffff),
                F2 = Atom.Encode("a"),
                F3 = Atom.Encode("ab"),
                F4 = Atom.Encode("abcd"),
            };

            var state = d.Validate(new ValidState(null, ValidErrorMode.Batch));

            Aver.IsTrue(state.HasErrors);

            var batch = state.Error as ValidationBatchException;

            Aver.IsNotNull(batch);

            var errors = batch.Batch.OfType <FieldValidationException>();

            errors.See();

            Aver.AreEqual(3, errors.Count());

            Aver.IsTrue(errors.First(e => e.FieldName.EqualsOrdSenseCase("F1")).ClientMessage.Contains("Invalid"));
            Aver.IsTrue(errors.First(e => e.FieldName.EqualsOrdSenseCase("F3")).ClientMessage.Contains("shorter"));
            Aver.IsTrue(errors.First(e => e.FieldName.EqualsOrdSenseCase("F4")).ClientMessage.Contains("exceeds"));

            d.F2 = new Atom();

            state = d.Validate(new ValidState(null, ValidErrorMode.Batch));
            Aver.IsTrue(state.HasErrors);

            batch = state.Error as ValidationBatchException;
            Aver.IsNotNull(batch);

            errors = batch.Batch.OfType <FieldValidationException>();

            errors.See();

            Aver.AreEqual(4, errors.Count());
            Aver.IsTrue(errors.First(e => e.FieldName.EqualsOrdSenseCase("F2")).ClientMessage.Contains("required"));
        }
Ejemplo n.º 2
0
        public void Test_Roundtrip()
        {
            var d = new Tezt
            {
                C1 = "{r: {a:1, b:2}}",
                C2 = null
            };

            Aver.IsNull(d.Validate());

            var json = JsonWriter.Write(d, JsonWritingOptions.PrettyPrintRowsAsMap);

            json.See();

            var got = JsonReader.ToDoc <Tezt>(json);

            Aver.AreEqual(1, got.C1.Node.Of("a").ValueAsInt());
            Aver.AreEqual(2, got.C1.Node.Of("b").ValueAsInt());
        }