public function testSetItems() { $this->assertFalse($this->object->setItems(null)); //can't be nothing $this->assertFalse($this->object->setItems('item')); //can't be a string $this->assertFalse($this->object->setItems([])); //can't be empty $break = []; $break[0]['Bork'] = 'bork bork'; $this->assertFalse($this->object->setItems($break)); //missing seller sku $break[0]['SellerSKU'] = 'some sku'; $this->assertFalse($this->object->setItems($break)); //missing quantity $check = parseLog(); $this->assertEquals('Tried to set Items to invalid values', $check[1]); $this->assertEquals('Tried to set Items to invalid values', $check[2]); $this->assertEquals('Tried to set Items to invalid values', $check[3]); $this->assertEquals('Tried to set Items with invalid array', $check[4]); $this->assertEquals('Tried to set Items with invalid array', $check[5]); $i = []; $i[0]['SellerSKU'] = 'SellerSKU'; $i[0]['Quantity'] = 'Quantity'; $i[0]['QuantityInCase'] = 'QuantityInCase'; $i[0]['Condition'] = 'Condition'; $i[1]['SellerSKU'] = 'SellerSKU2'; $i[1]['Quantity'] = 'Quantity2'; $this->assertNull($this->object->setItems($i)); $o = $this->object->getOptions(); $this->assertArrayHasKey('InboundShipmentPlanRequestItems.member.1.SellerSKU', $o); $this->assertEquals('SellerSKU', $o['InboundShipmentPlanRequestItems.member.1.SellerSKU']); $this->assertArrayHasKey('InboundShipmentPlanRequestItems.member.1.Quantity', $o); $this->assertEquals('Quantity', $o['InboundShipmentPlanRequestItems.member.1.Quantity']); $this->assertArrayHasKey('InboundShipmentPlanRequestItems.member.1.QuantityInCase', $o); $this->assertEquals('QuantityInCase', $o['InboundShipmentPlanRequestItems.member.1.QuantityInCase']); $this->assertArrayHasKey('InboundShipmentPlanRequestItems.member.1.Condition', $o); $this->assertEquals('Condition', $o['InboundShipmentPlanRequestItems.member.1.Condition']); $this->assertArrayHasKey('InboundShipmentPlanRequestItems.member.1.SellerSKU', $o); $this->assertEquals('SellerSKU2', $o['InboundShipmentPlanRequestItems.member.2.SellerSKU']); $this->assertArrayHasKey('InboundShipmentPlanRequestItems.member.2.Quantity', $o); $this->assertEquals('Quantity2', $o['InboundShipmentPlanRequestItems.member.2.Quantity']); $i2 = []; $i2[0]['SellerSKU'] = 'NewSellerSKU'; $i2[0]['Quantity'] = 'NewQuantity'; $this->assertNull($this->object->setItems($i2)); //will cause reset $o2 = $this->object->getOptions(); $this->assertArrayHasKey('InboundShipmentPlanRequestItems.member.1.SellerSKU', $o2); $this->assertEquals('NewSellerSKU', $o2['InboundShipmentPlanRequestItems.member.1.SellerSKU']); $this->assertArrayHasKey('InboundShipmentPlanRequestItems.member.1.Quantity', $o2); $this->assertEquals('NewQuantity', $o2['InboundShipmentPlanRequestItems.member.1.Quantity']); $this->assertArrayNotHasKey('InboundShipmentPlanRequestItems.member.1.QuantityInCase', $o2); $this->assertArrayNotHasKey('InboundShipmentPlanRequestItems.member.2.SellerSKU', $o2); $this->assertArrayNotHasKey('InboundShipmentPlanRequestItems.member.2.Quantity', $o2); $this->object->resetItems(); $o3 = $this->object->getOptions(); $this->assertArrayNotHasKey('InboundShipmentPlanRequestItems.member.1.SellerSKU', $o3); $this->assertArrayNotHasKey('InboundShipmentPlanRequestItems.member.1.Quantity', $o3); }