public function testProcessValidData() { $appendedCustomer = new Customer(); $removedCustomer = new Customer(); $removedCustomer->setGroup($this->entity); $this->form->expects($this->once())->method('setData')->with($this->entity); $this->form->expects($this->once())->method('submit')->with($this->request); $this->request->setMethod('POST'); $this->form->expects($this->once())->method('isValid')->will($this->returnValue(true)); $appendForm = $this->getMockBuilder('Symfony\\Component\\Form\\Form')->disableOriginalConstructor()->getMock(); $appendForm->expects($this->once())->method('getData')->will($this->returnValue([$appendedCustomer])); $this->form->expects($this->at(3))->method('get')->with('appendCustomers')->will($this->returnValue($appendForm)); $removeForm = $this->getMockBuilder('Symfony\\Component\\Form\\Form')->disableOriginalConstructor()->getMock(); $removeForm->expects($this->once())->method('getData')->will($this->returnValue([$removedCustomer])); $this->form->expects($this->at(4))->method('get')->with('removeCustomers')->will($this->returnValue($removeForm)); $this->manager->expects($this->at(0))->method('persist')->with($appendedCustomer); $this->manager->expects($this->at(1))->method('persist')->with($removedCustomer); $this->manager->expects($this->at(2))->method('persist')->with($this->entity); $this->manager->expects($this->once())->method('flush'); $this->assertTrue($this->handler->process($this->entity)); $this->assertEquals($this->entity, $appendedCustomer->getGroup()); $this->assertNull($removedCustomer->getGroup()); }