public void Property_is_returned_if_it_implements_IClrPropertyGetter()
        {
            var getterMock   = new Mock <IClrPropertyGetter>();
            var propertyMock = getterMock.As <IProperty>();

            var source = new ClrPropertyGetterSource();

            Assert.Same(getterMock.Object, source.GetAccessor(propertyMock.Object));
        }
        public void Delegate_getter_is_cached_by_type_and_property_name()
        {
            var entityType = new EntityType(typeof(Customer));
            var idProperty = entityType.AddProperty("Id", typeof(int));

            var source = new ClrPropertyGetterSource();

            var accessor = source.GetAccessor(typeof(Customer), "Id");

            Assert.Same(accessor, source.GetAccessor(typeof(Customer), "Id"));
            Assert.Same(accessor, source.GetAccessor(idProperty));
        }
        public NavigationAccessorSource(
            [NotNull] ClrPropertyGetterSource getterSource,
            [NotNull] ClrPropertySetterSource setterSource,
            [NotNull] ClrCollectionAccessorSource collectionAccessorSource)
        {
            Check.NotNull(getterSource, "getterSource");
            Check.NotNull(setterSource, "setterSource");
            Check.NotNull(collectionAccessorSource, "collectionAccessorSource");

            _getterSource             = getterSource;
            _setterSource             = setterSource;
            _collectionAccessorSource = collectionAccessorSource;
        }