示例#1
0
 public function testUpdateChildren()
 {
     // --- test load
     $this->createModels(Customer::class, [['name' => 'Frankx', 'surname' => 'Sinatrax']]);
     $this->createModels(Order::class, [['code' => 'a1x', 'shipping' => 'homex', 'customer_id' => 1], ['code' => 'b1x', 'shipping' => 'officex', 'customer_id' => 1]]);
     $source = DataSource::make(Customer::find(1));
     $source['name'] = 'Frank';
     $source['surname'] = 'Sinatra';
     $source['orders.0.code'] = 'a1';
     $source['orders.0.shipping'] = 'home';
     $source['orders.1.code'] = 'b1';
     $source['orders.1.shipping'] = 'office';
     $source->save();
     assertEquals(1, $source['orders.0.customer_id']);
     assertEquals(1, $source['orders.1.customer_id']);
     assertModelArrayEqual([['name' => 'Frank', 'surname' => 'Sinatra']], Customer::all()->toArray());
     assertModelArrayEqual([['code' => 'a1', 'shipping' => 'home', 'customer_id' => 1], ['code' => 'b1', 'shipping' => 'office', 'customer_id' => 1]], Order::all()->toArray());
 }
 public function testUnset()
 {
     $this->createModels(Order::class, $array = [['code' => 'a1', 'shipping' => 'home', 'customer_id' => 1], ['code' => 'b1', 'shipping' => 'office', 'customer_id' => 1]]);
     $collection = Order::all();
     $source = DataSource::make($collection);
     assertInstanceOf(Order::class, $source[0]);
     assertInstanceOf(Order::class, $source[1]);
     assertInstanceOf(Order::class, $collection[0]);
     assertInstanceOf(Order::class, $collection[1]);
     unset($source[0]);
     assertNull($source[0]);
     assertInstanceOf(Order::class, $source[1]);
     assertTrue(!isset($collection[0]));
     assertInstanceOf(Order::class, $collection[1]);
     unset($source[1]);
     assertNull($source[1]);
     assertTrue(!isset($collection[1]));
 }
示例#3
0
 public function testCreateChildren()
 {
     $this->createModels(Order::class, []);
     $this->createModels(Book::class, []);
     // test creation
     $order = new Order();
     $source = Datasource::make($order);
     $source['code'] = 'a1';
     $source['shipping'] = 'home';
     $source['customer_id'] = '1';
     $source['books.0.title'] = 'Happiness';
     $source['books.1.title'] = 'Delight';
     $source->save();
     assertModelArrayEqual([['code' => 'a1', 'shipping' => 'home', 'customer_id' => 1]], Order::all()->toArray());
     assertModelArrayEqual([['title' => 'Happiness'], ['title' => 'Delight']], Book::all()->toArray());
     // repeat
     $source->save();
     assertModelArrayEqual([['code' => 'a1', 'shipping' => 'home', 'customer_id' => 1]], Order::all()->toArray());
     assertModelArrayEqual([['title' => 'Happiness'], ['title' => 'Delight']], Book::all()->toArray());
 }