public void Apply_CopiesSourceDataToTarget() { var aniDbMapping = PropertyMapping.Create(t => t.TargetValueA, (AniDbSource s, Metadata t) => t.TargetValueA = s.AniDbValue, SourceNames.AniDb); var tvDbMapping = PropertyMapping.Create(t => t.TargetValueB, (TvDbSource s, Metadata t) => t.TargetValueB = s.TvDbValue, SourceNames.TvDb); var aniDbSource = new AniDbSource(); var metadata = new Metadata(); var metadataMapping = new PropertyMappingCollection(new IPropertyMapping[] { aniDbMapping, tvDbMapping }); metadataMapping.Apply(aniDbSource, metadata, m => { }); metadata.TargetValueA.Should().Be(SourceNames.AniDb); metadata.TargetValueB.Should().Be("TargetValueB"); }
public void Apply_MultipleSourcesSameTarget_TakesFirstSource() { var aniDbMapping = PropertyMapping.Create(t => t.TargetValueA, (AniDbSource s, Metadata t) => t.TargetValueA = s.AniDbValue, SourceNames.AniDb); var tvDbMapping = PropertyMapping.Create(t => t.TargetValueA, (TvDbSource s, Metadata t) => t.TargetValueA = s.TvDbValue, SourceNames.TvDb); var aniDbSource = new AniDbSource(); var tvDbSource = new TvDbSource(); var metadata = new Metadata(); var metadataMapping = new PropertyMappingCollection(new IPropertyMapping[] { aniDbMapping, tvDbMapping }); metadataMapping.Apply(new object[] { aniDbSource, tvDbSource }, metadata, m => { }); metadata.TargetValueA.Should().Be(SourceNames.AniDb); metadata.TargetValueB.Should().Be("TargetValueB"); }