diff --git a/test/phpunit/WebservicesInvoicesTest.php b/test/phpunit/WebservicesInvoicesTest.php index 20e01595375..a295dbdc64e 100755 --- a/test/phpunit/WebservicesInvoicesTest.php +++ b/test/phpunit/WebservicesInvoicesTest.php @@ -102,6 +102,8 @@ class WebservicesInvoicesTest extends PHPUnit_Framework_TestCase $user=$this->savuser; $langs=$this->savlangs; $db=$this->savdb; + + // create a third_party, needed to create an invoice print __METHOD__."\n"; } @@ -118,11 +120,118 @@ class WebservicesInvoicesTest extends PHPUnit_Framework_TestCase /** - * testWSInvoicesXxx + * testWSInvoicesCreateInvoice * * @return int */ - public function testWSInvoicesXxx() + public function testWSInvoicesCreateInvoice() + { + global $conf,$user,$langs,$db; + $conf=$this->savconf; + $user=$this->savuser; + $langs=$this->savlangs; + $db=$this->savdb; + + $WS_DOL_URL = DOL_MAIN_URL_ROOT.'/webservices/server_invoice.php'; + $WS_METHOD = 'createInvoice'; + $ns='http://www.dolibarr.org/ns/'; + + // Set the WebService URL + print __METHOD__." create nusoap_client for URL=".$WS_DOL_URL."\n"; + $soapclient = new nusoap_client($WS_DOL_URL); + if ($soapclient) + { + $soapclient->soap_defencoding='UTF-8'; + $soapclient->decodeUTF8(false); + } + + $body = array ( + ["id"] => NULL, + ["ref"]=> NULL, + ["ref_ext"]=> "165", + ["thirdparty_id"]=> "209", + ["fk_user_author"] => NULL, + ["fk_user_valid"] => NULL, + ["date"]=> "2015-04-19 20:16:53", + ["date_due"]=> "", + ["date_creation"]=> "", + ["date_validation"]=> "", + ["date_modification"]=> "", + ["type"]=> "", + ["total_net"]=> "36.30", + ["total_vat"]=> "6.00", + ["total"]=> "42.30", + ["payment_mode_id"]=> 50, + ["note_private"]=> "Synchronised from Prestashop", + ["note_public"]=> "", + ["status"]=> "1", + ["close_code"]=> NULL , + ["close_note"]=> NULL, + ["project_id"]=> NULL, + ["lines"] => array( + ["id"] => NULL, + ["type"]=> 0, + ["desc"]=> "Horloge Vinyle Serge", + ["vat_rate"]=> 20, + ["qty"]=> "1", + ["unitprice"]=> "30.000000", + ["total_net"]=> "30.000000", + ["total_vat"]=> "6.00", + ["total"]=> "36.000000", + ["date_start"]=> "", + ["date_end"]=> "", + ["payment_mode_id"]=> "", + ["product_id"]=> "", + ["product_ref"]=> "", + ["product_label"]=> "", + ["product_desc"]=> "" ) + ); + + // Call the WebService method and store its result in $result. + $authentication=array( + 'dolibarrkey'=>$conf->global->WEBSERVICES_KEY, + 'sourceapplication'=>'DEMO', + 'login'=>'admin', + 'password'=>'admin', + 'entity'=>''); + + // Test URL + $result=''; + $parameters = array('authentication'=>$authentication,'invoice'=>$body); + print __METHOD__." call method ".$WS_METHOD."\n"; + try { + $result = $soapclient->call($WS_METHOD,$parameters,$ns,''); + } + catch(SoapFault $exception) + { + echo $exception; + $result=0; + } + if (! $result || ! empty($result['faultstring'])) + { + //var_dump($soapclient); + print $soapclient->error_str; + print "\n
\n"; + print $soapclient->request; + print "\n
\n"; + print $soapclient->response; + print "\n"; + } + + print __METHOD__." result=".$result."\n"; + $this->assertEquals('OK',$result['result']['result_code']); + $this->assertEquals('165', $result['ref_ext']); + + + return $result; + } + + /** + * testWSInvoicesGetInvoice + * + * @return int + */ + public function testWSInvoicesGetInvoice() { global $conf,$user,$langs,$db; $conf=$this->savconf; @@ -153,7 +262,7 @@ class WebservicesInvoicesTest extends PHPUnit_Framework_TestCase // Test URL $result=''; - $parameters = array('authentication'=>$authentication,'id'=>1); + $parameters = array('authentication'=>$authentication,'id'=>NULL,'ref'=>NULL,'ref_ext'=>165); print __METHOD__." call method ".$WS_METHOD."\n"; try { $result = $soapclient->call($WS_METHOD,$parameters,$ns,''); @@ -176,6 +285,116 @@ class WebservicesInvoicesTest extends PHPUnit_Framework_TestCase print __METHOD__." result=".$result."\n"; $this->assertEquals('OK',$result['result']['result_code']); + $this->assertEquals('165', $result['result']['invoice']->ref_ext); + + + return $result; + } + + /** + * testWSInvoicesUpdateInvoice + * + * @return int + */ + public function testWSInvoicesUpdateInvoice() + { + global $conf,$user,$langs,$db; + $conf=$this->savconf; + $user=$this->savuser; + $langs=$this->savlangs; + $db=$this->savdb; + + $WS_DOL_URL = DOL_MAIN_URL_ROOT.'/webservices/server_invoice.php'; + $WS_METHOD = 'updateInvoice'; + $ns='http://www.dolibarr.org/ns/'; + + // Set the WebService URL + print __METHOD__." create nusoap_client for URL=".$WS_DOL_URL."\n"; + $soapclient = new nusoap_client($WS_DOL_URL); + if ($soapclient) + { + $soapclient->soap_defencoding='UTF-8'; + $soapclient->decodeUTF8(false); + } + + // update status to 2 + $body = array ( + ["id"] => NULL, + ["ref"]=> NULL, + ["ref_ext"]=> "165", + ["thirdparty_id"]=> "209", + ["fk_user_author"] => NULL, + ["fk_user_valid"] => NULL, + ["date"]=> "2015-04-19 20:16:53", + ["date_due"]=> "", + ["date_creation"]=> "", + ["date_validation"]=> "", + ["date_modification"]=> "", + ["type"]=> "", + ["total_net"]=> "36.30", + ["total_vat"]=> "6.00", + ["total"]=> "42.30", + ["payment_mode_id"]=> 50, + ["note_private"]=> "Synchronised from Prestashop", + ["note_public"]=> "", + ["status"]=> "2", + ["close_code"]=> NULL , + ["close_note"]=> NULL, + ["project_id"]=> NULL, + ["lines"] => array( + ["id"] => NULL, + ["type"]=> 0, + ["desc"]=> "Horloge Vinyle Serge", + ["vat_rate"]=> 20, + ["qty"]=> "1", + ["unitprice"]=> "30.000000", + ["total_net"]=> "30.000000", + ["total_vat"]=> "6.00", + ["total"]=> "36.000000", + ["date_start"]=> "", + ["date_end"]=> "", + ["payment_mode_id"]=> "", + ["product_id"]=> "", + ["product_ref"]=> "", + ["product_label"]=> "", + ["product_desc"]=> "" ) + ); + + // Call the WebService method and store its result in $result. + $authentication=array( + 'dolibarrkey'=>$conf->global->WEBSERVICES_KEY, + 'sourceapplication'=>'DEMO', + 'login'=>'admin', + 'password'=>'admin', + 'entity'=>''); + + // Test URL + $result=''; + $parameters = array('authentication'=>$authentication,'invoice'=>$body); + print __METHOD__." call method ".$WS_METHOD."\n"; + try { + $result = $soapclient->call($WS_METHOD,$parameters,$ns,''); + } + catch(SoapFault $exception) + { + echo $exception; + $result=0; + } + if (! $result || ! empty($result['faultstring'])) + { + //var_dump($soapclient); + print $soapclient->error_str; + print "\n
\n"; + print $soapclient->request; + print "\n
\n"; + print $soapclient->response; + print "\n"; + } + + print __METHOD__." result=".$result."\n"; + $this->assertEquals('OK',$result['result']['result_code']); + $this->assertEquals('2', $result['result']['invoice']->status); + return $result; }