Example #1
0
 function testSetSaveUpdateData()
 {
     /**
      * Testing saving a new record (order not specified) sets order to highest + 1
      */
     $Item = new Item();
     $data = array('Item' => array('name' => 'Item F'));
     $Item->data = $data;
     $Item->setSaveUpdateData();
     $data['Item']['order'] = 5;
     $this->assertEqual($Item->data, $data);
     /**
      * Test saving new record with order specified, sets Sequence::update array
      */
     $Item->data['Item']['order'] = 3;
     $Item->setSaveUpdateData();
     $expected = array('action' => array('`Item`.`order`' => '`Item`.`order` + 1'), 'conditions' => array('`Item`.`order` >=' => 3));
     $this->assertEqual($Item->Behaviors->Sequence->update, $expected);
     /**
      * Test editing record with new order
      */
     $Item->id = 4;
     $Item->data['Item']['order'] = 1;
     $Item->setSaveUpdateData();
     $expected = array('action' => array('`Item`.`order`' => '`Item`.`order` + 1'), 'conditions' => array(array('`Item`.`order` >=' => 1), array('`Item`.`order` <' => 3)));
     $this->assertEqual($Item->Behaviors->Sequence->update, $expected);
     /**
      * Testing saving a new record (order not specified) sets order to highest + 1
      */
     $GroupedItem = new GroupedItem();
     $data = array('GroupedItem' => array('name' => 'Group 2 Item F', 'group_field' => 2));
     $GroupedItem->data = $data;
     $GroupedItem->setSaveUpdateData();
     $data['GroupedItem']['order'] = 5;
     $this->assertEqual($GroupedItem->data, $data);
     /**
      * Test saving new record with order specified, sets Sequence::update array
      */
     $GroupedItem->data['GroupedItem']['order'] = 3;
     $GroupedItem->setSaveUpdateData();
     $expected = array('action' => array('`GroupedItem`.`order`' => '`GroupedItem`.`order` + 1'), 'conditions' => array('`GroupedItem`.`order` >=' => 3));
     $this->assertEqual($GroupedItem->Behaviors->Sequence->update, $expected);
     /**
      * Test editing record with new order
      */
     $GroupedItem = new GroupedItem();
     $GroupedItem->id = 4;
     $GroupedItem->data['GroupedItem']['order'] = 1;
     $GroupedItem->setSaveUpdateData();
     $expected = array('action' => array('`GroupedItem`.`order`' => '`GroupedItem`.`order` + 1'), 'conditions' => array(array('`GroupedItem`.`order` >=' => 1), array('`GroupedItem`.`order` <' => 3)));
     $this->assertEqual($GroupedItem->Behaviors->Sequence->update, $expected);
     /**
      * Test editing group
      */
     $GroupedItem = new GroupedItem();
     $GroupedItem->id = 2;
     $GroupedItem->data['GroupedItem']['group_field'] = 2;
     $GroupedItem->setSaveUpdateData();
     $expected = array('action' => array('`GroupedItem`.`order`' => '`GroupedItem`.`order` - 1'), 'conditions' => array('`GroupedItem`.`order` >=' => 1));
     $this->assertEqual($GroupedItem->Behaviors->Sequence->update, $expected);
     $expected = array('GroupedItem' => array('group_field' => 2, 'order' => 5));
     $this->assertEqual($GroupedItem->data, $expected);
     /**
      * Testing saving a new record (order not specified) sets order to highest + 1
      */
     $MultiGroupedItem = new MultiGroupedItem();
     $data = array('MultiGroupedItem' => array('name' => 'Group1 1 Group2 1 Item F', 'group_field_1' => 1, 'group_field_2' => 1));
     $MultiGroupedItem->data = $data;
     $MultiGroupedItem->setSaveUpdateData();
     $data['MultiGroupedItem']['order'] = 5;
     $this->assertEqual($MultiGroupedItem->data, $data);
     /**
      * Test saving new record with order specified, sets Sequence::update array
      */
     $MultiGroupedItem->data['MultiGroupedItem']['order'] = 3;
     $MultiGroupedItem->setSaveUpdateData();
     $expected = array('action' => array('`MultiGroupedItem`.`order`' => '`MultiGroupedItem`.`order` + 1'), 'conditions' => array('`MultiGroupedItem`.`order` >=' => 3));
     $this->assertEqual($MultiGroupedItem->Behaviors->Sequence->update, $expected);
     /**
      * Test editing record with new order
      */
     $MultiGroupedItem = new MultiGroupedItem();
     $MultiGroupedItem->id = 4;
     $MultiGroupedItem->data['MultiGroupedItem']['order'] = 1;
     $MultiGroupedItem->setSaveUpdateData();
     $expected = array('action' => array('`MultiGroupedItem`.`order`' => '`MultiGroupedItem`.`order` + 1'), 'conditions' => array(array('`MultiGroupedItem`.`order` >=' => 1), array('`MultiGroupedItem`.`order` <' => 3)));
     $this->assertEqual($MultiGroupedItem->Behaviors->Sequence->update, $expected);
     /**
      * Test editing group
      */
     $MultiGroupedItem = new MultiGroupedItem();
     $MultiGroupedItem->id = 2;
     $MultiGroupedItem->data['MultiGroupedItem']['group_field_1'] = 2;
     $MultiGroupedItem->data['MultiGroupedItem']['group_field_2'] = 2;
     $MultiGroupedItem->setSaveUpdateData();
     $expected = array('action' => array('`MultiGroupedItem`.`order`' => '`MultiGroupedItem`.`order` - 1'), 'conditions' => array('`MultiGroupedItem`.`order` >=' => 1));
     $this->assertEqual($MultiGroupedItem->Behaviors->Sequence->update, $expected);
     $expected = array('MultiGroupedItem' => array('group_field_1' => 2, 'group_field_2' => 2, 'order' => 5));
     $this->assertEqual($MultiGroupedItem->data, $expected);
 }