public function testCreateDeal()
 {
     //simulate form input
     $post = ['tDeal' => ['Name' => 'Test deal', 'Number' => 'Test deal', 'Note' => 'some text note by deal', 'Date' => date('Y-m-d')]];
     $deal = new tDeal();
     $this->assertTrue($deal->load($post), 'Load POST data');
     $this->assertTrue($deal->save(), 'Create deal');
     $this->assertEquals(1, $deal->delete(), 'Remove just created deal');
 }
 public function testCreateDeal()
 {
     // create raltion data
     $sender = $this->testCreateSender();
     $reciver = $this->testCreateReciver();
     $executor = $this->testCreateExecutor();
     $address_from = $this->testCreateAddress();
     $address_to = $this->testCreateAddress();
     $delivery = $this->testCreateAddress();
     $expense1 = $this->testCreateExpense();
     $expense2 = $this->testCreateExpense();
     $good1 = $this->testCreateGood();
     $good2 = $this->testCreateGood();
     $price1 = $this->testCreatePrice();
     $price2 = $this->testCreatePrice();
     $service1 = $this->testCreateServices();
     $service2 = $this->testCreateServices();
     $transport = $this->testCreateTransport();
     $driver = $this->testCreateResident();
     // check data
     $this->assertEquals('Sender organization', $sender->ShortName, 'Check exists sender data');
     $this->assertEquals('Reciver organization', $reciver->ShortName, 'Check exists reciver data');
     $this->assertEquals('100.0000', $expense1->Cost, 'Check exists expense1 data');
     $this->assertEquals('100.0000', $expense2->Cost, 'Check exists expense2 data');
     // --
     // simulate form input
     $post = ['tDeal' => ['Name' => 'Test deal', 'Number' => 'Test deal', 'Note' => 'some text note by deal', 'Date' => date('Y-m-d')]];
     $deal = new tDeal();
     $this->assertTrue($deal->load($post), 'Load POST data');
     // hasOne
     $deal->link('sender', $sender);
     // it call `$deal->save()`
     $deal->link('reciver', $reciver);
     $deal->link('address_from', $address_from);
     $deal->link('address_to', $address_to);
     // hasMany
     $deal->link('expenses', $expense1);
     $deal->link('expenses', $expense2);
     $price1->link('service', $service1);
     $price2->link('service', $service2);
     $price1->link('delivery', $delivery);
     $price2->link('delivery', $delivery);
     $price1->link('goods', $good1);
     $price1->link('goods', $good2);
     $transport->link('driver', $driver);
     $price1->link('transport', $transport);
     $expense1->link('prices', $price1);
     $expense1->link('prices', $price2);
     $expense1->link('executor', $executor);
     // hasMany
     $deal->link('goods', $good1);
     $deal->link('goods', $good2);
     $this->assertTrue($deal->validate(), 'Validate Deal');
     $this->assertTrue($deal->save(), 'Create deal');
     return $deal;
 }