public void BasicMethodInInterfaces()
        {
            var tree = CSharpSyntaxTree.ParseText(@"
                public interface Cheese
                {
                    public Guid Consume();
                }

                public interface Tea
                {
                    public void Drink(bool isNoon);
                }
"
                                                  );

            var root = (CompilationUnitSyntax)tree.GetRoot();
            var interfaceCollector = new InterfaceCollector();

            interfaceCollector.Visit(root);

            Assert.AreEqual(interfaceCollector.Items.Count, 2);
            Assert.AreEqual(interfaceCollector.Items.First().ClassName, "Cheese");
            Assert.AreEqual(interfaceCollector.Items.First().Methods.Count(), 1);
            Assert.AreEqual(interfaceCollector.Items.First().Methods.First().Name, "Consume");
            Assert.AreEqual(interfaceCollector.Items.First().Methods.First().Params.Count(), 0);

            Assert.AreEqual(interfaceCollector.Items.Last().ClassName, "Tea");
            Assert.AreEqual(interfaceCollector.Items.Last().Methods.Count(), 1);
            Assert.AreEqual(interfaceCollector.Items.Last().Methods.First().Name, "Drink");
            Assert.AreEqual(interfaceCollector.Items.Last().Methods.First().Params.Any(param => param.Identifier == "isNoon" && param.Type == "bool"), true);
        }
Exemplo n.º 2
0
        public ShaderReflection WithEntryPoint(Spv.ExecutionModel executionModel, Function value, string name = null)
        {
            var interfaceCollector = new InterfaceCollector();

            interfaceCollector.Visit(value);
            return(this.With(new EntryPoint(executionModel, value, name ?? value.DebugName ?? "main", interfaceCollector.Inputs.Concat(interfaceCollector.Outputs).Concat(interfaceCollector.Uniforms))));
        }
        public void BasicMethodInInterfaceReturnGuid()
        {
            var tree = CSharpSyntaxTree.ParseText(@"
                public interface Cheese
                {
                    public Guid Consume();
                }"
                                                  );

            var root = (CompilationUnitSyntax)tree.GetRoot();
            var interfaceCollector = new InterfaceCollector();

            interfaceCollector.Visit(root);

            Assert.AreEqual(interfaceCollector.Items.Count, 1);
            Assert.AreEqual(interfaceCollector.Items.First().ClassName, "Cheese");
            Assert.AreEqual(interfaceCollector.Items.First().Methods.Count(), 1);
            Assert.AreEqual(interfaceCollector.Items.First().Methods.First().Name, "Consume");
            Assert.AreEqual(interfaceCollector.Items.First().Methods.First().ReturnType, "Guid");
        }
        public void BasicMethodInInterfaceOptionalIntParam()
        {
            var tree = CSharpSyntaxTree.ParseText(@"
                public interface Cheese
                {
                    public void Consume(int mouthfuls = 0);
                }"
                                                  );

            var root = (CompilationUnitSyntax)tree.GetRoot();
            var interfaceCollector = new InterfaceCollector();

            interfaceCollector.Visit(root);

            Assert.AreEqual(interfaceCollector.Items.Count, 1);
            Assert.AreEqual(interfaceCollector.Items.First().ClassName, "Cheese");
            Assert.AreEqual(interfaceCollector.Items.First().Methods.Count(), 1);
            Assert.AreEqual(interfaceCollector.Items.First().Methods.First().Name, "Consume");
            Assert.AreEqual(interfaceCollector.Items.First().Methods.First().ReturnType, "void");
            Assert.AreEqual(interfaceCollector.Items.First().Methods.First().Params.Any(param => param.Identifier == "mouthfuls" && param.Type == "int" && param.Default != null), true);
        }