def test_ObjectType(self):
   json_api = {
     'domains': [
       {
         'domain': 'domain',
         'types': [
           {
             'id': 'TestType',
             'type': 'object',
             'properties': [
                 {'name': 'p1', 'type': 'number'},
                 {'name': 'p2', 'type': 'integer'},
                 {'name': 'p3', 'type': 'boolean'},
                 {'name': 'p4', 'type': 'string'},
                 {'name': 'p5', 'type': 'any'},
                 {'name': 'p6', 'type': 'object', '$ref': 'TestType'},
             ],
             'returns': [
                 {'name': 'r1', 'type': 'number'},
                 {'name': 'r2', 'type': 'integer'},
                 {'name': 'r3', 'type': 'boolean'},
                 {'name': 'r4', 'type': 'string'},
                 {'name': 'r5', 'type': 'any'},
                 {'name': 'r6', 'type': 'object', '$ref': 'TestType'},
             ],
           },
         ]
       },
     ]
   }
   client_api_generator.CreateTypeDefinitions(json_api)
   type = json_api['domains'][0]['types'][0]
   resolved = client_api_generator.ResolveType(type)
   self.assertEqual('TestType', resolved['raw_type'])
 def test_IntegerType(self):
     json_api = {
         'domains': [
             {
                 'domain': 'domain',
                 'types': [
                     {
                         'id': 'TestType',
                         'type': 'integer',
                     },
                 ]
             },
         ]
     }
     client_api_generator.CreateTypeDefinitions(json_api)
     type = json_api['domains'][0]['types'][0]
     resolved = client_api_generator.ResolveType(type)
     self.assertEqual('int', resolved['raw_type'])
 def test_EnumType(self):
   json_api = {
     'domains': [
       {
         'domain': 'domain',
         'types': [
           {
             'id': 'TestType',
             'type': 'string',
             'enum': ['a', 'b', 'c']
           },
         ]
       },
     ]
   }
   client_api_generator.CreateTypeDefinitions(json_api)
   type = json_api['domains'][0]['types'][0]
   resolved = client_api_generator.ResolveType(type)
   self.assertEqual('headless::domain::TestType', resolved['raw_type'])
 def test_ArrayType(self):
   json_api = {
     'domains': [
       {
         'domain': 'domain',
         'types': [
           {
             'id': 'TestType',
             'type': 'array',
             'items': {'type': 'integer'}
           },
         ]
       },
     ]
   }
   client_api_generator.CreateTypeDefinitions(json_api)
   type = json_api['domains'][0]['types'][0]
   resolved = client_api_generator.ResolveType(type)
   self.assertEqual('std::vector<int>', resolved['raw_type'])
예제 #5
0
 def test_StringType(self):
     json_api = {
         'domains': [
             {
                 'domain': 'domain',
                 'types': [
                     {
                         'id': 'TestType',
                         'type': 'string',
                     },
                 ]
             },
         ]
     }
     client_api_generator.CreateTypeDefinitions(json_api)
     type = json_api['domains'][0]['types'][0]
     resolved = client_api_generator.ResolveType(type)
     self.assertEqual('std::string', resolved['raw_type'])
     self.assertEqual('const std::string&', resolved['pass_type'])
 def test_Generate(self):
   json_api = {
     'domains': [
       {
         'domain': 'domain',
         'types': [
           {
             'id': 'TestType',
             'type': 'object',
             'properties': [
                 {'name': 'p1', 'type': 'number'},
                 {'name': 'p2', 'type': 'integer'},
                 {'name': 'p3', 'type': 'boolean'},
                 {'name': 'p4', 'type': 'string'},
                 {'name': 'p5', 'type': 'any'},
                 {'name': 'p6', 'type': 'object', '$ref': 'domain.TestType'},
             ],
             'returns': [
                 {'name': 'r1', 'type': 'number'},
                 {'name': 'r2', 'type': 'integer'},
                 {'name': 'r3', 'type': 'boolean'},
                 {'name': 'r4', 'type': 'string'},
                 {'name': 'r5', 'type': 'any'},
                 {'name': 'r6', 'type': 'object', '$ref': 'domain.TestType'},
             ],
           },
         ]
       },
     ]
   }
   try:
     dirname = tempfile.mkdtemp()
     jinja_env = client_api_generator.InitializeJinjaEnv(dirname)
     client_api_generator.CreateTypeDefinitions(json_api)
     client_api_generator.Generate(jinja_env, dirname, json_api,
                                   'deprecated_types', ['h'])
     # This is just a smoke test; we don't actually verify the generated output
     # here.
   finally:
     shutil.rmtree(dirname)