public void WhenGivingParameterName_ThenOtherParameterNamesStayTheSame() { Spec.SpecifyMethod() .WithFunctionSignature <int, int, int>(nameof(CustomizedParameterShouldModel.Sum), ParamSettings.WithName("first")); var parameterInfo = GetAdapter().GetType().GetMethod(nameof(CustomizedParameterShouldModel.Sum)).GetParameters()[1]; parameterInfo.Name.ShouldBe("y"); }
public void GivenDefaultParameterNotAtEnd_WhenSpecIsValidated_ThenErrorIsReturned() { Spec.SpecifyMethod() .WithFunctionSignature <int, int, int>("Sum", param1: ParamSettings.WithName("x").WithDefault(3)) .SpecifyLinq(x => Spec.Linq.Arg <int>(1) + Spec.Linq.Arg <int>(2)); var validation = Spec.Validate().Errors.ShouldHaveSingleItem(); validation.ShouldContain("default"); }
public void WhenGivingParameterDefault_ThenAdapterParameterHasDefault() { Spec.SpecifyMethod() .WithFunctionSignature <int, int, int>(nameof(CustomizedParameterShouldModel.Sum), param2: ParamSettings.WithName("second").WithDefault(5)); dynamic adapter = GetAdapter(new CustomizedParameterShouldModel()); int result = adapter.Sum(3); result.ShouldBe(8); }
public void WhenParameterAttributeIsHidden_ThenAdapterParameterDoesNotHaveHiddenAttribute() { var p = ParamSettings.WithName("x"); var pAtts = p.Attributes; Spec.SpecifyMethod() .WithFunctionSignature <int, int, int>(nameof(CustomizedParameterShouldModel.Sum), p); IAdapter <CustomizedParameterShouldModel> adapter = null; var attributeTester = new AttributeTester <ParameterInfo>( () => { }, () => pAtts, () => adapter = Spec.Finish().Create(null), () => adapter.GetType().GetMethod(nameof(CustomizedParameterShouldModel.Sum)).GetParameters()[0], pi => pi.GetCustomAttributes()); attributeTester.TestHidingAttribute(); }
public void WhenLinqParamIsSpecifiedByName_ThenLinqReceivesCorrectParam() { var spec = Specification.New <CustomizedMethodShouldModel>(); spec.SpecifyMethod() .WithFunctionSignature <string, string>(nameof(CustomizedMethodShouldModel.Run), ParamSettings.WithName("x")) .SpecifyLinq(a => spec.Linq.Arg <string>("x")); dynamic adapter = spec.Finish().Create(); string result = adapter.Run("test"); result.ShouldBe("test"); }
public void WhenParamIsSpecifiedByName_ThenDelegateReceivesCorrectParam() { string backingField = null; var spec = Specification.New <CustomizedMethodShouldModel>(); spec .SpecifyMethod() .WithFunctionSignature <string, string>(nameof(CustomizedMethodShouldModel.Run), ParamSettings.WithName("x")) .SpecifyDelegate(Param.Arg <string>("x"), a => { backingField = a; return("blocked"); }); dynamic adapter = spec.Finish().Create(); string result = adapter.Run("test"); result.ShouldBe("blocked"); backingField.ShouldBe("test"); }