def testImplicitPrefixStrippingRequiresAllConstantsToBePrefixed(self):
     definition = EnumDefinition('Name', 'p', [])
     definition.AppendEntry('A', None)
     definition.AppendEntry('B', None)
     definition.AppendEntry('NAME_LAST', None)
     definition.Finalize()
     self.assertEqual(['A', 'B', 'NAME_LAST'], definition.entries.keys())
 def testImplicitPrefixStripping(self):
     definition = EnumDefinition('ClassName', 'p', [])
     definition.AppendEntry('CLASS_NAME_A', None)
     definition.AppendEntry('CLASS_NAME_B', None)
     definition.AppendEntry('CLASS_NAME_C', None)
     definition.Finalize()
     self.assertEqual(['A', 'B', 'C'], definition.entries.keys())
 def testExplicitPrefixStripping(self):
   definition = EnumDefinition('c', 'p', [])
   definition.AppendEntry('P_A', None)
   definition.AppendEntry('B', None)
   definition.AppendEntry('P_C', None)
   definition.prefix_to_strip = 'P_'
   definition.Finalize()
   self.assertEqual(['A', 'B', 'C'], definition.entries.keys())
Exemple #4
0
 def testImplicitPrefixStrippingRequiresAllConstantsToBePrefixed(self):
   definition = EnumDefinition(original_enum_name='Name',
                               enum_package='p')
   definition.AppendEntry('A', None)
   definition.AppendEntry('B', None)
   definition.AppendEntry('NAME_LAST', None)
   definition.Finalize()
   self.assertEqual(['A', 'B', 'NAME_LAST'], list(definition.entries.keys()))
Exemple #5
0
 def testEnumValueAssignmentAllDefined(self):
     definition = EnumDefinition(original_enum_name='c', enum_package='p')
     definition.AppendEntry('A', '1')
     definition.AppendEntry('B', '2')
     definition.AppendEntry('C', '3')
     definition.Finalize()
     self.assertEqual(
         collections.OrderedDict([('A', '1'), ('B', '2'), ('C', '3')]),
         definition.entries)
 def testEnumValueAssignmentNoneDefined(self):
     definition = EnumDefinition('c', 'p', [])
     definition.AppendEntry('A', None)
     definition.AppendEntry('B', None)
     definition.AppendEntry('C', None)
     definition.Finalize()
     self.assertEqual(
         collections.OrderedDict([('A', 0), ('B', 1), ('C', 2)]),
         definition.entries)
 def testExplicitPrefixStripping(self):
   definition = EnumDefinition(original_enum_name='c', enum_package='p')
   definition.AppendEntry('P_A', None)
   definition.AppendEntry('B', None)
   definition.AppendEntry('P_C', None)
   definition.AppendEntry('P_LAST', 'P_C')
   definition.prefix_to_strip = 'P_'
   definition.Finalize()
   self.assertEqual(collections.OrderedDict([('A', 0),
                                             ('B', 1),
                                             ('C', 2),
                                             ('LAST', 2)]),
                    definition.entries)
Exemple #8
0
 def testExplicitPrefixStripping(self):
     definition = EnumDefinition(original_enum_name='c', enum_package='p')
     definition.AppendEntry('P_A', None)
     definition.AppendEntry('B', None)
     definition.AppendEntry('P_C', None)
     definition.AppendEntry('P_LAST', 'P_C')
     definition.prefix_to_strip = 'P_'
     definition.Finalize()
     self.assertEqual(
         collections.OrderedDict([('A', 0), ('B', 1), ('C', 2),
                                  ('LAST', 2)]), definition.entries)
 def testExplicitPrefixStripping(self):
     definition = EnumDefinition('c', 'p', [])
     definition.AppendEntry('P_A', None)
     definition.AppendEntry('B', None)
     definition.AppendEntry('P_C', None)
     definition.prefix_to_strip = 'P_'
     definition.Finalize()
     self.assertEqual(['A', 'B', 'C'], definition.entries.keys())
Exemple #10
0
 def testEnumValueAssignmentReferences(self):
     definition = EnumDefinition(original_enum_name='c', enum_package='p')
     definition.AppendEntry('A', None)
     definition.AppendEntry('B', 'A')
     definition.AppendEntry('C', None)
     definition.AppendEntry('D', 'C')
     definition.Finalize()
     self.assertEqual(
         collections.OrderedDict([('A', 0), ('B', 0), ('C', 1), ('D', 1)]),
         definition.entries)
Exemple #11
0
 def testEnumValueAssignmentRaises(self):
     definition = EnumDefinition(original_enum_name='c', enum_package='p')
     definition.AppendEntry('A', None)
     definition.AppendEntry('B', 'foo')
     definition.AppendEntry('C', None)
     with self.assertRaises(Exception):
         definition.Finalize()
 def testEnumValueAssignmentRaises(self):
     definition = EnumDefinition('c', 'p', [])
     definition.AppendEntry('A', None)
     definition.AppendEntry('B', '1')
     definition.AppendEntry('C', None)
     with self.assertRaises(Exception):
         definition.Finalize()
Exemple #13
0
  def testOutput(self):
    definition = EnumDefinition(original_enum_name='ClassName',
                                enum_package='some.package',
                                entries=[('E1', 1), ('E2', '2 << 2')],
                                comments=[('E2', 'This is a comment.'),
                                          ('E1', 'This is a multiple line '
                                                 'comment that is really long. '
                                                 'This is a multiple line '
                                                 'comment that is really '
                                                 'really long.')])
    output = GenerateOutput('path/to/file', definition)
    expected = """
// Copyright %d The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// This file is autogenerated by
//     %s
// From
//     path/to/file

package some.package;

import android.support.annotation.IntDef;

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

public class ClassName {
  @IntDef({
      E1, E2
  })
  @Retention(RetentionPolicy.SOURCE)
  public @interface ClassNameEnum {}
  /**
   * %s
   * really really long.
   */
  public static final int E1 = 1;
  /**
   * This is a comment.
   */
  public static final int E2 = 2 << 2;
}
"""
    long_comment = ('This is a multiple line comment that is really long. '
                    'This is a multiple line comment that is')
    self.assertEqual(
            expected % (date.today().year, GetScriptName(), long_comment),
            output)
Exemple #14
0
 def testImplicitPrefixStripping(self):
     definition = EnumDefinition(original_enum_name='ClassName',
                                 enum_package='p')
     definition.AppendEntry('CLASS_NAME_A', None)
     definition.AppendEntry('CLASS_NAME_B', None)
     definition.AppendEntry('CLASS_NAME_C', None)
     definition.AppendEntry('CLASS_NAME_LAST', 'CLASS_NAME_C')
     definition.Finalize()
     self.assertEqual(
         collections.OrderedDict([('A', 0), ('B', 1), ('C', 2),
                                  ('LAST', 2)]), definition.entries)
    def testOutput(self):
        definition = EnumDefinition(original_enum_name='ClassName',
                                    enum_package='some.package',
                                    entries=[('E1', 1), ('E2', '2 << 2')])
        output = GenerateOutput('path/to/file', definition)
        expected = """
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// This file is autogenerated by
//     %s
// From
//     path/to/file

package some.package;

public class ClassName {
  public static final int E1 = 1;
  public static final int E2 = 2 << 2;
}
"""
        self.assertEqual(expected % GetScriptName(), output)