public void ThrowsObjectIsDefaultExceptionIfAnyValueIsDefault() { var myStructure = new MyStructure(); // ReSharper disable ConvertToConstant.Local var zero = 0; // ReSharper restore ConvertToConstant.Local Assert.Throws <ObjectIsDefaultContractViolationException>(() => Contract.Argument(() => zero).NotDefault()); Assert.Throws <ObjectIsDefaultContractViolationException>(() => Contract.Argument(() => zero).NotDefault()); Assert.Throws <ObjectIsDefaultContractViolationException>(() => Contract.Argument(() => myStructure).NotDefault()); Assert.Throws <ObjectIsDefaultContractViolationException>(() => Contract.Argument(() => myStructure).NotDefault()); var badValues = new List <object> { zero, myStructure }; var goodValues = new List <object> { new Object(), "", Guid.NewGuid() }; InspectionTestHelper.InspectBadValue <ObjectIsDefaultContractViolationException, MyStructure>( inspected => inspected.NotDefault(), new MyStructure()); InspectionTestHelper.BatchTestInspection <ObjectIsDefaultContractViolationException, int>( inspected => inspected.NotDefault(), badValues: new List <int> { 0 }, goodValues: new List <int> { 1, 2, 3 }); }