public void NoConstraintGenericWithDateTimeType_AndFunctionWithDefaultOfTReturnValue() { var instance = new GenericsSample.NoConstraint <DateTime>(); Action act = () => instance.Function(returnValue: default(DateTime)); act.ShouldNotThrow("the return value check should not perform a 'param == default(T)' comparison"); }
public void NoConstraintGenericWithNullableIntType_AndFunctionWithNullReturnValue() { var instance = new GenericsSample.NoConstraint <int?>(); Action act = () => instance.Function(returnValue: null); act.ShouldThrow <InvalidOperationException>().WithMessage( "[NullGuard] Return value * is null.", "known issue for generics without constraint (it's a trade-off between this false positive and a false-negative if T is a reference type"); }
public void NoConstraintGenericWithStringType_AndFunctionWithNullReturnValue() { var instance = new GenericsSample.NoConstraint <string>(); Action act = () => { var result = instance.Function(returnValue: null); ReSharper.TestValueAnalysis(result, result == null /*Expect:ConditionIsAlwaysTrueOrFalse[MOut]*/); }; act.ShouldThrow <InvalidOperationException>().WithMessage("[NullGuard] Return value * is null."); }