فهرست منبع

Zend_Service_Amazon: Added setValues() mutator to SimpleDb/Attribute class.

Added mutator and fixed testBatchPutAttributes() UTs, which were testing 
whether replace argument to batchPutAttributes() works.



git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@23273 44c647ce-9c0f-0410-b52a-842ac1e357ba
torio 15 سال پیش
والد
کامیت
00809e4848
2فایلهای تغییر یافته به همراه26 افزوده شده و 9 حذف شده
  1. 8 0
      library/Zend/Service/Amazon/SimpleDb/Attribute.php
  2. 18 9
      tests/Zend/Service/Amazon/SimpleDb/OnlineTest.php

+ 8 - 0
library/Zend/Service/Amazon/SimpleDb/Attribute.php

@@ -97,4 +97,12 @@ class Zend_Service_Amazon_SimpleDb_Attribute
             $this->_values[] = $value;
         }
     }
+
+    public function setValues($values)
+    {
+        if (!is_array($values)) {
+            $values = array($values);
+        }
+        $this->_values = $values;
+    }
 }

+ 18 - 9
tests/Zend/Service/Amazon/SimpleDb/OnlineTest.php

@@ -222,6 +222,8 @@ class Zend_Service_Amazon_SimpleDb_OnlineTest extends PHPUnit_Framework_TestCase
 
             $this->assertEquals(array(), $this->_amazon->getAttributes($domainName, $itemName1));
             $this->_amazon->batchPutAttributes($items, $domainName, $replace);
+            $this->_wait();
+
             $result = $this->_amazon->getAttributes($domainName, $itemName1, $attributeName1);
 
             $this->assertTrue(array_key_exists($attributeName1, $result));
@@ -238,28 +240,35 @@ class Zend_Service_Amazon_SimpleDb_OnlineTest extends PHPUnit_Framework_TestCase
             $this->assertEquals($attributeValue3, current($result[$attributeName3]->getValues()));
             $this->assertTrue(array_key_exists($attributeName4, $result));
             $this->assertEquals($attributeName4, $result[$attributeName4]->getName());
-            $this->assertEquals(2, $result[$attributeName4]->getValues());
+            $this->assertEquals(2, count($result[$attributeName4]->getValues()));
             $this->assertEquals(array($attributeValue4, $attributeValue5), $result[$attributeName4]->getValues());
 
             // Test replace
-            $oldItems = $items;
             $newAttributeValue1 = 'newValue1';
             $newAttributeValue4 = 'newValue4';
-            $items[$itemName1][$attributeName1] = array($newAttributeValue1);
-            $items[$itemName2][$attributeName4] = array($newAttributeValue4);
+            $items[$itemName1][$attributeName1]->setValues(array($newAttributeValue1));
+            $items[$itemName2][$attributeName4]->setValues(array($newAttributeValue4));
 
             $this->_amazon->batchPutAttributes($items, $domainName, $replace);
+            $this->_wait();
+
             $result = $this->_amazon->getAttributes($domainName, $itemName1, $attributeName1);
-            $this->assertEquals($oldItems[$itemName1][$attributeName1], $this->_amazon->getAttributes($domainName, $itemName1, $attributeName1));
-            $this->assertEquals($oldItems[$itemName2][$attributeName4], $this->_amazon->getAttributes($domainName, $itemName2, $attributeName4));
-            $this->assertEquals($oldItems[$itemName1], $this->_amazon->getAttributes($domainName, $itemName1));
+            $this->assertEquals(array($newAttributeValue1, $attributeValue1), $result[$attributeName1]->getValues());
+
+            $result = $this->_amazon->getAttributes($domainName, $itemName2, $attributeName4);
+            $this->assertEquals(array($newAttributeValue4, $attributeValue4, $attributeValue5), $result[$attributeName4]->getValues());
 
             $replace[$itemName1][$attributeName1] = true;
             $replace[$itemName2][$attributeName4] = true;
 
             $this->_amazon->batchPutAttributes($items, $domainName, $replace);
-            $this->assertEquals($items[$itemName1][$attributeName1], $this->_amazon->getAttributes($domainName, $itemName1, $attributeName1));
-            $this->assertEquals($items[$itemName2][$attributeName4], $this->_amazon->getAttributes($domainName, $itemName2, $attributeName4));
+            $this->_wait();
+
+            $result = $this->_amazon->getAttributes($domainName, $itemName1, $attributeName1);
+            $this->assertEquals($items[$itemName1][$attributeName1], $result[$attributeName1]);
+
+            $result = $this->_amazon->getAttributes($domainName, $itemName2, $attributeName4);
+            $this->assertEquals($items[$itemName2][$attributeName4], $result[$attributeName4]);
             $this->assertEquals($items[$itemName1], $this->_amazon->getAttributes($domainName, $itemName1));
 
             $this->_amazon->deleteDomain($domainName);