def test_enum(self): file_name = 'a.mojom' mojom_enum = mojom_types_mojom.MojomEnum() mojom_enum.decl_data = mojom_types_mojom.DeclarationData( short_name='AnEnum', source_file_info=mojom_types_mojom.SourceFileInfo( file_name=file_name)) value1 = mojom_types_mojom.EnumValue( decl_data=mojom_types_mojom.DeclarationData(short_name='val1'), initializer_value=mojom_types_mojom.Value( literal_value=mojom_types_mojom.LiteralValue(uint64_value=20)), int_value=20) value2 = mojom_types_mojom.EnumValue( decl_data=mojom_types_mojom.DeclarationData(short_name='val2'), int_value=70) mojom_enum.values = [value1, value2] graph = mojom_files_mojom.MojomFileGraph() enum = module.Enum() translator = mojom_translator.FileTranslator(graph, file_name) translator.EnumFromMojom( enum, mojom_types_mojom.UserDefinedType(enum_type=mojom_enum)) self.assertEquals(translator._module, enum.module) self.assertEquals(mojom_enum.decl_data.short_name, enum.name) self.assertEquals(len(mojom_enum.values), len(enum.fields)) self.assertEquals(value1.decl_data.short_name, enum.fields[0].name) self.assertEquals(value2.decl_data.short_name, enum.fields[1].name) self.assertEquals('20', enum.fields[0].value) self.assertIsNone(enum.fields[1].value) self.assertEquals(value1.int_value, enum.fields[0].numeric_value) self.assertEquals(value2.int_value, enum.fields[1].numeric_value)
def test_enum_value(self): file_name = 'a.mojom' mojom_enum = mojom_types_mojom.MojomEnum() mojom_enum.decl_data = mojom_types_mojom.DeclarationData( short_name='AnEnum', source_file_info=mojom_types_mojom.SourceFileInfo( file_name=file_name)) value1 = mojom_types_mojom.EnumValue( decl_data=mojom_types_mojom.DeclarationData( short_name='val1', source_file_info=mojom_types_mojom.SourceFileInfo( file_name=file_name)), enum_type_key='enum_key', initializer_value=mojom_types_mojom.Value( literal_value=mojom_types_mojom.LiteralValue(uint64_value=20)), int_value=20) value2 = mojom_types_mojom.EnumValue( decl_data=mojom_types_mojom.DeclarationData(short_name='val2'), enum_type_key='enum_key', int_value=70) mojom_enum.values = [value1, value2] graph = mojom_files_mojom.MojomFileGraph() graph.resolved_types = { 'enum_key': mojom_types_mojom.UserDefinedType(enum_type=mojom_enum) } graph.resolved_values = { 'enum_value1': mojom_types_mojom.UserDefinedValue(enum_value=value1), 'enum_value2': mojom_types_mojom.UserDefinedValue(enum_value=value2), } mojom = mojom_types_mojom.Value( user_value_reference=mojom_types_mojom.UserValueReference( identifier='SOMEID', value_key='enum_value1')) translator = mojom_translator.FileTranslator(graph, file_name) enum_value = translator.ValueFromMojom(mojom) enum = translator.UserDefinedFromTypeKey('enum_key') self.assertIs(enum, enum_value.enum) self.assertIs(value1.decl_data.short_name, enum_value.name)