コード例 #1
0
        public void TestReturnIList()
        {
            string code = @"
                import(DummyCollection from ""FFITarget.dll"");
                a = 1..5;
                b = DummyCollection.ReturnIList(a);
                "                                                                                                                                                                           ;

            theTest.RunScriptSource(code);
            var methods = theTest.GetMethods("DummyCollection", "ReturnIList");

            //IList is marshaled as arbitrary rank var array
            Assert.AreEqual((int)ProtoCore.PrimitiveType.kTypeVar, methods[0].ReturnType.Value.UID);
            Assert.AreEqual(Constants.kArbitraryRank, methods[0].ReturnType.Value.rank);
            var args = methods[0].GetArgumentTypes();

            Assert.AreEqual((int)ProtoCore.PrimitiveType.kTypeInt, args[0].UID);
            Assert.AreEqual(1, args[0].rank); //Expecting it tobe marshaled as 1D array

            theTest.Verify("b", new int[] { 1, 2, 3, 4, 5 });
        }