|
@@ -1269,6 +1269,39 @@ module CommonTests
|
|
|
assert proto_module::TestMessage.new != nil
|
|
|
end
|
|
|
|
|
|
+ def test_freeze
|
|
|
+ m = proto_module::TestMessage.new
|
|
|
+ m.optional_int32 = 10
|
|
|
+ m.freeze
|
|
|
+
|
|
|
+ frozen_error = assert_raise(FrozenError) { m.optional_int32 = 20 }
|
|
|
+ assert_equal "can't modify frozen #{proto_module}::TestMessage", frozen_error.message
|
|
|
+ assert_equal 10, m.optional_int32
|
|
|
+ assert_equal true, m.frozen?
|
|
|
+
|
|
|
+ assert_raise(FrozenError) { m.optional_int64 = 2 }
|
|
|
+ assert_raise(FrozenError) { m.optional_uint32 = 3 }
|
|
|
+ assert_raise(FrozenError) { m.optional_uint64 = 4 }
|
|
|
+ assert_raise(FrozenError) { m.optional_bool = true }
|
|
|
+ assert_raise(FrozenError) { m.optional_float = 6.0 }
|
|
|
+ assert_raise(FrozenError) { m.optional_double = 7.0 }
|
|
|
+ assert_raise(FrozenError) { m.optional_string = '8' }
|
|
|
+ assert_raise(FrozenError) { m.optional_bytes = nil }
|
|
|
+ assert_raise(FrozenError) { m.optional_msg = proto_module::TestMessage2.new }
|
|
|
+ assert_raise(FrozenError) { m.optional_enum = :A }
|
|
|
+ assert_raise(FrozenError) { m.repeated_int32 = 1 }
|
|
|
+ assert_raise(FrozenError) { m.repeated_int64 = 2 }
|
|
|
+ assert_raise(FrozenError) { m.repeated_uint32 = 3 }
|
|
|
+ assert_raise(FrozenError) { m.repeated_uint64 = 4 }
|
|
|
+ assert_raise(FrozenError) { m.repeated_bool = true }
|
|
|
+ assert_raise(FrozenError) { m.repeated_float = 6.0 }
|
|
|
+ assert_raise(FrozenError) { m.repeated_double = 7.0 }
|
|
|
+ assert_raise(FrozenError) { m.repeated_string = '8' }
|
|
|
+ assert_raise(FrozenError) { m.repeated_bytes = nil }
|
|
|
+ assert_raise(FrozenError) { m.repeated_msg = proto_module::TestMessage2.new }
|
|
|
+ assert_raise(FrozenError) { m.repeated_enum = :A }
|
|
|
+ end
|
|
|
+
|
|
|
def test_eq
|
|
|
m1 = proto_module::TestMessage.new(:optional_string => 'foo', :repeated_string => ['bar1', 'bar2'])
|
|
|
m2 = proto_module::TestMessage.new(:optional_string => 'foo', :repeated_string => ['bar1', 'bar2'])
|