コード例 #1
0
        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));
            }
        }
コード例 #2
0
        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));
        }
コード例 #3
0
        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);
            }
        }