105 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
			
		
		
	
	
			105 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
| <?php
 | |
| namespace LAM\PERSISTENCE;
 | |
| use PHPUnit\Framework\TestCase;
 | |
| /*
 | |
| 
 | |
|  This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/)
 | |
|  Copyright (C) 2020  Roland Gruber
 | |
| 
 | |
|  This program is free software; you can redistribute it and/or modify
 | |
|  it under the terms of the GNU General Public License as published by
 | |
|  the Free Software Foundation; either version 2 of the License, or
 | |
|  (at your option) any later version.
 | |
| 
 | |
|  This program is distributed in the hope that it will be useful,
 | |
|  but WITHOUT ANY WARRANTY; without even the implied warranty of
 | |
|  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | |
|  GNU General Public License for more details.
 | |
| 
 | |
|  You should have received a copy of the GNU General Public License
 | |
|  along with this program; if not, write to the Free Software
 | |
|  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 | |
| 
 | |
|  */
 | |
| 
 | |
| include_once __DIR__ . '/../../lib/persistence.inc';
 | |
| 
 | |
| /**
 | |
|  * ConfigDataExporter test case.
 | |
|  *
 | |
|  * @author Roland Gruber
 | |
|  */
 | |
| class ConfigDataExporterTest extends TestCase {
 | |
| 
 | |
| 	public function testExportAsJson() {
 | |
| 		$mainData = array(
 | |
| 			'confMainKey1' => 'val',
 | |
| 			'confMainKey2' => 4,
 | |
| 			'confMainKey3' => '',
 | |
| 		);
 | |
| 		$profileData = array(
 | |
| 			'profile1' => array('ServerURL' => 'myserver'),
 | |
| 			'profile2' => array('ServerURL' => 'myserver2'),
 | |
| 		);
 | |
| 		$accountProfileData = array(
 | |
| 			'profile1' => array('user' => array('default' => array('key' => 'value'))),
 | |
| 			'profile1' => array(
 | |
| 				'user' => array('default' => array('key' => 'value')),
 | |
| 				'group' => array('default' => array('key' => 'value')),
 | |
| 			),
 | |
| 		);
 | |
| 		$accountProfileTemplateData = array(
 | |
| 			'user' => array('default' => array('key' => 'value')),
 | |
| 			'group' => array('default' => array('key' => 'value')),
 | |
| 		);
 | |
| 		$pdfData = array(
 | |
| 			'profile1' => array('structures' => array(
 | |
| 				'user' => array(
 | |
| 					'default' => array('key' => 'value'))
 | |
| 			)),
 | |
| 			'profile1' => array('structures' => array(
 | |
| 				'user' => array('default' => array('key' => 'value')),
 | |
| 				'group' => array('default' => array('key' => 'value')),
 | |
| 			)),
 | |
| 		);
 | |
| 		$pdfTemplateData = array(
 | |
| 			'user' => array('default' => array('key' => 'value')),
 | |
| 			'group' => array('default' => array('key' => 'value')),
 | |
| 		);
 | |
| 		$selfServiceData = array(
 | |
| 			'profile1' => array('key' => 'value'),
 | |
| 			'profile2' => array('key' => 'value'),
 | |
| 		);
 | |
| 		$expectedJson = json_encode(array(
 | |
| 			'mainConfig' => $mainData,
 | |
| 			'certificates' => 'certs',
 | |
| 			'serverProfiles' => $profileData,
 | |
| 			'accountProfiles' => $accountProfileData,
 | |
| 			'accountProfileTemplates' => $accountProfileTemplateData,
 | |
| 			'pdfProfiles' => $pdfData,
 | |
| 			'pdfProfileTemplates' => $pdfTemplateData,
 | |
| 			'selfServiceProfiles' => $selfServiceData,
 | |
| 		));
 | |
| 
 | |
| 		$exporter = $this->getMockBuilder('\LAM\PERSISTENCE\ConfigDataExporter')
 | |
| 			->setMethods(array('_getMainConfigData', '_getCertificates', '_getServerProfiles',
 | |
| 				'_getAccountProfiles', '_getAccountProfileTemplates', '_getPdfProfiles',
 | |
| 				'_getPdfProfileTemplates', '_getSelfServiceProfiles'))
 | |
| 			->getMock();
 | |
| 		$exporter->method('_getMainConfigData')->willReturn($mainData);
 | |
| 		$exporter->method('_getCertificates')->willReturn('certs');
 | |
| 		$exporter->method('_getServerProfiles')->willReturn($profileData);
 | |
| 		$exporter->method('_getAccountProfiles')->willReturn($accountProfileData);
 | |
| 		$exporter->method('_getAccountProfileTemplates')->willReturn($accountProfileTemplateData);
 | |
| 		$exporter->method('_getPdfProfiles')->willReturn($pdfData);
 | |
| 		$exporter->method('_getPdfProfileTemplates')->willReturn($pdfTemplateData);
 | |
| 		$exporter->method('_getSelfServiceProfiles')->willReturn($selfServiceData);
 | |
| 
 | |
| 		$json = $exporter->exportAsJson();
 | |
| 
 | |
| 		$this->assertEquals($expectedJson, $json);
 | |
| 	}
 | |
| 
 | |
| }
 | |
| 
 |