public void InvokeColumnCustomizer()
        {
            var propertyPath = new PropertyPath(null, ForClass<MyClass>.Property(x => x.MyCollection));
            var customizersHolder = new CustomizersHolder();
            var customizer = new ManyToManyCustomizer(propertyPath, customizersHolder);
            var elementMapper = new Mock<IManyToManyMapper>();
            var columnMapper = new Mock<IColumnMapper>();
            elementMapper.Setup(x => x.Column(It.IsAny<Action<IColumnMapper>>())).Callback<Action<IColumnMapper>>(
                x => x.Invoke(columnMapper.Object));

            customizer.Column(c => c.SqlType("VARCHAR(100)"));
            customizersHolder.InvokeCustomizers(propertyPath, elementMapper.Object);

            columnMapper.Verify(x => x.SqlType(It.Is<string>(v => v == "VARCHAR(100)")));
        }
        public void InvokeDirectMethods()
        {
            var propertyPath = new PropertyPath(null, ForClass<MyClass>.Property(x => x.MyCollection));
            var customizersHolder = new CustomizersHolder();
            var customizer = new ManyToManyCustomizer(propertyPath, customizersHolder);
            var elementMapper = new Mock<IManyToManyMapper>();

            customizer.Class(typeof(Related));
            customizer.EntityName("something");
            customizer.NotFound(NotFoundMode.Ignore);
            customizer.Column("pizza");

            customizersHolder.InvokeCustomizers(propertyPath, elementMapper.Object);

            elementMapper.Verify(x => x.Class(It.Is<Type>(v => v == typeof(Related))), Times.Once());
            elementMapper.Verify(x => x.EntityName(It.Is<string>(v => v == "something")), Times.Once());
            elementMapper.Verify(x => x.NotFound(It.Is<NotFoundMode>(v => v == NotFoundMode.Ignore)), Times.Once());
            elementMapper.Verify(x => x.Column(It.Is<string>(v => v == "pizza")), Times.Once());
        }
        public void ManyToMany(Action <IManyToManyMapper> mapping)
        {
            var manyToManyCustomizer = new ManyToManyCustomizer(propertyPath, customizersHolder);

            mapping(manyToManyCustomizer);
        }