| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 | 
							- #!/usr/bin/ruby
 
- # generated_code.rb is in the same directory as this test.
 
- $LOAD_PATH.unshift(File.expand_path(File.dirname(__FILE__)))
 
- require 'generated_code_pb'
 
- require 'test/unit'
 
- def hex2bin(s)
 
-   s.scan(/../).map { |x| x.hex.chr }.join
 
- end
 
- class EncodeDecodeTest < Test::Unit::TestCase
 
-   def test_discard_unknown
 
-     # Test discard unknown in message.
 
-     unknown_msg = A::B::C::TestUnknown.new(:unknown_field => 1)
 
-     from = A::B::C::TestUnknown.encode(unknown_msg)
 
-     m = A::B::C::TestMessage.decode(from)
 
-     Google::Protobuf.discard_unknown(m)
 
-     to = A::B::C::TestMessage.encode(m)
 
-     assert_equal '', to
 
-     # Test discard unknown for singular message field.
 
-     unknown_msg = A::B::C::TestUnknown.new(
 
-             :optional_unknown =>
 
-             A::B::C::TestUnknown.new(:unknown_field => 1))
 
-     from = A::B::C::TestUnknown.encode(unknown_msg)
 
-     m = A::B::C::TestMessage.decode(from)
 
-     Google::Protobuf.discard_unknown(m)
 
-     to = A::B::C::TestMessage.encode(m.optional_msg)
 
-     assert_equal '', to
 
-     # Test discard unknown for repeated message field.
 
-     unknown_msg = A::B::C::TestUnknown.new(
 
-             :repeated_unknown =>
 
-             [A::B::C::TestUnknown.new(:unknown_field => 1)])
 
-     from = A::B::C::TestUnknown.encode(unknown_msg)
 
-     m = A::B::C::TestMessage.decode(from)
 
-     Google::Protobuf.discard_unknown(m)
 
-     to = A::B::C::TestMessage.encode(m.repeated_msg[0])
 
-     assert_equal '', to
 
-     # Test discard unknown for map value message field.
 
-     unknown_msg = A::B::C::TestUnknown.new(
 
-             :map_unknown =>
 
-             {"" => A::B::C::TestUnknown.new(:unknown_field => 1)})
 
-     from = A::B::C::TestUnknown.encode(unknown_msg)
 
-     m = A::B::C::TestMessage.decode(from)
 
-     Google::Protobuf.discard_unknown(m)
 
-     to = A::B::C::TestMessage.encode(m.map_string_msg[''])
 
-     assert_equal '', to
 
-     # Test discard unknown for oneof message field.
 
-     unknown_msg = A::B::C::TestUnknown.new(
 
-             :oneof_unknown =>
 
-             A::B::C::TestUnknown.new(:unknown_field => 1))
 
-     from = A::B::C::TestUnknown.encode(unknown_msg)
 
-     m = A::B::C::TestMessage.decode(from)
 
-     Google::Protobuf.discard_unknown(m)
 
-     to = A::B::C::TestMessage.encode(m.oneof_msg)
 
-     assert_equal '', to
 
-   end
 
-   def test_encode_json
 
-     msg = A::B::C::TestMessage.new({ optional_int32: 22 })
 
-     json = msg.to_json
 
-     to = A::B::C::TestMessage.decode_json(json)
 
-     assert_equal to.optional_int32, 22
 
-     msg = A::B::C::TestMessage.new({ optional_int32: 22 })
 
-     json = msg.to_json({ preserve_proto_fieldnames: true })
 
-     assert_match 'optional_int32', json
 
-     to = A::B::C::TestMessage.decode_json(json)
 
-     assert_equal 22, to.optional_int32
 
-     msg = A::B::C::TestMessage.new({ optional_int32: 22 })
 
-     json = A::B::C::TestMessage.encode_json(
 
-       msg,
 
-       { preserve_proto_fieldnames: true, emit_defaults: true }
 
-     )
 
-     assert_match 'optional_int32', json
 
-   end
 
-   def test_encode_wrong_msg
 
-     assert_raise ::ArgumentError do
 
-       m = A::B::C::TestMessage.new(
 
-           :optional_int32 => 1,
 
-       )
 
-       Google::Protobuf::Any.encode(m)
 
-     end
 
-   end
 
- end
 
 
  |