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);
 | 
						|
	}
 | 
						|
 | 
						|
}
 | 
						|
 |