示例#1
0
 public function testCanInsertAFieldIntoAPositionImmediatelyAfterAnExistingField()
 {
     // Insert a field after the first field
     $this->assertInstanceOf('Dewdrop\\Fields\\FieldInterface', $this->fields->insertAfter('second', 'visible'));
     $this->assertCount(5, $this->fields);
     $this->assertTrue($this->fields->has('visible', $visiblePosition));
     $this->assertSame(0, $visiblePosition);
     $this->assertTrue($this->fields->has('second', $secondPosition));
     $this->assertSame(1, $secondPosition);
     $this->assertTrue($this->fields->has('sortable', $sortablePosition));
     $this->assertSame(2, $sortablePosition);
     $this->assertTrue($this->fields->has('editable', $editablePosition));
     $this->assertSame(3, $editablePosition);
     $this->assertTrue($this->fields->has('filterable', $filterablePosition));
     $this->assertSame(4, $filterablePosition);
     // Insert a field after some field in the middle
     $this->assertInstanceOf('Dewdrop\\Fields\\FieldInterface', $this->fields->insertAfter('fourth', 'sortable'));
     $this->assertCount(6, $this->fields);
     $this->assertTrue($this->fields->has('visible', $visiblePosition));
     $this->assertSame(0, $visiblePosition);
     $this->assertTrue($this->fields->has('second', $secondPosition));
     $this->assertSame(1, $secondPosition);
     $this->assertTrue($this->fields->has('sortable', $sortablePosition));
     $this->assertSame(2, $sortablePosition);
     $this->assertTrue($this->fields->has('fourth', $sortablePosition));
     $this->assertSame(3, $sortablePosition);
     $this->assertTrue($this->fields->has('editable', $editablePosition));
     $this->assertSame(4, $editablePosition);
     $this->assertTrue($this->fields->has('filterable', $filterablePosition));
     $this->assertSame(5, $filterablePosition);
     // Insert a field after the last field
     $this->assertInstanceOf('Dewdrop\\Fields\\FieldInterface', $this->fields->insertAfter('last', 'filterable'));
     $this->assertCount(7, $this->fields);
     $this->assertTrue($this->fields->has('visible', $visiblePosition));
     $this->assertSame(0, $visiblePosition);
     $this->assertTrue($this->fields->has('second', $secondPosition));
     $this->assertSame(1, $secondPosition);
     $this->assertTrue($this->fields->has('sortable', $sortablePosition));
     $this->assertSame(2, $sortablePosition);
     $this->assertTrue($this->fields->has('fourth', $sortablePosition));
     $this->assertSame(3, $sortablePosition);
     $this->assertTrue($this->fields->has('editable', $editablePosition));
     $this->assertSame(4, $editablePosition);
     $this->assertTrue($this->fields->has('filterable', $filterablePosition));
     $this->assertSame(5, $filterablePosition);
     $this->assertTrue($this->fields->has('last', $filterablePosition));
     $this->assertSame(6, $filterablePosition);
 }