From 8f3646a9c93a06f76f6abb31020fdb74b4b1fc59 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Sun, 9 Apr 2023 20:50:33 +0300 Subject: exp: jaeger tracing --- .../tests/Jaeger/ThriftUdpTransportTest.php | 166 +++++++++++++++++++++ 1 file changed, 166 insertions(+) create mode 100644 vendor/jonahgeorge/jaeger-client-php/tests/Jaeger/ThriftUdpTransportTest.php (limited to 'vendor/jonahgeorge/jaeger-client-php/tests/Jaeger/ThriftUdpTransportTest.php') diff --git a/vendor/jonahgeorge/jaeger-client-php/tests/Jaeger/ThriftUdpTransportTest.php b/vendor/jonahgeorge/jaeger-client-php/tests/Jaeger/ThriftUdpTransportTest.php new file mode 100644 index 000000000..abc4e32aa --- /dev/null +++ b/vendor/jonahgeorge/jaeger-client-php/tests/Jaeger/ThriftUdpTransportTest.php @@ -0,0 +1,166 @@ +logger = new StackLogger(); + $this->transport = new ThriftUdpTransport('127.0.0.1', 12345, $this->logger); + } + + public function testisOpenWhenOpen() + { + $this->assertEquals($this->logger->getMessagesCount(), 0); + $this->assertTrue($this->transport->isOpen()); + $this->assertEquals($this->logger->getMessagesCount(), 0); + } + + public function testisOpenWhenClosed() + { + $this->assertEquals($this->logger->getMessagesCount(), 0); + $this->transport->close(); + $this->assertFalse($this->transport->isOpen()); + $this->assertEquals($this->logger->getMessagesCount(), 0); + } + + public function testClose() + { + $this->assertEquals($this->logger->getMessagesCount(), 0); + $this->transport->close(); + + $this->assertEquals($this->logger->getMessagesCount(), 0); + $this->transport->write('hello'); + $this->assertEquals($this->logger->getMessagesCount(), 1); + $this->assertEquals($this->logger->getLastMessage(), 'transport is closed'); + $this->assertEquals($this->logger->getMessagesCount(), 0); + } + + public function testDoubleClose() + { + $this->assertEquals($this->logger->getMessagesCount(), 0); + $this->transport->close(); + $this->assertEquals($this->logger->getMessagesCount(), 0); + $this->transport->close(); + $this->assertEquals($this->logger->getMessagesCount(), 1); + $this->assertEquals( + $this->logger->getLastMessage(), + "can't close empty socket" + ); + } + + public function testException() + { + $this->assertEquals($this->logger->getMessagesCount(), 0); + $this->transport->open(); + $this->assertEquals($this->logger->getMessagesCount(), 0); + + $this->transport->write(str_repeat("some string", 10000)); + + $this->assertEquals($this->logger->getMessagesCount(), 1); + $msg = $this->logger->getLastMessage(); + $pattern = "/socket_write failed: \[code - \d+\] Message too long/"; + + if (method_exists($this, "assertMatchesRegularExpression")) { + $this->assertMatchesRegularExpression($pattern, $msg); + } else { + $this->assertRegExp($pattern, $msg); + } + } + + public function testProtocolVersionIPv4() + { + $config = new Config([ + Config::IP_VERSION => Config::IPV4 + ], "testServiceName"); + + $transport = new ThriftUdpTransport('127.0.0.1', 12345, $this->logger, $config); + + $reflectionTransport = new \ReflectionClass($transport); + $ipProtocolVersionMethod = $reflectionTransport->getMethod("ipProtocolVersion"); + $ipProtocolVersionMethod->setAccessible(true); + + $this->assertEquals(Config::IPV4, $ipProtocolVersionMethod->invoke($transport)); + } + + public function testProtocolVersionIPv6() + { + $config = new Config([ + Config::IP_VERSION => Config::IPV6 + ], "testServiceName"); + + $transport = new ThriftUdpTransport('127.0.0.1', 12345, $this->logger, $config); +// + $reflectionTransport = new \ReflectionClass($transport); + $ipProtocolVersionMethod = $reflectionTransport->getMethod("ipProtocolVersion"); + $ipProtocolVersionMethod->setAccessible(true); +// + $this->assertEquals(Config::IPV6, $ipProtocolVersionMethod->invoke($transport)); + } + + public function testProtocolVersionDefault() + { + $config = new Config([ + ], "testServiceName"); + + $transport = new ThriftUdpTransport('127.0.0.1', 12345, $this->logger, $config); + + $reflectionTransport = new \ReflectionClass($transport); + $ipProtocolVersionMethod = $reflectionTransport->getMethod("ipProtocolVersion"); + $ipProtocolVersionMethod->setAccessible(true); + + $this->assertEquals(Config::IPV4, $ipProtocolVersionMethod->invoke($transport)); + } + + public function testCreateSocket() + { + $transport = $this->getMockBuilder(ThriftUdpTransport::class) + ->disableOriginalConstructor() + ->getMock(); + + $reflectionClass = new \ReflectionClass($transport); + $method = $reflectionClass->getMethod("setLogger"); + $method->setAccessible(true); + $method->invokeArgs($transport, [$this->logger]); + + $method = $reflectionClass->getMethod("createSocket"); + $method->setAccessible(true); + $res = $method->invokeArgs($transport, [Config::IPV6]); + + $this->assertNotFalse($res); + + + $transport = $this->getMockBuilder(ThriftUdpTransport::class) + ->disableOriginalConstructor() + ->getMock(); + + $reflectionClass = new \ReflectionClass($transport); + $method = $reflectionClass->getMethod("setLogger"); + $method->setAccessible(true); + $method->invokeArgs($transport, [$this->logger]); + + $method = $reflectionClass->getMethod("createSocket"); + $method->setAccessible(true); + $res = $method->invokeArgs($transport, [Config::IPV4]); + + $this->assertNotFalse($res); + } +} -- cgit v1.2.3