Now using type from discovery document to properly cast method parameters. Also added in checking for values that are enums.
diff --git a/tests/test_discovery.py b/tests/test_discovery.py
index 7c00bb9..adc5eb1 100644
--- a/tests/test_discovery.py
+++ b/tests/test_discovery.py
@@ -62,17 +62,17 @@
 
     # Parameter doesn't match regex
     try:
-      buzz.activities().list(scope='@self', userId='')
+      buzz.activities().list(scope='@myself', userId='me')
       self.fail()
     except TypeError, e:
-      self.assertTrue('does not match' in str(e))
+      self.assertTrue('not in the list' in str(e))
 
     # Parameter doesn't match regex
     try:
       buzz.activities().list(scope='not@', userId='foo')
       self.fail()
     except TypeError, e:
-      self.assertTrue('does not match' in str(e))
+      self.assertTrue('not in the list' in str(e))
 
     # Unexpected parameter
     try:
@@ -81,11 +81,32 @@
     except TypeError, e:
       self.assertTrue('unexpected' in str(e))
 
+  def _check_query_types(self, request):
+    parsed = urlparse.urlparse(request.uri)
+    q = parse_qs(parsed[4])
+    self.assertEqual(q['q'], ['foo'])
+    self.assertEqual(q['i'], ['1'])
+    self.assertEqual(q['n'], ['1.0'])
+    self.assertEqual(q['b'], ['false'])
+    self.assertEqual(q['a'], ['[1, 2, 3]'])
+    self.assertEqual(q['o'], ['{\'a\': 1}'])
+    self.assertEqual(q['e'], ['bar'])
+
+  def test_type_coercion(self):
+    self.http = HttpMock(datafile('zoo.json'), {'status': '200'})
+    zoo = build('zoo', 'v1', self.http)
+
+    request = zoo.query(q="foo", i=1.0, n=1.0, b=0, a=[1,2,3], o={'a':1}, e='bar')
+    self._check_query_types(request)
+    request = zoo.query(q="foo", i=1, n=1, b=False, a=[1,2,3], o={'a':1}, e='bar')
+    self._check_query_types(request)
+    request = zoo.query(q="foo", i="1", n="1", b="", a=[1,2,3], o={'a':1}, e='bar')
+    self._check_query_types(request)
+
   def test_buzz_resources(self):
     self.http = HttpMock(datafile('buzz.json'), {'status': '200'})
     buzz = build('buzz', 'v1', self.http)
     self.assertTrue(getattr(buzz, 'activities'))
-    self.assertTrue(getattr(buzz, 'feeds'))
     self.assertTrue(getattr(buzz, 'photos'))
     self.assertTrue(getattr(buzz, 'people'))
     self.assertTrue(getattr(buzz, 'groups'))