public void InjectFrom_NullableToNullable()
        {
            var source   = new NullableModel(1D, null, null);
            var target   = new NullableModel(4D, 5, "6");
            var expected = new NullableModel(1D, null, null);

            var actual = (NullableModel)target.InjectFrom <NullableInjection>(source);

            Assert.AreEqual(expected.Double, actual.Double);
            Assert.AreEqual(expected.Integer, actual.Integer);
            Assert.AreEqual(expected.String, actual.String);
        }
        public void Usage()
        {
            NullableModel model = new NullableModel();

            model.Save();

            Assert.AreEqual(1, NullableModel.FindAll().Length);

            model = NullableModel.FindAll()[0];

            Assert.AreEqual(Nullables.NullableInt32.Default, model.Age);
            Assert.AreEqual(Nullables.NullableDateTime.Default, model.Completion);
            Assert.AreEqual(Nullables.NullableBoolean.Default, model.Accepted);
        }
        public void Read_nullable_primitive_types()
        {
            var model = new NullableModel {
                Value = null
            };
            var result = Read(model);

            result.Should().HaveCount(1);

            result[0].Attributes.Should().HaveCount(1);
            result[0].Attributes.ElementAt(0).Should().BeAssignableTo <RequiredAttribute>();
            result[0].Value.Should().BeNull();
            result[0].Path.Should().BeEquivalentTo(new[] { "value" });
        }
Esempio n. 4
0
        public void InjectFrom_SlightlyDifferentModels_InjectsSomeProperties()
        {
            var source   = new NullableModel(null, 1, null);
            var target   = new NonNullableModel(1D, 1, "1");
            var expected = new NonNullableModel(default(double), 1, default(string));

            var actual = (NonNullableModel)target.InjectFrom <SmartInjection>(source);

            Assert.AreEqual(expected.Double, actual.Double);
            Assert.AreEqual(expected.Integer, actual.Integer);
            Assert.AreEqual(expected.String, actual.String);
            Assert.IsTrue(actual.DoubleChanged);
            Assert.IsFalse(actual.IntegerChanged);
            Assert.IsTrue(actual.StringChanged);
        }
Esempio n. 5
0
        public void NullableModelCreateTest()
        {
            NullableModel model = GetNullableModel();

            RequestParameters testParameters = RequestParameters.CreateFromModel(model);

            ParametersDictionary expectedParameters = new ParametersDictionary()
            {
                new KeyValuePair <string, string>(
                    $"{nameof(model.HeightFrom)}",
                    $"{model.HeightFrom}"),
            };

            RequestParameters expectedCollection = new RequestParameters(expectedParameters);

            Assert.AreEqual(testParameters.ToString(), expectedCollection.ToString());
        }
        public void Custom_Check_Nullable_Type_WhichIsNotNull_DoesNot_Return_Error()
        {
            // arrange
            var model = new NullableModel
            {
                AreYouHappy  = true,
                Model1       = null,
                EmailAddress = "ee",
                Number       = 2
            };

            // act
            var result = _subject.Custom(model, m => m.Number, num => num.HasValue, "{1} it is null").Validate();

            // assert
            result.Success.Should().BeTrue();
        }
        public void IsNotNull_Check_NotNull_Object_DoesNot_Return_Error()
        {
            // arrange
            var model = new NullableModel
            {
                AreYouHappy  = true,
                Model1       = new Model1(),
                EmailAddress = "ee",
                Number       = 2
            };

            // act
            var result = _subject.IsNotNull(model.Model1, "Model1", "testm").Validate();

            // assert
            result.Success.Should().BeTrue();
        }
Esempio n. 8
0
        public void should_visit_all_nullable_and_non_nullable_json_nodes_of_type_when(int match, int nonNullableCount)
        {
            var options = Options.Create(
                x => x.Serialization(y => y.AddJsonVisitor <int>(
                                         (s, t, o) => t.Value = 3,
                                         (s, t, o) => (int)s.Value == match)));

            var model = new NullableModel {
                Nullable = 1, NonNullable = 2
            };

            Serialize.Json(model, options)
            .ShouldEqual("{{\"NonNullable\":{0},\"Nullable\":{1}}}".ToFormat(match == 2 ? 3 : 2, match == 1 ? 3 : 1));

            Serialize.Xml(model, options)
            .ShouldEqual(Xml.Xml.Declaration + ("<NullableModel><NonNullable>2</NonNullable>" +
                                                "<Nullable>1</Nullable></NullableModel>"));
        }
        public void Custom_Check_Nullable_Type_WhichIsNull_Does_Return_Error()
        {
            // arrange
            var model = new NullableModel
            {
                AreYouHappy  = true,
                Model1       = null,
                EmailAddress = "ee",
                Number       = null
            };

            // act
            var result = _subject.Custom(model, m => m.Number, num => num.HasValue, "{0} it is null").Validate();

            // assert
            result.Success.Should().BeFalse();
            result.Errors.Keys.Should().Contain("Number");
            result.Errors["Number"].Should().Contain("Number it is null");
        }
Esempio n. 10
0
        public void IsNotNull_Check_NullObject_Null_Returns_Error()
        {
            // arrange
            var model = new NullableModel
            {
                AreYouHappy  = true,
                Model1       = null,
                EmailAddress = "ee",
                Number       = 2
            };

            // act
            var result = _subject.IsNotNull(model.Model1, "Model1", "testm").Validate();

            // assert
            result.Success.Should().BeFalse();
            result.Errors.Keys.Should().Contain("Model1");
            result.Errors["Model1"].Should().Contain("testm");
        }
Esempio n. 11
0
        public void IsNotNull_Check_String_Null_Returns_Error()
        {
            // arrange
            var model = new NullableModel
            {
                AreYouHappy  = true,
                Model1       = new Model1(),
                EmailAddress = null,
                Number       = 2
            };

            // act
            var result = _subject.IsNotNull(model.EmailAddress, "EmailAddress", "teste").Validate();

            // assert
            result.Success.Should().BeFalse();
            result.Errors.Keys.Should().Contain("EmailAddress");
            result.Errors["EmailAddress"].Should().Contain("teste");
        }
        public void Null_Checks_With_Values_Pass()
        {
            // arrange
            var profile = new NullItemMappingProfile();

            var model = new NullableModel
            {
                Model1       = new Model1(),
                EmailAddress = "e",
                Number       = 22,
                AreYouHappy  = true
            };

            var validator = new ClassValidator <NullableModel>(profile.MappingExpressions.OfType <IMappingExpression <NullableModel> >().Single(), _settings);

            // act
            var result = validator.Validate(model);

            // assert
            result.Success.Should().BeTrue();
        }
        public void Read_class_properties()
        {
            var val = new NullableModel {
                Value = 12
            };
            var model = new ClassProperty {
                Nullable = val
            };
            var result = Read(model);

            result.Should().HaveCount(2);

            result[0].Attributes.Should().HaveCount(1);
            result[0].Attributes.ElementAt(0).Should().BeAssignableTo <RequiredAttribute>();
            result[0].Value.Should().Be(val);
            result[0].Path.Should().BeEquivalentTo(new[] { "nullable" });

            result[1].Attributes.Should().HaveCount(1);
            result[1].Attributes.ElementAt(0).Should().BeAssignableTo <RequiredAttribute>();
            result[1].Value.Should().Be(12);
            result[1].Path.Should().BeEquivalentTo(new[] { "nullable", "value" });
        }
        public void Null_Checks_Catch_Errors()
        {
            // arrange
            var profile = new NullItemMappingProfile();

            var model = new NullableModel();

            var validator = new ClassValidator <NullableModel>(profile.MappingExpressions.OfType <IMappingExpression <NullableModel> >().Single(), _settings);

            // act
            var result = validator.Validate(model);

            // assert
            result.Success.Should().BeFalse();
            result.Errors.Should().ContainKey("EmailAddress");
            result.Errors["EmailAddress"].Should().Contain("EmailAddress Is Null");

            result.Errors.Should().ContainKey("AreYouHappy");
            result.Errors["AreYouHappy"].Should().Contain("AreYouHappy Is Null");

            result.Errors.Should().ContainKey("Number");
            result.Errors["Number"].Should().Contain("Number Is Null");
        }
Esempio n. 15
0
        public void should_visit_all_nullable_and_non_nullable_json_nodes_of_type_when(int match, int nonNullableCount)
        {
            var options = Options.Create(
                x => x.Serialization(y => y.AddXmlVisitor<int>(
                    (s, t, o) => t.Value = 3,
                    (s, t, o) => (int)s.Value == match)));

            var model = new NullableModel { Nullable = 1, NonNullable = 2 };

            Serialize.Xml(model, options)
                .ShouldEqual(Xml.Declaration +
                    $"<NullableModel><NonNullable>{(match == 2 ? 3 : 2)}</NonNullable>" +
                    $"<Nullable>{(match == 1 ? 3 : 1)}</Nullable></NullableModel>");

            Serialize.Json(model, options)
                .ShouldEqual("{\"NonNullable\":2,\"Nullable\":1}");
        }