Ejemplo n.º 1
0
        public void WhenManyToManyBidirectionalThenApplyColumnNameByEntityClass()
        {
            var orm = new Mock <IDomainInspector>();

            orm.Setup(x => x.IsManyToMany(It.Is <Type>(t => t == typeof(MyClass)), It.Is <Type>(t => t == typeof(MyBidirect)))).Returns(true);
            orm.Setup(x => x.IsManyToMany(It.Is <Type>(t => t == typeof(MyBidirect)), It.Is <Type>(t => t == typeof(MyClass)))).Returns(true);

            var pattern          = new ManyToManyKeyIdColumnApplier(orm.Object);
            var path             = new PropertyPath(null, ForClass <MyClass> .Property(x => x.MyBidirects));
            var collectionMapper = new Mock <ICollectionPropertiesMapper>();
            var keyMapper        = new Mock <IKeyMapper>();

            collectionMapper.Setup(x => x.Key(It.IsAny <Action <IKeyMapper> >())).Callback <Action <IKeyMapper> >(x => x.Invoke(keyMapper.Object));

            pattern.Apply(path, collectionMapper.Object);

            keyMapper.Verify(x => x.Column(It.Is <string>(columnName => columnName == "MyClassId")));

            var bipath             = new PropertyPath(null, ForClass <MyBidirect> .Property(x => x.MyClasses));
            var bicollectionMapper = new Mock <ICollectionPropertiesMapper>();
            var bikeyMapper        = new Mock <IKeyMapper>();

            bicollectionMapper.Setup(x => x.Key(It.IsAny <Action <IKeyMapper> >())).Callback <Action <IKeyMapper> >(x => x.Invoke(bikeyMapper.Object));

            pattern.Apply(bipath, bicollectionMapper.Object);

            bikeyMapper.Verify(x => x.Column(It.Is <string>(columnName => columnName == "MyBidirectId")));
        }
        public void WhenManyToManyBidirectionalThenApplyColumnNameByEntityClass()
        {
            var orm = new Mock<IDomainInspector>();
            orm.Setup(x => x.IsManyToMany(It.Is<Type>(t => t == typeof(MyClass)), It.Is<Type>(t => t == typeof(MyBidirect)))).Returns(true);
            orm.Setup(x => x.IsManyToMany(It.Is<Type>(t => t == typeof(MyBidirect)), It.Is<Type>(t => t == typeof(MyClass)))).Returns(true);

            var pattern = new ManyToManyKeyIdColumnApplier(orm.Object);
            var path = new PropertyPath(null, ForClass<MyClass>.Property(x => x.MyBidirects));
            var collectionMapper = new Mock<ICollectionPropertiesMapper>();
            var keyMapper = new Mock<IKeyMapper>();
            collectionMapper.Setup(x => x.Key(It.IsAny<Action<IKeyMapper>>())).Callback<Action<IKeyMapper>>(x => x.Invoke(keyMapper.Object));

            pattern.Apply(path, collectionMapper.Object);

            keyMapper.Verify(x => x.Column(It.Is<string>(columnName => columnName == "MyClassId")));

            var bipath = new PropertyPath(null, ForClass<MyBidirect>.Property(x => x.MyClasses));
            var bicollectionMapper = new Mock<ICollectionPropertiesMapper>();
            var bikeyMapper = new Mock<IKeyMapper>();
            bicollectionMapper.Setup(x => x.Key(It.IsAny<Action<IKeyMapper>>())).Callback<Action<IKeyMapper>>(x => x.Invoke(bikeyMapper.Object));

            pattern.Apply(bipath, bicollectionMapper.Object);

            bikeyMapper.Verify(x => x.Column(It.Is<string>(columnName => columnName == "MyBidirectId")));
        }