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); }
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); }