public void MethodParamValidator_Should_Validate_Disallowed_Params() { const string source = @"using System; public class Test { public void DateTime1(DateTime param){} public void F(float param){} }"; var typeDefinition = CompileToTypeDef(source); foreach (var methodDefinition in typeDefinition.Methods) { var result = new MethodParamValidator().Validate(methodDefinition).ToList(); Assert.True(result.All(r => r is MethodParamValidator.MethodParamValidationResult)); } }
public void MethodParamValidator_Should_Validate_Optional_Params() { const string source = @" using System; public class Test { public void OptionalTest(int optional = 1, int optional2 = 2){} }"; var typeDefinition = CompileToTypeDef(source); var method = typeDefinition.Methods.First(m => m.Name == "OptionalTest"); var result = new MethodParamValidator().Validate(method).ToList(); Assert.Equal(2, result.Count); Assert.True(result.All(r => r is MethodParamValidator.MethodParamValidationResult)); }
public void MethodParamValidator_Should_Validate_Allowed_Params() { const string source = @"using Stratis.SmartContracts; public class Test { public void Bool(bool param){} public void Byte(byte param){} public void ByteArray(byte[] param){} public void Char(char param){} public void String(string param){} public void Int32(int param){} public void UInt32(uint param){} public void UInt64(ulong param){} public void Int64(long param){} public void Address1(Address param){} }"; var typeDefinition = CompileToTypeDef(source); foreach (var methodDefinition in typeDefinition.Methods) { var result = new MethodParamValidator().Validate(methodDefinition).ToList(); Assert.Empty(result); } }