/**
* @test
*/
public function prepareDB()
{
global $DB;
$DB->connect();
$entity = new Entity();
$computer = new Computer();
$pfAgent = new PluginFusioninventoryAgent();
$pfTask = new PluginFusioninventoryTask();
$pfTaskjob = new PluginFusioninventoryTaskjob();
$pfIPRange = new PluginFusioninventoryIPRange();
$networkEquipment = new NetworkEquipment();
$networkPort = new NetworkPort();
$printer = new Printer();
$pfNetworkEquipment = new PluginFusioninventoryNetworkEquipment();
// Create entities
$_SESSION['glpiactive_entity'] = 0;
$DB->query("INSERT INTO `glpi_entities`\n (`id`, `name`, `entities_id`, `completename`, `level`)\n VALUES (1, 'ent1', 0, 'Entité racine > ent1', 2)");
$DB->query("INSERT INTO `glpi_entities`\n (`id`, `name`, `entities_id`, `completename`, `level`)\n VALUES (2, 'ent2', 0, 'Entité racine > ent2', 2)");
$DB->query("INSERT INTO `glpi_entities`\n (`id`, `name`, `entities_id`, `completename`, `level`)\n VALUES (3, 'ent1.1', 1, 'Entité racine > ent1 > ent1.1', 3)");
// Create computers + agents
$input = array('entities_id' => 0, 'name' => 'computer1');
$computers_id = $computer->add($input);
$input = array('entities_id' => 0, 'name' => 'computer1', 'version' => '{"INVENTORY":"v2.3.11"}', 'device_id' => 'computer1', 'useragent' => 'FusionInventory-Agent_v2.3.11', 'computers_id' => $computers_id);
$pfAgent->add($input);
// Create Network Equipments
$input = array('name' => 'sw0', 'entities_id' => 0);
$networkEquipment->add($input);
$input = array('entities_id' => 0, 'name' => 'management', 'items_id' => 1, 'itemtype' => 'NetworkEquipment', 'instantiation_type' => 'NetworkPortAggregate', 'NetworkName__ipaddresses' => array('-1' => '10.0.0.10'));
$networkPort->splitInputForElements($input);
$networkPort->add($input);
$networkPort->updateDependencies(1);
$input = array('networkequipments_id' => 1, 'plugin_fusioninventory_configsecurities_id' => 2);
$pfNetworkEquipment->add($input);
$input = array('name' => 'sw1', 'entities_id' => 1);
$networkEquipment->add($input);
$input = array('entities_id' => 1, 'name' => 'management', 'items_id' => 2, 'itemtype' => 'NetworkEquipment', 'instantiation_type' => 'NetworkPortAggregate', 'NetworkName__ipaddresses' => array('-1' => '10.0.0.11'));
$networkPort->splitInputForElements($input);
$networkPort->add($input);
$networkPort->updateDependencies(1);
$input = array('networkequipments_id' => 2, 'plugin_fusioninventory_configsecurities_id' => 2);
$pfNetworkEquipment->add($input);
$input = array('name' => 'sw2', 'entities_id' => 2);
$networkEquipment->add($input);
$input = array('entities_id' => 2, 'name' => 'management', 'items_id' => 3, 'itemtype' => 'NetworkEquipment', 'instantiation_type' => 'NetworkPortAggregate', 'NetworkName__ipaddresses' => array('-1' => '10.0.0.12'));
$networkPort->splitInputForElements($input);
$networkPort->add($input);
$networkPort->updateDependencies(1);
$input = array('networkequipments_id' => 3, 'plugin_fusioninventory_configsecurities_id' => 2);
$pfNetworkEquipment->add($input);
$input = array('name' => 'sw3/1.1', 'entities_id' => 3);
$networkEquipment->add($input);
$input = array('entities_id' => 3, 'name' => 'management', 'items_id' => 4, 'itemtype' => 'NetworkEquipment', 'instantiation_type' => 'NetworkPortAggregate', 'NetworkName__ipaddresses' => array('-1' => '10.0.0.21'));
$networkPort->splitInputForElements($input);
$networkPort->add($input);
$networkPort->updateDependencies(1);
$input = array('networkequipments_id' => 4, 'plugin_fusioninventory_configsecurities_id' => 2);
$pfNetworkEquipment->add($input);
// Create Printers
// Add IPRange
$input = array('entities_id' => 1, 'name' => 'Office', 'ip_start' => '10.0.0.1', 'ip_end' => '10.0.0.254');
$ipranges_id = $pfIPRange->add($input);
// Allow all agents to do network discovery
$query = "UPDATE `glpi_plugin_fusioninventory_agentmodules` " . " SET `is_active`='1' " . " WHERE `modulename`='NETWORKINVENTORY'";
$DB->query($query);
// create task
$input = array('entities_id' => 0, 'name' => 'network inventory', 'is_active' => 1);
$tasks_id = $pfTask->add($input);
// create taskjob
$input = array('plugin_fusioninventory_tasks_id' => $tasks_id, 'entities_id' => 0, 'name' => 'inventory', 'method' => 'networkinventory', 'targets' => '[{"PluginFusioninventoryIPRange":"' . $ipranges_id . '"}]', 'actors' => '[{"PluginFusioninventoryAgent":"1"}]');
$pfTaskjob->add($input);
}