예제 #1
0
        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);
        }
예제 #2
0
        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'.");
        }
예제 #3
0
        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);
        }
예제 #4
0
        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);
                }
            }
        }