expectException(OutOfRangeException::class); self::invokeNonPublicMethod(MockAnalytics::class, 'encodeVersion', '44.45.46'); } public function testSdkAnalyticsSignature() { self::assertEquals( 'BAAJ1uAI', MockAnalytics::sdkAnalyticsSignature() ); } public function testTechVersion() { MockAnalytics::techVersion('12.0'); self::assertEquals( 'BAAJ1uAM', MockAnalytics::sdkAnalyticsSignature() ); MockAnalytics::techVersion('12.0.0'); self::assertEquals( 'BAAJ1uAM', MockAnalytics::sdkAnalyticsSignature() ); MockAnalytics::techVersion('12'); self::assertEquals( 'BAAJ1uM', MockAnalytics::sdkAnalyticsSignature() ); } public function testSdkAnalyticsSignatureWithIntegration() { MockAnalytics::product('B'); // Integrations MockAnalytics::sdkCode('B'); // Laravel MockAnalytics::sdkVersion('2.0.0'); // Laravel SDK version MockAnalytics::techVersion('9.5'); // Laravel version self::assertEquals( 'BBBAACH9', MockAnalytics::sdkAnalyticsSignature() ); } }