Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
tree: 7dfbb468ea
Fetching contributors…

Cannot retrieve contributors at this time

file 58 lines (48 sloc) 2.173 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
#!/usr/bin/python
#
# Copyright 2011 Google Inc. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

"""Tests for go_generator."""

__author__ = 'wgg@google.com (Wolfgang Grieskamp)'

from google.apputils import basetest
from googleapis.codegen import go_generator


class GoApiTest(basetest.TestCase):

  def testToClassName(self):
    """Test creating safe class and member names from object names."""
    api = go_generator.GoApi(
        {'name': 'dummy', 'version': 'v1', 'resources': {}})
    self.assertEquals('Foo', api.ToClassName('foo'))
    self.assertEquals('FooResource', api.ToClassName('foo', 'resource'))
    self.assertEquals('Class', api.ToClassName('class'))
    self.assertEquals('DummyDefault', api.ToClassName('default'))
    self.assertEquals('DummyInt32', api.ToClassName('int32'))
    self.assertEquals('DummyImport', api.ToClassName('import'))
    self.assertEquals('Object', api.ToClassName('object'))
    self.assertEquals('DummyString', api.ToClassName('string'))
    self.assertEquals('DummyInterface', api.ToClassName('interface'))

  def testGetCodeTypeFromDictionary(self):
    """Test mapping of JSON schema types to Go class names."""
    language_model = go_generator.GoLanguageModel()

    test_cases = [
        ['interface{}', {'type': 'any'}],
        ['bool', {'type': 'boolean'}],
        ['int32', {'type': 'integer'}],
        ['float64', {'type': 'number'}],
        ['string', {'type': 'string'}],
    ]

    for test_case in test_cases:
      self.assertEquals(test_case[0],
                        language_model.GetCodeTypeFromDictionary(test_case[1]))

if __name__ == '__main__':
  basetest.main()
Something went wrong with that request. Please try again.