Skip to content

Commit 0b9fbce

Browse files
committed
remove the ad-hoc stuff
1 parent affeed4 commit 0b9fbce

File tree

5 files changed

+41
-155
lines changed

5 files changed

+41
-155
lines changed

src/AutoMapper/Configuration/CtorParamConfigurationExpression.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ public void MapFrom(string sourceMembersPath)
6262
_ctorParamActions.Add(cpm => cpm.MapFrom(sourceMembersPath, sourceMembers));
6363
}
6464

65-
public void ExplicitExpansion(bool value = true) => _ctorParamActions.Add(cpm => cpm.ExplicitExpansion = value);
65+
public void ExplicitExpansion(bool value) => _ctorParamActions.Add(cpm => cpm.ExplicitExpansion = value);
6666

6767
public void Configure(TypeMap typeMap)
6868
{

src/AutoMapper/Configuration/MemberConfigurationExpression.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ private void PreConditionCore(Expression<Func<TSource, TDestination, ResolutionC
8080
PropertyMapActions.Add(pm => pm.PreCondition = expr);
8181
public void AddTransform(Expression<Func<TMember, TMember>> transformer) =>
8282
PropertyMapActions.Add(pm => pm.AddValueTransformation(new ValueTransformerConfiguration(pm.DestinationType, transformer)));
83-
public void ExplicitExpansion(bool value = true) => PropertyMapActions.Add(pm => pm.ExplicitExpansion = pm.ExplicitExpansion == null ? value : pm.ExplicitExpansion);
83+
public void ExplicitExpansion(bool value) => PropertyMapActions.Add(pm => pm.ExplicitExpansion = value);
8484
public void Ignore() => Ignore(ignorePaths: true);
8585
public void Ignore(bool ignorePaths)
8686
{
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
namespace AutoMapper.IntegrationTests.ExplicitExpansion;
2+
3+
public class ConstructorExplicitExpansionOverride : IntegrationTest<ConstructorExplicitExpansionOverride.DatabaseInitializer> {
4+
public class Entity {
5+
public int Id { get; set; }
6+
public string Name { get; set; }
7+
}
8+
9+
public class SubEntity : Entity {
10+
}
11+
12+
record Dto(string Name);
13+
record SubDto(string Name) : Dto(Name) { }
14+
15+
public class Context : LocalDbContext {
16+
public DbSet<Entity> Entities { get; set; }
17+
public DbSet<SubEntity> SubEntities { get; set; }
18+
}
19+
public class DatabaseInitializer : DropCreateDatabaseAlways<Context> {
20+
protected override void Seed(Context context) {
21+
context.Entities.Add(new() { Name = "base" });
22+
context.SubEntities.Add(new() { Name = "derived" });
23+
base.Seed(context);
24+
}
25+
}
26+
protected override MapperConfiguration CreateConfiguration() => new(c => {
27+
c.CreateMap<Entity, Dto>().ForCtorParam("Name", o => o.ExplicitExpansion());
28+
c.CreateMap<SubEntity, SubDto>().IncludeBase<Entity, Dto>().ForCtorParam("Name", o => o.ExplicitExpansion(false));
29+
});
30+
[Fact]
31+
public void Should_work() {
32+
using var context = new Context();
33+
var dtos = ProjectTo<Dto>(context.Entities).ToList();
34+
dtos.Count.ShouldBe(2);
35+
dtos[0].ShouldBeOfType<Dto>().Name.ShouldBeNull();
36+
dtos[1].ShouldBeOfType<SubDto>().Name.ShouldBe("derived");
37+
}
38+
}

src/IntegrationTests/ExplicitExpansion/DisableExplicitExpansion.cs

Lines changed: 0 additions & 152 deletions
This file was deleted.

src/IntegrationTests/ExplicitExpansion/ExpandCollectionsWithoutExplicit.cs renamed to src/IntegrationTests/ExplicitExpansion/ExpandCollectionsOverride.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
namespace AutoMapper.IntegrationTests.ExplicitExpansion;
22

3-
public class ExpandCollectionsWithoutExplicit : IntegrationTest<ExpandCollectionsWithoutExplicit.DatabaseInitializer>
3+
public class ExpandCollectionsOverride : IntegrationTest<ExpandCollectionsOverride.DatabaseInitializer>
44
{
55
TrainingCourseDto _course;
66

0 commit comments

Comments
 (0)