public void should_construct_with_resolver_and_enrich()
        {
            IMappingProvider provider = null;
            var continuationPolicy = new ContinuationPropertyMappingPolicy();
            var enumerablePolicy = new EnumerablePropertyMappingPolicy();
            var propertyPolicy = new PrimitiveOrStringPropertyMappingPolicy();
            var mappingPolicy = new MappingPolicySource(new List<IPropertyMappingPolicy> { propertyPolicy, continuationPolicy, enumerablePolicy });
            var resolver = new LambdaObjectResolver(r => r.DestinationType.Equals(typeof (Notification)), r => new Notification(r.SourceType));
            var enricher = new LambdaObjectEnricher<ModelWithErrors, Notification>((src, dest) => src
                                                                                                        .CustomErrors
                                                                                                        .Each(dest.RegisterError));
            var query = new MappingQuery(new List<IMappingPolicy> { mappingPolicy }, new List<IObjectResolver> { resolver }, new List<IObjectEnricher> { enricher });
            provider = new MappingProvider(query, new MappingContext((IMappingProvider)null));

            var model = new ModelWithErrors {CustomErrors = new List<string> {"Error 1", "Error 2"}};
            var notification = provider.Map<ModelWithErrors, Notification>(model);

            notification
                .Type
                .ShouldEqual(typeof (ModelWithErrors));

            notification
                .Messages
                .ShouldContain(m => m.Message == "Error 1");

            notification
                .Messages
                .ShouldContain(m => m.Message == "Error 2");
        }
 public void SetUp()
 {
     _policy = new MappingPolicySource(new List<IPropertyMappingPolicy> { new PrimitiveOrStringPropertyMappingPolicy() });
 }