Ejemplo n.º 1
0
 /**
  * Create a test set of temp data against which subsequent testing
  * can be performed
  *
  * @param string $clientCode
  * @return integer Id of customer created
  */
 public function createTestCustomerAndOrder($clientCode = '')
 {
     $customer = new Customer();
     $customer->address->setAttributes(array('title' => 'Mr', 'forename' => 'A', 'surname' => 'Sample', 'jobTitle' => 'Job', 'company' => 'Company', 'address1' => 'Address1', 'address2' => 'Address2', 'address3' => 'Address3', 'city' => 'City', 'region' => 'Region', 'countryCode' => 'GBR'), false);
     if ($clientCode == 'CLIENT2') {
         $customer->extraField = 'Extra';
     }
     $customer->phone->telno = '0123456789';
     $customer->customerAttributes->field1 = 'CAField1';
     $customer->customerAttributes->field2 = 'CAField2';
     if ($clientCode == 'CLIENT2') {
         $customer->customerAttributes->field3 = 'CAField3';
     }
     $newOrder = new Order(array('field1' => 'Order-Field-1', 'field2' => 'Order-Field-2', 'field3' => 'Order-Field-3'));
     $newOrder->items[] = new Item(array('productCode' => 'CODE1' . ($clientCode == 'CLIENT2' ? 'B' : ''), 'quantity' => 3, 'totalValue' => 3.36, 'field1' => 'Item-Field-1', 'field2' => 'Item-Field-2', 'field3' => 'Item-Field-3'));
     $newOrder->items[] = new Item(array('productCode' => 'CODE2' . ($clientCode == 'CLIENT2' ? 'B' : ''), 'quantity' => 2, 'totalValue' => 4.8, 'field1' => 'Item-Field-1', 'field2' => 'Item-Field-2', 'field3' => 'Item-Field-3'));
     $newOrder->items[] = new Item(array('productCode' => 'POST', 'quantity' => 1, 'totalValue' => 3.98, 'field1' => 'Item-Field-1', 'field2' => 'Item-Field-2', 'field3' => 'Item-Field-3'));
     $customer->orders[] = $newOrder;
     $ok = $customer->saveAll();
     if (!$ok) {
         return false;
     }
     $customerId = $customer->id;
     $fullDataCheck = array();
     $fullDataCheck[$customerId] = $customer->allToArray();
     $fullDataCheck = $this->cleanDatesForComparison($fullDataCheck);
     $resultsPath = \Yii::getAlias('@fangface/tests/data/results');
     $resultsFile = $resultsPath . '/ar-test2-' . strtolower($clientCode) . '.json';
     if (false) {
         // for use when comparing future tests
         file_put_contents($resultsFile, json_encode($fullDataCheck));
         // readable results
         file_put_contents(str_replace('.json', '.txt', $resultsFile), print_r($fullDataCheck, true));
     } else {
         $expectedResult = json_decode(file_get_contents($resultsFile), true);
         //if ($fullDataCheck != $expectedResult) {
         //    file_put_contents(str_replace('.json', '-testing.txt', $resultsFile), print_r($fullDataCheck, true));
         //}
         $this->assertEquals($expectedResult, $fullDataCheck, 'Failed to match createTestCustomerAndOrder() result for ' . strtolower($clientCode));
     }
     return $customerId;
 }