private Builder(
     HarshObjectMetadata metadata,
     ImmutableDictionary <PropertyAccessor, PropertyAccessor> mappings
     )
 {
     Metadata = metadata;
     Mappings = mappings;
 }
        public void PropertySource_is_stored_and_retrieved()
        {
            var target = new Tracker();
            var source = new TestSource();
            var metadata = new HarshObjectMetadata(typeof(Tracker));

            var accessor = metadata.ReadableWritableInstanceProperties.Single();

            accessor.SetValue(target, "42", source);

            Assert.Equal("42", target.Property);
            Assert.Same(source, accessor.GetValueSource(target));
        }
        public void PropertySource_is_stored_and_retrieved()
        {
            var target   = new Tracker();
            var source   = new TestSource();
            var metadata = new HarshObjectMetadata(typeof(Tracker));

            var accessor = metadata.ReadableWritableInstanceProperties.Single();

            accessor.SetValue(target, "42", source);

            Assert.Equal("42", target.Property);
            Assert.Same(source, accessor.GetValueSource(target));
        }
Ejemplo n.º 4
0
        public ParameterSetBuilder(HarshObjectMetadata metadata, IDefaultValuePolicy defaultValuePolicy)
        {
            if (metadata == null)
            {
                throw Logger.Fatal.ArgumentNull(nameof(metadata));
            }

            Metadata = metadata;

            DefaultParameterSetName = metadata
                .ObjectTypeInfo
                .GetCustomAttribute<DefaultParameterSetAttribute>(inherit: true)?
                .DefaultParameterSetName;

            DefaultValuePolicy = defaultValuePolicy ?? new NullDefaultValuePolicy();

            ValidateNoInvalidParameters();
        }