function testObject() { $this->assert(Argument::object(\DateTime::class)->accepts(new ExactArgument(new \DateTime()))); $this->assert(Argument::object(\DateTime::class)->accepts(new ObjectArgument(\DateTime::class))); $this->assert(Argument::object(\DateTimeInterface::class)->accepts(new ObjectArgument(\DateTime::class))); $this->assert->not(Argument::object(\DateTime::class)->accepts(new ObjectArgument(\DateTimeInterface::class))); }
function collectsHeadElementsOfItems() { $itemRenderer = Mockster::of(WebRenderer::class); $this->registry->add(Mockster::mock($itemRenderer)); Mockster::stub($itemRenderer->handles(Argument::any()))->will()->return_(true); Mockster::stub($itemRenderer->headElements('foo'))->will()->return_([new Element('foo')]); Mockster::stub($itemRenderer->headElements(Argument::object(\DateTime::class)))->will()->return_([new Element('bar')]); $elements = $this->renderer->headElements(['foo', new \DateTime()]); $this->assert->size($elements, 2); $this->assert((string) $elements[0], '<foo></foo>'); $this->assert((string) $elements[1], '<bar></bar>'); }