Esempio n. 1
0
        public EntityProperty(PropertyInfo property)
        {
            Property  = property.Name;
            IsNumeric = property.PropertyType.IsNumber();
            Getter    = GetterBuilder.Build(property);
            Setter    = SetterBuilder.Build(property.DeclaringType, property);
            Comparer  = ComparerBuilder.Build(property.DeclaringType, property);

            _isValueType    = property.PropertyType.IsValueType;
            _isNullableType = property.PropertyType.IsNullableValueType();

            IsSelectable = true;
            IsInsertable = true;
            IsUpdatable  = true;

            if (_isNullableType)
            {
                SetNullable();
            }
            else
            {
                DefaultValue = property.PropertyType.GetDefaultValue();
            }

            var autoDetectedKeyName = AutodetectableKeyNames.Any(n => n.Equals(property.Name, StringComparison.InvariantCultureIgnoreCase));

            if (autoDetectedKeyName)
            {
                SetKey();
            }
        }
        public void build_and_execute_a_mandatory_setter()
        {
            var builder = new SetterBuilder<SetterTarget>();
            Action<IArguments, SetterTarget> func = builder.BuildMandatorySetter("Name");

            var args = new StubArguments();
            args.Set("Name", "Max");

            var target = new SetterTarget();
            func(args, target);

            target.Name.ShouldEqual("Max");
        }
Esempio n. 3
0
        public void build_and_execute_a_mandatory_setter()
        {
            var builder = new SetterBuilder <SetterTarget>();
            Action <IArguments, SetterTarget> func = builder.BuildMandatorySetter("Name");

            var args = new StubArguments();

            args.Set("Name", "Max");

            var target = new SetterTarget();

            func(args, target);

            target.Name.ShouldEqual("Max");
        }
        public void build_and_execute_an_optional_setter()
        {
            var builder = new SetterBuilder<SetterTarget>();
            var func = builder.BuildOptionalSetter("Name");

            var args = new StubArguments();
            var target = new SetterTarget();
            func(args, target);

            target.Name.ShouldBeNull();

            args.Set("Name", "Max");
            func(args, target);

            target.Name.ShouldEqual("Max");
        }