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" }); }
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); }
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(); }
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"); }
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"); }
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"); }
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}"); }