]> asedeno.scripts.mit.edu Git - cl-protobufs.git/commitdiff
Add a test for type-aliases
authorAlejandro R Sedeño <asedeno@google.com>
Fri, 14 Dec 2012 23:23:36 +0000 (18:23 -0500)
committerAlejandro R Sedeño <asedeno@google.com>
Mon, 17 Dec 2012 19:32:31 +0000 (14:32 -0500)
tests/serialization-tests.lisp

index aeb906e98889fbf1bba07049b4e8c4bca5cd04a7..23da95188d717a829b65908935f944dc175bd1ee 100644 (file)
                                 (proto:deserialize-object 'add-color2 ser2) nil :stream s)))))))
 
 
+;; Type aliases
+(proto:define-schema type-alias-test
+    (:package proto_test)
+  (proto:define-type-alias lisp-integer-as-string ()
+    :lisp-type integer
+    :proto-type string
+    :serializer princ-to-string
+    :deserializer parse-integer)
+  (proto:define-message type-alias-test-message ()
+    (test-field :type (or null lisp-integer-as-string))))
+
+(define-test type-aliases ()
+  (assert-equal
+   (proto-impl:proto-type
+    (first (proto-impl:proto-fields
+            (proto:find-message (proto:find-schema 'type-alias-test)
+                                'proto-test::type-alias-test-message))))
+   "string")
+  (let* ((msg1 (make-instance 'type-alias-test-message :test-field 5))
+         (ser1 (proto:serialize-object-to-bytes msg1 'type-alias-test-message))
+         (dser1 (deserialize-object 'type-alias-test-message ser1)))
+    (assert-equal ser1 #(10 1 53) :test equalp)
+    (assert-equal (slot-value msg1 'test-field)
+                  (slot-value dser1 'test-field))))
+
 (define-test-suite serialization-tests ()
   (basic-serialization
    basic-optimized-serialization
    #+qres geodata-serialization
    #+qres geodata-optimized-serialization
    extension-serialization
-   group-serialization))
+   group-serialization
+   type-aliases))
 
 (register-test 'serialization-tests)