diff options
Diffstat (limited to 'third_party/protobuf/ruby/tests/well_known_types_test.rb')
-rw-r--r-- | third_party/protobuf/ruby/tests/well_known_types_test.rb | 122 |
1 files changed, 0 insertions, 122 deletions
diff --git a/third_party/protobuf/ruby/tests/well_known_types_test.rb b/third_party/protobuf/ruby/tests/well_known_types_test.rb deleted file mode 100644 index 9b46632b72..0000000000 --- a/third_party/protobuf/ruby/tests/well_known_types_test.rb +++ /dev/null @@ -1,122 +0,0 @@ -#!/usr/bin/ruby - -require 'test/unit' -require 'google/protobuf/well_known_types' - -class TestWellKnownTypes < Test::Unit::TestCase - def test_timestamp - ts = Google::Protobuf::Timestamp.new - - assert_equal Time.at(0), ts.to_time - - ts.seconds = 12345 - assert_equal Time.at(12345), ts.to_time - assert_equal 12345, ts.to_i - - ts.from_time(Time.at(123456, 654321)) - assert_equal 123456, ts.seconds - assert_equal 654321000, ts.nanos - assert_equal Time.at(123456.654321), ts.to_time - end - - def test_duration - duration = Google::Protobuf::Duration.new(seconds: 123, nanos: 456) - assert_equal 123.000000456, duration.to_f - end - - def test_struct - struct = Google::Protobuf::Struct.new - - substruct = { - "subkey" => 999, - "subkey2" => false - } - - sublist = ["abc", 123, {"deepkey" => "deepval"}] - - struct["number"] = 12345 - struct["boolean-true"] = true - struct["boolean-false"] = false - struct["null"] = nil - struct["string"] = "abcdef" - struct["substruct"] = substruct - struct["sublist"] = sublist - - assert_equal 12345, struct["number"] - assert_equal true, struct["boolean-true"] - assert_equal false, struct["boolean-false"] - assert_equal nil, struct["null"] - assert_equal "abcdef", struct["string"] - assert_equal(Google::Protobuf::Struct.from_hash(substruct), - struct["substruct"]) - assert_equal(Google::Protobuf::ListValue.from_a(sublist), - struct["sublist"]) - - should_equal = { - "number" => 12345, - "boolean-true" => true, - "boolean-false" => false, - "null" => nil, - "string" => "abcdef", - "substruct" => { - "subkey" => 999, - "subkey2" => false - }, - "sublist" => ["abc", 123, {"deepkey" => "deepval"}] - } - - list = struct["sublist"] - list.is_a?(Google::Protobuf::ListValue) - assert_equal "abc", list[0] - assert_equal 123, list[1] - assert_equal({"deepkey" => "deepval"}, list[2].to_h) - - # to_h returns a fully-flattened Ruby structure (Hash and Array). - assert_equal(should_equal, struct.to_h) - - # Test that we can assign Struct and ListValue directly. - struct["substruct"] = Google::Protobuf::Struct.from_hash(substruct) - struct["sublist"] = Google::Protobuf::ListValue.from_a(sublist) - - assert_equal(should_equal, struct.to_h) - - struct["sublist"] << nil - should_equal["sublist"] << nil - - assert_equal(should_equal, struct.to_h) - assert_equal(should_equal["sublist"].length, struct["sublist"].length) - - assert_raise Google::Protobuf::UnexpectedStructType do - struct[123] = 5 - end - - assert_raise Google::Protobuf::UnexpectedStructType do - struct[5] = Time.new - end - - assert_raise Google::Protobuf::UnexpectedStructType do - struct[5] = [Time.new] - end - - assert_raise Google::Protobuf::UnexpectedStructType do - struct[5] = {123 => 456} - end - - assert_raise Google::Protobuf::UnexpectedStructType do - struct = Google::Protobuf::Struct.new - struct.fields["foo"] = Google::Protobuf::Value.new - # Tries to return a Ruby value for a Value class whose type - # hasn't been filled in. - struct["foo"] - end - end - - def test_any - any = Google::Protobuf::Any.new - ts = Google::Protobuf::Timestamp.new(seconds: 12345, nanos: 6789) - any.pack(ts) - - assert any.is(Google::Protobuf::Timestamp) - assert_equal ts, any.unpack(Google::Protobuf::Timestamp) - end -end |