def setUp(self): self.tempdir = tempfile.mkdtemp() self.generator = ObjectiveCGenerator(self.tempdir)
class TestObjectiveCGenerator(unittest.TestCase): def setUp(self): self.tempdir = tempfile.mkdtemp() self.generator = ObjectiveCGenerator(self.tempdir) def tearDown(self): shutil.rmtree(self.tempdir) def test_generate_enum(self): enum = Enum('Number', value_names=['ONE', 'TWO']) module = Module('test.module') module.add_definition(enum) module.link() header = self.generator._generate_header(enum) impl = self.generator._generate_impl(enum) assert header assert impl def test_generate_message(self): enum = Enum('Type') subtype = enum.create_value('SUBTYPE') base = Message('Base') base.create_field('type', enum, is_discriminator=True) msg = Message('Message', base=base, discriminator_value=subtype) msg.create_field('field', NativeType.BOOL) module = Module('test.module') module.add_definition(enum) module.add_definition(base) module.add_definition(msg) module.link() header = self.generator._generate_header(msg) impl = self.generator._generate_impl(msg) assert header assert impl def test_generate_interface(self): exc = Message('Exception', is_exception=True) iface = Interface('Interface', exc=exc) iface.create_method('method0', NativeType.INT32, [('arg', NativeType.INT32)]) iface.create_method('method1', NativeType.STRING, [('name', NativeType.STRING)]) module = Module('test.module') module.add_definition(exc) module.add_definition(iface) module.link() header = self.generator._generate_header(iface) impl = self.generator._generate_impl(iface) assert header assert impl def test_generate_package(self): msg = Message('Message') iface = Interface('Interface') module0 = Module('module0', definitions=[msg]) module1 = Module('module1', definitions=[iface]) package = Package('test', modules=[module0, module1]) package.compile() code = self.generator._generate_package(package) assert code