public void Should_keep_object_type_and_return_result() { var instance = new Entity(); var exp = new ConstantExpression(instance); var result = exp.Execute <object>(_ => null); result.ShouldBeSameAs(instance); }
public void Should_throw_upon_invalid_type_cast() { var instance = new Entity(); var exp = new ConstantExpression(instance); var ex = Should.Throw <InvalidCastException>(() => _ = exp.Execute <AnotherEntity>(_ => null)); ex.Message.ShouldBe("Unable to cast object of type 'Entity' to type 'AnotherEntity'."); }
public void Should_cast_and_return_result() { var instance = new Entity(); var exp = new ConstantExpression(instance); var result = exp.Execute <Entity>(_ => null); result.ShouldBeSameAs(instance); }
public void Should_cast_any_result_to_object_and_return_value(Type type, object value) { var exp = new ConstantExpression(value); var result = exp.Execute <object>(_ => null); if (type.IsClass) { result.ShouldBeSameAs(value); } else { result.ShouldBe(value); if (result is null) { type.ShouldBeNullable(); } else { var nonNullType = type.AsNonNullableType(); result.ShouldBeOfType(nonNullType); } } }