def test_constant_value(self): file_name = 'a.mojom' mojom_const = mojom_types_mojom.DeclaredConstant( decl_data=mojom_types_mojom.DeclarationData( short_name='AConst', source_file_info=mojom_types_mojom.SourceFileInfo( file_name=file_name)), type=mojom_types_mojom.Type( simple_type=mojom_types_mojom.SimpleType.INT64), value=mojom_types_mojom.Value( literal_value=mojom_types_mojom.LiteralValue(int64_value=30))) user_defined_value = mojom_types_mojom.UserDefinedValue() user_defined_value.declared_constant = mojom_const graph = mojom_files_mojom.MojomFileGraph() graph.resolved_values = {'value_key': user_defined_value} mojom = mojom_types_mojom.Value( user_value_reference=mojom_types_mojom.UserValueReference( identifier='SOMEID', value_key='value_key')) translator = mojom_translator.FileTranslator(graph, file_name) const_value = translator.ValueFromMojom(mojom) self.assertIs(translator.ConstantFromValueKey('value_key'), const_value.constant) self.assertIs(mojom_const.decl_data.short_name, const_value.name)
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)