test/integration/table/merge_entity_test.rb in azure-0.6.0 vs test/integration/table/merge_entity_test.rb in azure-0.6.1
- old
+ new
@@ -1,113 +1,113 @@
-#-------------------------------------------------------------------------
-# # Copyright (c) Microsoft and contributors. All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#--------------------------------------------------------------------------
-
-require "integration/test_helper"
-require "azure/table/table_service"
-require "azure/core/http/http_error"
-
-describe Azure::Table::TableService do
- describe "#merge_entity" do
- subject { Azure::Table::TableService.new }
- let(:table_name){ TableNameHelper.name }
-
- let(:entity_properties){
- {
- "PartitionKey" => "testingpartition",
- "RowKey" => "abcd1234_existing",
- "CustomStringProperty" => "CustomPropertyValue",
- "CustomIntegerProperty" => 37,
- "CustomBooleanProperty" => true,
- "CustomDateProperty" => Time.now
- }
- }
-
- before {
- subject.create_table table_name
- subject.insert_entity table_name, entity_properties
- @existing_etag = ""
-
- exists = false
- begin
- existing = subject.get_entity table_name, entity_properties["PartitionKey"], entity_properties["RowKey"]
- @existing_etag = existing.etag
- exists = true
- rescue
- end
-
- assert exists, "cannot verify existing record"
- }
-
- after { TableNameHelper.clean }
-
- it "updates an existing entity, merging the properties" do
- etag = subject.merge_entity table_name, {
- "PartitionKey" => entity_properties["PartitionKey"],
- "RowKey" => entity_properties["RowKey"],
- "NewCustomProperty" => "NewCustomValue"
- }
- etag.must_be_kind_of String
- etag.wont_equal @existing_etag
-
- result = subject.get_entity table_name, entity_properties["PartitionKey"], entity_properties["RowKey"]
-
- result.must_be_kind_of Azure::Table::Entity
- result.table.must_equal table_name
- result.properties["PartitionKey"].must_equal entity_properties["PartitionKey"]
- result.properties["RowKey"].must_equal entity_properties["RowKey"]
-
- # retained all existing props
- entity_properties.each { |k,v|
- unless entity_properties[k].class == Time
- result.properties[k].must_equal entity_properties[k]
- else
- result.properties[k].to_i.must_equal entity_properties[k].to_i
- end
- }
-
- # and has the new one
- result.properties["NewCustomProperty"].must_equal "NewCustomValue"
- end
-
- it "errors on a non-existing row key" do
- assert_raises(Azure::Core::Http::HTTPError) do
- entity = entity_properties.dup
- entity["RowKey"] = "this-row-key-does-not-exist"
- subject.merge_entity table_name, entity
- end
- end
-
- it "errors on an invalid table name" do
- assert_raises(Azure::Core::Http::HTTPError) do
- subject.merge_entity "this_table.cannot-exist!", entity_properties
- end
- end
-
- it "errors on an invalid partition key" do
- assert_raises(Azure::Core::Http::HTTPError) do
- entity = entity_properties.dup
- entity["PartitionKey"] = "this/partition_key#is?invalid"
- subject.merge_entity table_name, entity
- end
- end
-
- it "errors on an invalid row key" do
- assert_raises(Azure::Core::Http::HTTPError) do
- entity = entity_properties.dup
- entity["RowKey"] = "this/row_key#is?invalid"
- subject.merge_entity table_name, entity
- end
- end
- end
+#-------------------------------------------------------------------------
+# # Copyright (c) Microsoft and contributors. All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#--------------------------------------------------------------------------
+
+require "integration/test_helper"
+require "azure/table/table_service"
+require "azure/core/http/http_error"
+
+describe Azure::Table::TableService do
+ describe "#merge_entity" do
+ subject { Azure::Table::TableService.new }
+ let(:table_name){ TableNameHelper.name }
+
+ let(:entity_properties){
+ {
+ "PartitionKey" => "testingpartition",
+ "RowKey" => "abcd1234_existing",
+ "CustomStringProperty" => "CustomPropertyValue",
+ "CustomIntegerProperty" => 37,
+ "CustomBooleanProperty" => true,
+ "CustomDateProperty" => Time.now
+ }
+ }
+
+ before {
+ subject.create_table table_name
+ subject.insert_entity table_name, entity_properties
+ @existing_etag = ""
+
+ exists = false
+ begin
+ existing = subject.get_entity table_name, entity_properties["PartitionKey"], entity_properties["RowKey"]
+ @existing_etag = existing.etag
+ exists = true
+ rescue
+ end
+
+ assert exists, "cannot verify existing record"
+ }
+
+ after { TableNameHelper.clean }
+
+ it "updates an existing entity, merging the properties" do
+ etag = subject.merge_entity table_name, {
+ "PartitionKey" => entity_properties["PartitionKey"],
+ "RowKey" => entity_properties["RowKey"],
+ "NewCustomProperty" => "NewCustomValue"
+ }
+ etag.must_be_kind_of String
+ etag.wont_equal @existing_etag
+
+ result = subject.get_entity table_name, entity_properties["PartitionKey"], entity_properties["RowKey"]
+
+ result.must_be_kind_of Azure::Table::Entity
+ result.table.must_equal table_name
+ result.properties["PartitionKey"].must_equal entity_properties["PartitionKey"]
+ result.properties["RowKey"].must_equal entity_properties["RowKey"]
+
+ # retained all existing props
+ entity_properties.each { |k,v|
+ unless entity_properties[k].class == Time
+ result.properties[k].must_equal entity_properties[k]
+ else
+ result.properties[k].to_i.must_equal entity_properties[k].to_i
+ end
+ }
+
+ # and has the new one
+ result.properties["NewCustomProperty"].must_equal "NewCustomValue"
+ end
+
+ it "errors on a non-existing row key" do
+ assert_raises(Azure::Core::Http::HTTPError) do
+ entity = entity_properties.dup
+ entity["RowKey"] = "this-row-key-does-not-exist"
+ subject.merge_entity table_name, entity
+ end
+ end
+
+ it "errors on an invalid table name" do
+ assert_raises(Azure::Core::Http::HTTPError) do
+ subject.merge_entity "this_table.cannot-exist!", entity_properties
+ end
+ end
+
+ it "errors on an invalid partition key" do
+ assert_raises(Azure::Core::Http::HTTPError) do
+ entity = entity_properties.dup
+ entity["PartitionKey"] = "this/partition_key#is?invalid"
+ subject.merge_entity table_name, entity
+ end
+ end
+
+ it "errors on an invalid row key" do
+ assert_raises(Azure::Core::Http::HTTPError) do
+ entity = entity_properties.dup
+ entity["RowKey"] = "this/row_key#is?invalid"
+ subject.merge_entity table_name, entity
+ end
+ end
+ end
end
\ No newline at end of file