Ejemplo n.º 1
0
        public void InternalPropertiesAreMappedByDefault()
        {
            var source = new SourceClass();
            var target = new TargetClass();

            Assert.NotEqual(source.InternalState, target.InternalState);

            var container = Mappings.CreateContainer();

            source.ApplyTo(target, container);

            Assert.Equal(source.InternalState, target.InternalState);
        }
Ejemplo n.º 2
0
        public void MappingConfigurationsAreCached()
        {
            var source = new SourceClass();
            var target = new TargetClass();

            var container = Mappings.CreateContainer();

            Assert.False(container.HasMappingFor <SourceClass, TargetClass>());

            source.ApplyTo(target, container);

            Assert.True(container.HasMappingFor <SourceClass, TargetClass>());
        }
Ejemplo n.º 3
0
        public void PropertiesAreMatchedByNameAndTypes()
        {
            var source = new SourceClass();
            var target = new TargetClass();

            Assert.NotEqual(source.Name, target.Name);
            Assert.NotEqual(source.SourceDescription, target.TargetDescription);

            var container = Mappings.CreateContainer();

            source.ApplyTo(target, container);

            Assert.Equal(source.Name, target.Name);
            Assert.NotEqual(source.SourceDescription, target.TargetDescription);
        }
Ejemplo n.º 4
0
        public void UnmatchedPropertiesCanBeMapped()
        {
            var source = new SourceClass();
            var target = new TargetClass();

            Assert.NotEqual(source.Name, target.Name);
            Assert.NotEqual(source.SourceDescription, target.TargetDescription);

            var container = Mappings.CreateContainer();

            source.ApplyTo(target, container, map => {
                map.Property(t => t.TargetDescription, s => s.SourceDescription);
            });

            Assert.Equal(source.Name, target.Name);
            Assert.Equal(source.SourceDescription, target.TargetDescription);
        }
Ejemplo n.º 5
0
        public void LocalMappingOverrideConfigurationsAreNotCached()
        {
            var source = new SourceClass();
            var target = new TargetClass();

            var container = Mappings.CreateContainer();

            source.ApplyTo(target, container, map => {
                map.Property(p => p.TargetDescription, s => s.SourceDescription);
            });

            Assert.Equal(source.SourceDescription, target.TargetDescription);

            source = new SourceClass();
            target = new TargetClass();

            source.ApplyTo(target, container);

            Assert.NotEqual(source.SourceDescription, target.TargetDescription);
        }
Ejemplo n.º 6
0
        public void GracefullyHandlesNullsOnBothSides()
        {
            var source    = new SourceClass();
            var target    = new TargetClass();
            var container = Mappings.CreateContainer();

            source.ApplyTo((TargetClass)null, container);
            ((SourceClass)null).ApplyTo(target, container);
            ((SourceClass)null).ApplyTo((TargetClass)null, container);

            var newSource = new SourceClass();
            var newTarget = new TargetClass();

            Assert.Equal(newSource.Id, source.Id);
            Assert.Equal(newSource.Name, source.Name);
            Assert.Equal(newSource.SourceDescription, source.SourceDescription);

            Assert.Equal(newTarget.Id, target.Id);
            Assert.Equal(newTarget.Name, target.Name);
            Assert.Equal(newTarget.TargetDescription, target.TargetDescription);
        }
Ejemplo n.º 7
0
        public void ContainersAreThreadSafe()
        {
            var container = Mappings.CreateContainer();

            Parallel.For(0, 100000, i => {
                var source = new SourceClass();
                var target = new TargetClass();

                container.Configure <SourceClass, TargetClass>(map => {
                    map.Property(t => t.Id, s => s.Id.ToString(CultureInfo.InvariantCulture));
                });

                source.ApplyTo(target, container, map => {
                    map.Property(t => t.TargetDescription, s => s.SourceDescription);
                });

                Assert.Equal(source.Id.ToString(CultureInfo.InvariantCulture), target.Id);
                Assert.Equal(source.Name, target.Name);
                Assert.Equal(source.SourceDescription, target.TargetDescription);
            });
        }
Ejemplo n.º 8
0
        public void ConfiguredContainerWithAdditionalsTest()
        {
            var source = new SourceClass();
            var target = new TargetClass();

            Assert.NotEqual(source.Id.ToString(CultureInfo.InvariantCulture), target.Id);
            Assert.NotEqual(source.Name, target.Name);
            Assert.NotEqual(source.SourceDescription, target.TargetDescription);

            var container = Mappings.CreateContainer();

            container.Configure <SourceClass, TargetClass>(map => {
                map.Property(t => t.Id, s => s.Id.ToString(CultureInfo.InvariantCulture));
            });

            source.ApplyTo(target, container, map => {
                map.Property(t => t.TargetDescription, s => s.SourceDescription);
            });

            Assert.Equal(source.Id.ToString(CultureInfo.InvariantCulture), target.Id);
            Assert.Equal(source.Name, target.Name);
            Assert.Equal(source.SourceDescription, target.TargetDescription);
        }