public void CanGetTheManyToManyPart()
        {
            var propertyInfo = ReflectionHelper.GetProperty<ManyToMany1>(x => x.Many1);
            var autoMap = new AutoMap<ManyToMany1>();

            var mapper = new ManyToManyAutoMapper(new AutoMappingExpressions());
            object manyToManyPart = mapper.GetManyToManyPart<ManyToMany1>(autoMap, propertyInfo);

            manyToManyPart.ShouldBeOfType(typeof(ManyToManyPart<ManyToMany2>));
        }
        public void CanMapManyToManyProperty()
        {
            var propertyInfo = ReflectionHelper.GetProperty<ManyToMany1>(x => x.Many1);
            var autoMap = new AutoMap<ManyToMany1>();

            var mapper = new ManyToManyAutoMapper(new AutoMappingExpressions());
            mapper.Map<ManyToMany1>(autoMap, propertyInfo);

            autoMap.PropertiesMapped.ShouldHaveCount(1);
        }
        public void CanApplyInverse()
        {
            var propertyInfo = ReflectionHelper.GetProperty<ManyToMany1>(x => x.Many1);
            var mapper = new ManyToManyAutoMapper(new AutoMappingExpressions());
            var manyToManyPart = MockRepository.GenerateMock<IManyToManyPart>();

            mapper.ApplyInverse(propertyInfo, typeof(ManyToMany1), manyToManyPart);

            manyToManyPart.AssertWasCalled(x => x.Inverse());
        }