public void ShouldNotInvokeInnerBuilderIfUnableToResolveMemberType() { // Arrange var nonMemberRequest = new object(); var memberTypeResolver = new DelegatingRequestMemberTypeResolver { OnTryGetMemberType = _ => null }; var innerBuilder = new DelegatingSpecimenBuilder { OnCreate = (r, c) => throw new InvalidOperationException("Should not be invoked") }; var sut = new UnwrapMemberRequest(innerBuilder) { MemberTypeResolver = memberTypeResolver }; var ctx = new DelegatingSpecimenContext(); // Act var result = sut.Create(nonMemberRequest, ctx); // Assert Assert.Equal(new NoSpecimen(), result); } }
public void ShouldPassUnwrappedTypeToInnerBuilder() { // Arrange var memberRequest = new object(); var memberType = typeof(List <int>); var memberTypeResolver = new DelegatingRequestMemberTypeResolver { OnTryGetMemberType = r => r == memberRequest ? memberType : null }; var expectedResult = new object(); var innerBuilder = new DelegatingSpecimenBuilder { OnCreate = (r, c) => memberType.Equals(r) ? expectedResult : new NoSpecimen() }; var sut = new UnwrapMemberRequest(innerBuilder) { MemberTypeResolver = memberTypeResolver }; var ctx = new DelegatingSpecimenContext(); // Act var result = sut.Create(memberRequest, ctx); // Assert Assert.Equal(expectedResult, result); }