Exemplo n.º 1
0
        private static string GetGeneratedCodeFromXmlDefinition(string xml)
        {
            ////var serializer = new XmlSerializer(typeof(ApisRoot));
            ////var reader = new StringReader(xml);
            ////var root = (ApisRoot)serializer.Deserialize(reader);

            MemoryStream stream    = new MemoryStream();
            StreamWriter writer    = new System.IO.StreamWriter(stream);
            var          generator = new CSharpGenerator(writer);
            var          xmlStream = new MemoryStream();
            var          xmlWriter = new StreamWriter(xmlStream);

            xmlWriter.Write(xml);
            xmlWriter.Flush();
            xmlStream.Seek(0L, SeekOrigin.Begin);

            var builder = new ServiceDefinitionBuilder();

            ////builder.AppendServiceDefinition(new ServiceDefinition(root));
            builder.AppendServiceDefinition(xmlStream);
            generator.Run(builder.Definition);
            stream.Seek(0L, SeekOrigin.Begin);
            var result = new StreamReader(stream).ReadToEnd();

            return(result);
        }
Exemplo n.º 2
0
        public void ImplicitSubReturnTypes2()
        {
            var xml        = @"<?xml version=""1.0"" encoding=""utf-8""?>
<Root>
  <ApiGroup Name=""group"">
    <ReturnType Name=""person"" ClassName=""Person"">
      <Field Name=""location:(name)"" />
      <Field Name=""location:(country:(code))"" />
    </ReturnType>
  </ApiGroup>
</Root>";
            var serializer = new XmlSerializer(typeof(ApisRoot));
            var reader     = new StringReader(xml);
            var root       = (ApisRoot)serializer.Deserialize(reader);
            var stream     = new System.IO.MemoryStream();
            var writer     = new System.IO.StreamWriter(stream);
            var generator  = new CSharpGenerator(writer);
            var builder    = new ServiceDefinitionBuilder();

            builder.AppendServiceDefinition(new ServiceDefinition(root));
            generator.Run(builder.Definition);

            writer.Flush();
            stream.Seek(0L, System.IO.SeekOrigin.Begin);
            var result = new StreamReader(stream).ReadToEnd();

            Assert.IsFalse(string.IsNullOrEmpty(result));
        }
Exemplo n.º 3
0
        public void ImplicitSubReturnTypes()
        {
            var stream    = new System.IO.MemoryStream();
            var writer    = new System.IO.StreamWriter(stream);
            var generator = new CSharpGenerator(writer);
            var root      = new ApisRoot
            {
                ApiGroups = new List <ApiGroup>()
                {
                    new ApiGroup
                    {
                        Name        = "g",
                        Methods     = new List <ApiMethod>(),
                        ReturnTypes = new List <ReturnType>()
                        {
                            new ReturnType
                            {
                                Name   = "r1",
                                Fields = new List <Field>()
                                {
                                    new Field
                                    {
                                        Name = "f1",
                                    },
                                    new Field
                                    {
                                        Name = "f2:(r2:(name))",
                                    },
                                },
                            },
                        },
                    },
                },
            };
            var builder = new ServiceDefinitionBuilder();

            builder.AppendServiceDefinition(new ServiceDefinition(root));
            generator.Run(builder.Definition);

            writer.Flush();
            stream.Seek(0L, System.IO.SeekOrigin.Begin);
            var result = new StreamReader(stream).ReadToEnd();

            Assert.IsFalse(string.IsNullOrEmpty(result));
            Assert.IsTrue(result.Contains("public class R1"));
            Assert.IsTrue(result.Contains("public class F2"));
            Assert.IsTrue(result.Contains("public string F1"));
            Assert.IsTrue(result.Contains("public F2 F2"));
            Assert.IsTrue(result.Contains("public string Name"));
        }
Exemplo n.º 4
0
        public void MyTestMethod()
        {
            var stream    = new System.IO.MemoryStream();
            var writer    = new System.IO.StreamWriter(stream);
            var generator = new CSharpGenerator(writer);
            var root      = new ApisRoot
            {
                ApiGroups = new List <ApiGroup>()
                {
                    new ApiGroup
                    {
                        Name    = "g",
                        Methods = new List <ApiMethod>()
                        {
                            new ApiMethod
                            {
                                Path       = "/v1/test1",
                                MethodName = "mtd1",
                            },
                            new ApiMethod
                            {
                                Path       = "/v1/test1/{UserId}",
                                MethodName = "mtd2",
                            },
                        },
                        ReturnTypes = new List <ReturnType>(),
                    },
                },
            };
            var builder = new ServiceDefinitionBuilder();

            builder.AppendServiceDefinition(new ServiceDefinition(root));
            generator.Run(builder.Definition);

            writer.Flush();
            stream.Seek(0L, System.IO.SeekOrigin.Begin);
            var result = new StreamReader(stream).ReadToEnd();

            Assert.IsFalse(string.IsNullOrEmpty(result));
            Assert.IsTrue(result.Contains("public void mtd1("));
            Assert.IsTrue(result.Contains("public void mtd2("));
            Assert.IsTrue(result.Contains("string userId"));
        }
Exemplo n.º 5
0
        public void ImplicitAndExplicitReturnTypes()
        {
            var xml        = @"<?xml version=""1.0"" encoding=""utf-8""?>
<Root>
  <ApiGroup Name=""group"">
    <ApiMethod MethodName=""ftw"" ReturnType=""Person"" Path=""/ftw"" />
    <ReturnType Name=""person"" ClassName=""Person"">
      <Field Name=""location"" Type=""PersonLocation"" />
    </ReturnType>
    <ReturnType Name=""location"" ClassName=""PersonLocation"">
      <Field Name=""name"" />
    </ReturnType>
  </ApiGroup>
</Root>";
            var serializer = new XmlSerializer(typeof(ApisRoot));
            var reader     = new StringReader(xml);
            var root       = (ApisRoot)serializer.Deserialize(reader);
            var stream     = new System.IO.MemoryStream();
            var writer     = new System.IO.StreamWriter(stream);
            var generator  = new CSharpGenerator(writer);
            var builder    = new ServiceDefinitionBuilder();

            builder.AppendServiceDefinition(new ServiceDefinition(root));
            generator.Run(builder.Definition);

            writer.Flush();
            stream.Seek(0L, System.IO.SeekOrigin.Begin);
            var result = new StreamReader(stream).ReadToEnd();

            Assert.IsFalse(string.IsNullOrEmpty(result));
            Assert.IsFalse(string.IsNullOrEmpty(result));
            Assert.IsTrue(result.Contains("public class Person"));
            Assert.IsTrue(result.Contains("public class PersonLocation"));
            Assert.IsTrue(result.Contains("public PersonLocation Location"));
            Assert.IsFalse(result.Contains("public class Location"));
            Assert.IsTrue(result.Contains("public string Name"));
        }