@@ -1727,4 +1727,89 @@ public function testSetTargetLocation($instance, $formanswer, $expected) {
17271727
17281728 $ this ->integer ((int ) $ output ['locations_id ' ])->isEqualTo ($ expected );
17291729 }
1730+
1731+ public function providerRequestSource () {
1732+ $ testedClassName = $ this ->getTestedClassName ();
1733+
1734+ $ form = $ this ->getForm ();
1735+ yield [
1736+ 'instance ' => $ this ->getTargetTicket ([
1737+ PluginFormcreatorForm::getForeignKeyField () => $ form ->getID (),
1738+ 'source_rule ' => $ testedClassName ::REQUESTSOURCE_FORMCREATOR ,
1739+ 'source_question ' => PluginFormcreatorCommon::getFormcreatorRequestTypeId (),
1740+ ]),
1741+ 'expected ' => PluginFormcreatorCommon::getFormcreatorRequestTypeId ()
1742+ ];
1743+
1744+ $ form = $ this ->getForm ();
1745+ $ user = $ this ->getGlpiCoreItem (User::class, [
1746+ 'name ' => 'user ' . $ this ->getUniqueString (),
1747+ 'password ' => 'password ' ,
1748+ 'password2 ' => 'password ' ,
1749+ 'default_requesttypes_id ' => 2 , // e-mail, see table glpi_requesttypes
1750+ ]);
1751+ $ this ->login ($ user ->fields ['name ' ], 'password ' );
1752+
1753+ yield [
1754+ 'instance ' => $ this ->getTargetTicket ([
1755+ PluginFormcreatorForm::getForeignKeyField () => $ form ->getID (),
1756+ 'source_rule ' => $ testedClassName ::REQUESTSOURCE_NONE
1757+ ]),
1758+ 'expected ' => 2
1759+ ];
1760+
1761+ $ form = $ this ->getForm ();
1762+ $ user = $ this ->getGlpiCoreItem (User::class, [
1763+ 'name ' => 'user ' . $ this ->getUniqueString (),
1764+ 'password ' => 'password ' ,
1765+ 'password2 ' => 'password ' ,
1766+ 'default_requesttypes_id ' => 0 , // unset
1767+ ]);
1768+ $ this ->login ($ user ->fields ['name ' ], 'password ' );
1769+
1770+ yield [
1771+ 'instance ' => $ this ->getTargetTicket ([
1772+ PluginFormcreatorForm::getForeignKeyField () => $ form ->getID (),
1773+ 'source_rule ' => $ testedClassName ::REQUESTSOURCE_NONE ,
1774+ ]),
1775+ 'expected ' => 0 // Unset (see Setup > General > Default values)
1776+ ];
1777+
1778+ $ form = $ this ->getForm ();
1779+ $ ticketTemplate = $ this ->getGlpiCoreItem (
1780+ TicketTemplate::getType (), [
1781+ 'name ' => 'template with predefined request type ' ,
1782+ ]
1783+ );
1784+ $ this ->getGlpiCoreItem (TicketTemplatePredefinedField::getType (), [
1785+ 'tickettemplates_id ' => $ ticketTemplate ->getID (),
1786+ 'num ' => 9 , // RequestType
1787+ 'value ' => 1 , // Helpdesk
1788+ ]);
1789+
1790+ yield [
1791+ 'instance ' => $ this ->getTargetTicket ([
1792+ PluginFormcreatorForm::getForeignKeyField () => $ form ->getID (),
1793+ 'source_rule ' => $ testedClassName ::REQUESTSOURCE_NONE ,
1794+ 'tickettemplates_id ' => $ ticketTemplate ->getID (),
1795+ ]),
1796+ 'expected ' => 1 // Helpdesk (see Setup > General > Default values)
1797+ ];
1798+ }
1799+
1800+ /**
1801+ * @dataProvider providerRequestSource
1802+ */
1803+ public function testRequestSource ($ instance , $ expected ) {
1804+ $ form = PluginFormcreatorForm::getByItem ($ instance );
1805+ $ formAnswer = $ this ->getFormAnswer ([
1806+ PluginFormcreatorForm::getForeignKeyField () => $ form ->getID (),
1807+ ]);
1808+
1809+ $ generatedTargets = $ formAnswer ->targetList ;
1810+ foreach ($ generatedTargets as $ target ) {
1811+ $ output = $ target ->fields ['requesttypes_id ' ];
1812+ $ this ->integer ((int ) $ output )->isEqualTo ($ expected );
1813+ }
1814+ }
17301815}
0 commit comments