--- /dev/null
+<?php
+
+class SugarApplianceTest extends AlloServeurTest {
+
+ const APPLIANCE_REFERENCE = "IP/CD01_2014_4567890";
+
+ /** @var SugarAppliance */
+ private $sugarAppliance;
+
+ public function setUp(){
+ parent::setUp();
+
+ $pdoContactManager = new PdoContractManager();
+ $contract = new Contract();
+
+ $contract->number = "IP/CD01_2";
+ $contract->start_date = "2002-12-20";
+ $contract->end_date= "2032-12-12";
+ $contract->state = '^encours^';
+ $contract->sugar_id = "XYS";
+ $contract->customer_id = 12;
+
+ $contract_id = $pdoContactManager->createContract($contract);
+
+
+ $appliance = new Appliance();
+
+ $appliance->reference = self::APPLIANCE_REFERENCE;
+ $appliance->contract_id = $contract_id;
+ $appliance->uuid = "ijk";
+
+ $pdoApplianceManager = new PdoApplianceManager();
+ $appliance_id = $pdoApplianceManager->createAppliance($appliance);
+
+ $pdoAppliancesVersions = new PdoApplianceVersionManager();
+ $applianceVersion = new ApplianceVersion();
+ $applianceVersion->appliance_id = $appliance_id;
+ $applianceVersion->version_id = 12;
+ $applianceVersion->creation_date = date("Y-m-d H:i:s");
+ $applianceVersion->message = "toto";
+ $applianceVersion->is_valider = true;
+ $applianceVersion->is_valide = true;
+ $applianceVersion->nature = ApplianceVersion::NATURE_CREATION;
+ $pdoAppliancesVersions->edit($applianceVersion);
+
+ $sugarConnector = $this->getMockBuilder("SugarConnector")->disableOriginalConstructor()->getMock();
+ $sugarConnector->expects($this->any())->method("getInfosModule")->willReturn(json_encode("true"));
+ $appliance_infos['id'] = '12';
+ $sugarConnector->expects($this->any())->method("updateOrCreateEntryModule")->willReturn(json_encode($appliance_infos));
+
+ $opportunity_info['entry_list'][0]['id'] = 42;
+ $opportunity_info['entry_list'][0]['name_value_list']['date_closed']['value'] = 12;
+ $opportunity_info['entry_list'][0]['name_value_list']['date_opened_c']['value'] = 12;
+ $opportunity_info['entry_list'][0]['name_value_list']['name']['value'] = 12;
+ $opportunity_info['entry_list'][0]['name_value_list']['type_exploitation_c']['value'] = 12;
+ $opportunity_info['entry_list'][0]['name_value_list']['liste_hebergement_c']['value'] = 12;
+
+ $sugarConnector->expects($this->any())->method("getRelationships")->willReturn(json_encode($opportunity_info));
+
+
+ /** @var SugarConnector $sugarConnector */
+ $this->sugarAppliance = new SugarAppliance($sugarConnector);
+ }
+
+ public function testCreateOpportunityNoContrat(){
+
+ $pdoContactManager = new PdoContractManager();
+ $contract = $pdoContactManager->getContractByNumber("IP/CD01_2");
+ $contract->state = '^resilie^';
+ $pdoContactManager->updateContract($contract);
+
+ $this->setExpectedException("Exception","Contrat de maintenance inexistant ou invalide pour cette instance.");
+ $this->sugarAppliance->createOpportunity(self::APPLIANCE_REFERENCE);
+ }
+
+ public function testCreateOpportunity(){
+ $this->sugarAppliance->createOpportunity(self::APPLIANCE_REFERENCE);
+ }
+
+}
\ No newline at end of file