public function testDiscover() { $eventDispatcher = $this->prophesize(EventDispatcherInterface::class); $socket = $this->prophesize(Socket::class); $multicastFactory = $this->prophesize(MulticastFactory::class); $multicastFactory->createSocket(Argument::exact(Client::MULTICAST_ADDRESS), Argument::type('int'))->willReturn($socket->reveal()); $request = $this->prophesize(RequestInterface::class); $request->getMethod()->willReturn(SearchRequest::METHOD); $request->getHeaders()->willReturn([]); $request->getBody()->willReturn(''); $request->getRequestTarget()->willReturn('*'); $request->getProtocolVersion()->willReturn('1.1'); $requestFactory = $this->prophesize(RequestFactory::class); $requestFactory->createDiscoverRequest(Argument::type(DiscoverOptions::class))->willReturn($request->reveal()); $discoverOptions = $this->prophesize(DiscoverOptions::class); $client = new Client(); $client->setEventDispatcher($eventDispatcher->reveal()); $client->setMulticastFactory($multicastFactory->reveal()); $client->setRequestFactory($requestFactory->reveal()); $client->discover($discoverOptions->reveal()); $socket->sendTo(Argument::type('string'), 0, sprintf('%s:%s', Client::MULTICAST_ADDRESS, Client::MULTICAST_PORT))->shouldHaveBeenCalled(); $socket->recvFrom(Argument::type('int'), MSG_WAITALL, Argument::any())->shouldHaveBeenCalled(); }