spec/lib/protobuf/message_spec.rb in protobuf-3.7.0.pre1 vs spec/lib/protobuf/message_spec.rb in protobuf-3.7.0.pre2
- old
+ new
@@ -474,10 +474,29 @@
it 'returns value of set extension field with default' do
message = ::Test::Resource.new(:ext_is_searchable => false)
expect(message.ext_is_searchable!).to be(false)
end
+
+ it 'returns nil for an unset repeated field that has only be read' do
+ message = ::Test::Resource.new
+ expect(message.repeated_enum!).to be_nil
+ message.repeated_enum
+ expect(message.repeated_enum!).to be_nil
+ end
+
+ it 'returns value for an unset repeated field has been read and appended to' do
+ message = ::Test::Resource.new
+ message.repeated_enum << 1
+ expect(message.repeated_enum!).to eq([1])
+ end
+
+ it 'returns value for an unset repeated field has been explicitly set' do
+ message = ::Test::Resource.new
+ message.repeated_enum = [1]
+ expect(message.repeated_enum!).to eq([1])
+ end
end
end
describe '.get_extension_field' do
it 'fetches an extension field by its tag' do
@@ -559,9 +578,34 @@
it 'returns true for set extension field from tag' do
ext_field = :".test.Searchable.ext_is_searchable"
message = ::Test::Resource.new(ext_field => false)
expect(message.field?(100)).to be(true)
+ end
+
+ it 'returns false for repeated field that has been read from' do
+ message = ::Test::Resource.new
+ expect(message.field?(:repeated_enum)).to be(false)
+ message.repeated_enum
+ expect(message.field?(:repeated_enum)).to be(false)
+ end
+
+ it 'returns true for a repeated field that has been read from and appended to' do
+ message = ::Test::Resource.new
+ message.repeated_enum << 1
+ expect(message.field?(:repeated_enum)).to be(true)
+ end
+
+ it 'returns true for a repeated field that has been set with the setter' do
+ message = ::Test::Resource.new
+ message.repeated_enum = [1]
+ expect(message.field?(:repeated_enum)).to be(true)
+ end
+
+ it 'returns false for a repeated field that has been replaced with []' do
+ message = ::Test::Resource.new
+ message.repeated_enum.replace([])
+ expect(message.field?(:repeated_enum)).to be(false)
end
end
describe '.get_field' do
it 'fetches a non-extension field by its tag' do