public void SutIsSpecimenBuilder()
 {
     // Fixture setup
     // Exercise system
     var sut = new MutableValueTypeGenerator();
     // Verify outcome
     Assert.IsAssignableFrom<ISpecimenBuilder>(sut);
     // Teardown
 }
 public void CreateWithNullContainerDoesNotThrow()
 {
     // Fixture setup
     var sut = new MutableValueTypeGenerator();
     // Exercise system
     var dummyRequest = new object();
     
     // Verify outcome (no exception indicates success)
     Assert.DoesNotThrow(() => sut.Create(dummyRequest, null));
     // Teardown
 }
 public void CreateWithNullRequestWillReturnCorrectResult()
 {
     // Fixture setup
     var sut = new MutableValueTypeGenerator();
     // Exercise system
     var dummyContainer = new DelegatingSpecimenContext();
     var result = sut.Create(null, dummyContainer);
     // Verify outcome
     Assert.Equal(new NoSpecimen(), result);
     // Teardown
 }
 public void CreateWithValueTypeWithoutConstructorRequestWillReturnCorrectResult()
 {
     // Fixture setup
     var valueTypeRequest = typeof(MutableValueTypeWithoutConstructor);
     var sut = new MutableValueTypeGenerator();
     // Exercise system
     var dummyContainer = new DelegatingSpecimenContext();
     var result = sut.Create(valueTypeRequest, dummyContainer);
     // Verify outcome
     Assert.IsType<MutableValueTypeWithoutConstructor>(result);
     // Teardown
 }
 public void CreateWithNotTypeRequestWillReturnCorrectResult()
 {
     // Fixture setup
     var nonValueTypeRequest = new object();
     var sut = new MutableValueTypeGenerator();
     // Exercise system
     var dummyContainer = new DelegatingSpecimenContext();
     var result = sut.Create(nonValueTypeRequest, dummyContainer);
     // Verify outcome
     var expectedResult = new NoSpecimen(nonValueTypeRequest);
     Assert.Equal(expectedResult, result);
     // Teardown
 }