/** * @depends testChangeStatusAffectsLifetime * * @param Opportunity $opportunity * * @return Opportunity */ public function testCustomerChangeShouldUpdateBothCustomersIfValuable(Opportunity $opportunity) { $em = $this->getEntityManager(); $b2bCustomer = $opportunity->getCustomer(); $this->assertEquals(100, $b2bCustomer->getLifetime()); $newCustomer = new B2bCustomer(); $newCustomer->setName(uniqid('name')); $newCustomer->setDataChannel($opportunity->getDataChannel()); $em->persist($newCustomer); $em->flush(); $this->assertEquals(0, $newCustomer->getLifetime()); $opportunity->setCustomer($newCustomer); $em->persist($opportunity); $em->flush(); $em->refresh($b2bCustomer); $em->refresh($newCustomer); $this->assertEquals(0, $b2bCustomer->getLifetime()); $this->assertEquals(100, $newCustomer->getLifetime()); return $opportunity; }