@@ -1051,4 +1051,34 @@ public function testValuesArray(ConstantArrayType $type, ConstantArrayType $expe
1051
1051
$ this ->assertSame ($ expectedType ->getNextAutoIndexes (), $ actualType ->getNextAutoIndexes ());
1052
1052
}
1053
1053
1054
+ public function testFindTypeAndMethodNames (): void
1055
+ {
1056
+ $ classStringArray = new ConstantArrayType ([
1057
+ new ConstantIntegerType (0 ),
1058
+ new ConstantIntegerType (1 ),
1059
+ ], [
1060
+ new ConstantStringType (Closure::class, true ),
1061
+ new ConstantStringType ('bind ' ),
1062
+ ]);
1063
+ $ objectArray = new ConstantArrayType ([
1064
+ new ConstantIntegerType (0 ),
1065
+ new ConstantIntegerType (1 ),
1066
+ ], [
1067
+ new ObjectType (Closure::class, null , $ this ->createReflectionProvider ()->getClass (Closure::class)),
1068
+ new ConstantStringType ('bind ' ),
1069
+ ]);
1070
+
1071
+ $ classStringResult = $ classStringArray ->findTypeAndMethodNames ();
1072
+ $ objectResult = $ objectArray ->findTypeAndMethodNames ();
1073
+
1074
+ $ this ->assertCount (1 , $ classStringResult );
1075
+ $ this ->assertCount (1 , $ objectResult );
1076
+ $ this ->assertInstanceOf (ConstantStringType::class, $ classStringResult [0 ]->getType ());
1077
+ $ this ->assertInstanceOf (ObjectType::class, $ objectResult [0 ]->getType ());
1078
+ $ this ->assertSame ('bind ' , $ classStringResult [0 ]->getMethod ());
1079
+ $ this ->assertSame ('bind ' , $ objectResult [0 ]->getMethod ());
1080
+ $ this ->assertSame (TrinaryLogic::createYes (), $ classStringResult [0 ]->getCertainty ());
1081
+ $ this ->assertSame (TrinaryLogic::createYes (), $ objectResult [0 ]->getCertainty ());
1082
+ }
1083
+
1054
1084
}
0 commit comments