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); }
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>()); }
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); }
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); }
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); }
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); }
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); }); }
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); }