public function testRequestFormationWithNewSerial()
 {
     $oConfig = $this->getConfig();
     $oConfig->setConfigParam('aSerials', array('license_key'));
     $oConfig->setConfigParam('sClusterId', array('generated_unique_cluster_id'));
     $iValidNodeTime = oxRegistry::get("oxUtilsDate")->getTime();
     $oConfig->setConfigParam('aServersData', array('server_id1' => array('id' => 'server_id1', 'timestamp' => $iValidNodeTime, 'ip' => '127.0.0.1', 'lastFrontendUsage' => $iValidNodeTime, 'lastAdminUsage' => $iValidNodeTime, 'isValid' => true)));
     // imitating package revision file
     $oConfig->setConfigParam('sShopDir', $this->mockPackageRevisionFile());
     $sEdition = $oConfig->getEdition();
     $sVersion = $oConfig->getVersion();
     $sShopUrl = $oConfig->getShopUrl();
     $sRevision = $oConfig->getRevision();
     $iAdminUsers = $this->getTestConfig()->getShopEdition() == 'EE' ? 6 : 1;
     $sXml = '<?xml version="1.0" encoding="utf-8"?>' . "\n";
     $sXml .= '<olcRequest>';
     $sXml .= '<pVersion>1.1</pVersion>';
     $sXml .= '<keys>';
     $sXml .= '<key>license_key</key>';
     $sXml .= '<key state="new">new_serial</key>';
     $sXml .= '</keys>';
     if ($sRevision) {
         $sXml .= "<revision>{$sRevision}</revision>";
     } else {
         $sXml .= '<revision></revision>';
     }
     $sXml .= '<productSpecificInformation>';
     $sXml .= '<servers>';
     $sXml .= '<server>';
     $sXml .= '<id>server_id1</id>';
     $sXml .= '<ip>127.0.0.1</ip>';
     $sXml .= "<lastFrontendUsage>{$iValidNodeTime}</lastFrontendUsage>";
     $sXml .= "<lastAdminUsage>{$iValidNodeTime}</lastAdminUsage>";
     $sXml .= '</server>';
     $sXml .= '</servers>';
     $sXml .= '<counters>';
     $sXml .= '<counter>';
     $sXml .= '<name>admin users</name>';
     $sXml .= "<value>{$iAdminUsers}</value>";
     $sXml .= '</counter>';
     $sXml .= '<counter>';
     $sXml .= '<name>active admin users</name>';
     $sXml .= "<value>{$iAdminUsers}</value>";
     $sXml .= '</counter>';
     $sXml .= '<counter>';
     $sXml .= '<name>subShops</name>';
     $sXml .= '<value>1</value>';
     $sXml .= '</counter>';
     $sXml .= '</counters>';
     $sXml .= '</productSpecificInformation>';
     $sXml .= '<clusterId>generated_unique_cluster_id</clusterId>';
     $sXml .= "<edition>{$sEdition}</edition>";
     $sXml .= "<version>{$sVersion}</version>";
     $sXml .= "<shopUrl>{$sShopUrl}</shopUrl>";
     $sXml .= '<productId>eShop</productId>';
     $sXml .= '</olcRequest>' . "\n";
     $oCurl = $this->getMock('oxCurl', array('setParameters', 'execute'));
     $oCurl->expects($this->atLeastOnce())->method('setParameters')->with($this->equalTo(array('xmlRequest' => $sXml)));
     $oCurl->expects($this->any())->method('execute')->will($this->returnValue(true));
     /** @var oxCurl $oCurl */
     $oEmailBuilder = oxNew('oxOnlineServerEmailBuilder');
     $oSimpleXml = oxNew('oxSimpleXml');
     $oLicenseCaller = new oxOnlineLicenseCheckCaller($oCurl, $oEmailBuilder, $oSimpleXml);
     $oUserCounter = oxNew('oxUserCounter');
     $oServersManager = oxNew('oxServersManager');
     $oLicenseCheck = new oxOnlineLicenseCheck($oLicenseCaller);
     $oLicenseCheck->setUserCounter($oUserCounter);
     $oLicenseCheck->setServersManager($oServersManager);
     $oLicenseCheck->validateNewSerial('new_serial');
 }
 public function testLog()
 {
     $oResponse = oxNew('oxOnlineLicenseCheckResponse');
     $oResponse->code = 0;
     $oResponse->message = 'ACK';
     $oCaller = $this->getMock('oxOnlineLicenseCheckCaller', array('doRequest'), array(), '', false);
     $oCaller->expects($this->any())->method('doRequest')->will($this->returnValue($oResponse));
     /** @var oxOnlineLicenseCheckCaller $oUserCounter */
     $oLicenseCheck = new oxOnlineLicenseCheck($oCaller);
     $this->setTime(10);
     $oLicenseCheck->validate('validSerial');
     $this->assertEquals(10, $this->getConfig()->getConfigParam('iOlcSuccess'));
 }