public function testMeasureWhenSetNewVariableWithTags() { $expectedVariableValue = 123; $expectedTagsNames = array('tag1', 'tag2'); $expectedTagsValues = array('value1', 'value2'); $gaugeMock = $this->getMockBuilder('\\Prometheus\\Gauge')->disableOriginalConstructor()->getMock(); $gaugeMock->expects($this->once())->method('set')->with($expectedVariableValue, $expectedTagsValues); $this->collectorRegistryMock->expects($this->once())->method('getGauge')->with(self::TEST_NAMESPACE, self::TEST_VARIABLE_NAME)->willThrowException(new MetricNotFoundException()); $this->collectorRegistryMock->expects($this->once())->method('registerGauge')->with(self::TEST_NAMESPACE, self::TEST_VARIABLE_NAME, '', $expectedTagsNames)->willReturn($gaugeMock); $this->collector->setTags(array('tag1' => 'value1', 'tag2' => 'value2')); $this->collector->measure(self::TEST_VARIABLE_NAME, $expectedVariableValue); $this->collector->flush(); }