コード例 #1
0
        protected override void AppendExpressionPart(string part)
        {
            // replace string.class => typeof(string), string.valueOf(x) => x.ToString(), etc
            part = GenericExpressionHelper.ConvertTypeofExpressionsToCSharp(part);
            part = GenericExpressionHelper.ConvertStringValueofToString(part);
            part = GenericExpressionHelper.ConvertApexInstanceOfTypeExpressionToCSharp(part);
            part = GenericExpressionHelper.ConvertApexTypesToCSharp(part);

            base.AppendExpressionPart(part);
        }
コード例 #2
0
        public void SomeDotClassIsConvertedToTypeofClass()
        {
            var text   = "string.class";
            var csharp = GenericExpressionHelper.ConvertTypeofExpressionsToCSharp(text);

            Assert.AreEqual("typeof(string)", csharp);

            text   = "mock(MyLittleClass.class)";
            csharp = GenericExpressionHelper.ConvertTypeofExpressionsToCSharp(text);
            Assert.AreEqual("mock(typeof(MyLittleClass))", csharp);
        }
コード例 #3
0
        public void ComplexClassExpressionsAreConvertedToTypeof()
        {
            var text   = "Map<string, string>.class";
            var csharp = GenericExpressionHelper.ConvertTypeofExpressionsToCSharp(text);

            Assert.AreEqual("typeof(Map<string, string>)", csharp);

            text   = "string12.class";
            csharp = GenericExpressionHelper.ConvertTypeofExpressionsToCSharp(text);
            Assert.AreEqual("typeof(string12)", csharp);

            text   = "Some.New.Stuff.class";
            csharp = GenericExpressionHelper.ConvertTypeofExpressionsToCSharp(text);
            Assert.AreEqual("typeof(Some.New.Stuff)", csharp);

            text   = "List<string>.class";
            csharp = GenericExpressionHelper.ConvertTypeofExpressionsToCSharp(text);
            Assert.AreEqual("typeof(List<string>)", csharp);

            text   = "List<System.string1>.class";
            csharp = GenericExpressionHelper.ConvertTypeofExpressionsToCSharp(text);
            Assert.AreEqual("typeof(List<System.string1>)", csharp);

            text   = "System.List<string>.class";
            csharp = GenericExpressionHelper.ConvertTypeofExpressionsToCSharp(text);
            Assert.AreEqual("typeof(System.List<string>)", csharp);

            text   = "System.Map<string, string, string>.class";
            csharp = GenericExpressionHelper.ConvertTypeofExpressionsToCSharp(text);
            Assert.AreEqual("typeof(System.Map<string, string, string>)", csharp);

            text   = "Map<List<string>, string>.class";
            csharp = GenericExpressionHelper.ConvertTypeofExpressionsToCSharp(text);
            Assert.AreEqual("typeof(Map<List<string>, string>)", csharp);

            text   = "Map<string, System.List<string>>.class";
            csharp = GenericExpressionHelper.ConvertTypeofExpressionsToCSharp(text);
            Assert.AreEqual("typeof(Map<string, System.List<string>>)", csharp);

            text   = "Map<List<string>, System.List<string>>.class";
            csharp = GenericExpressionHelper.ConvertTypeofExpressionsToCSharp(text);
            Assert.AreEqual("typeof(Map<List<string>, System.List<string>>)", csharp);

            text   = "Map<System.Map<int , string> , System.List<string, int>>.class";
            csharp = GenericExpressionHelper.ConvertTypeofExpressionsToCSharp(text);
            Assert.AreEqual("typeof(Map<System.Map<int , string> , System.List<string, int>>)", csharp);

            // more than two levels deep — cannot be supported by regular expressions
            text   = "Map<List<Set<string>>, System.List<string>>.class";
            csharp = GenericExpressionHelper.ConvertTypeofExpressionsToCSharp(text);
            Assert.AreEqual("Map<List<Set<string>>, System.List<string>>.class", csharp);
        }
コード例 #4
0
        public void SomeDotClassIsConvertedToTypeofClass()
        {
            var text   = "string.class";
            var csharp = GenericExpressionHelper.ConvertTypeofExpressionsToCSharp(text);

            Assert.AreEqual("typeof(string)", csharp);

            text   = "mock(MyLittleClass.class)";
            csharp = GenericExpressionHelper.ConvertTypeofExpressionsToCSharp(text);
            Assert.AreEqual("mock(typeof(MyLittleClass))", csharp);

            // not supported by regex-based expression helper
            text   = "Map<string, string>.class)";
            csharp = GenericExpressionHelper.ConvertTypeofExpressionsToCSharp(text);
            Assert.AreEqual("Map<string, string>.class)", csharp);
        }