| 
									
										
										
										
											2020-04-12 10:39:52 +00:00
										 |  |  | <?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 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-04-12 11:51:36 +00:00
										 |  |  | include_once __DIR__ . '/../../lib/persistence.inc'; | 
					
						
							| 
									
										
										
										
											2020-04-12 10:39:52 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | /** | 
					
						
							|  |  |  |  * ConfigDataExporter test case. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * @author Roland Gruber | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | class ConfigDataExporterTest extends TestCase { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	public function testExportAsJson() { | 
					
						
							|  |  |  | 		$mainData = array( | 
					
						
							|  |  |  | 			'confMainKey1' => 'val', | 
					
						
							|  |  |  | 			'confMainKey2' => 4, | 
					
						
							|  |  |  | 			'confMainKey3' => '', | 
					
						
							|  |  |  | 		); | 
					
						
							| 
									
										
										
										
											2020-04-19 18:40:40 +00:00
										 |  |  | 		$profileData = array( | 
					
						
							|  |  |  | 			'profile1' => array('ServerURL' => 'myserver'), | 
					
						
							|  |  |  | 			'profile2' => array('ServerURL' => 'myserver2'), | 
					
						
							|  |  |  | 		); | 
					
						
							| 
									
										
										
										
											2020-05-03 08:32:35 +00:00
										 |  |  | 		$accountProfileData = array( | 
					
						
							|  |  |  | 			'profile1' => array('user' => array('default' => array('key' => 'value'))), | 
					
						
							|  |  |  | 			'profile1' => array( | 
					
						
							|  |  |  | 				'user' => array('default' => array('key' => 'value')), | 
					
						
							|  |  |  | 				'group' => array('default' => array('key' => 'value')), | 
					
						
							|  |  |  | 			), | 
					
						
							|  |  |  | 		); | 
					
						
							| 
									
										
										
										
											2020-05-22 19:02:13 +00:00
										 |  |  | 		$accountProfileTemplateData = array( | 
					
						
							|  |  |  | 			'user' => array('default' => array('key' => 'value')), | 
					
						
							|  |  |  | 			'group' => array('default' => array('key' => 'value')), | 
					
						
							|  |  |  | 		); | 
					
						
							| 
									
										
										
										
											2020-05-12 18:58:56 +00:00
										 |  |  | 		$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')), | 
					
						
							|  |  |  | 			)), | 
					
						
							|  |  |  | 		); | 
					
						
							| 
									
										
										
										
											2020-06-17 10:57:18 +00:00
										 |  |  | 		$pdfTemplateData = array( | 
					
						
							|  |  |  | 			'user' => array('default' => array('key' => 'value')), | 
					
						
							|  |  |  | 			'group' => array('default' => array('key' => 'value')), | 
					
						
							|  |  |  | 		); | 
					
						
							|  |  |  | 		$selfServiceData = array( | 
					
						
							|  |  |  | 			'profile1' => array('key' => 'value'), | 
					
						
							|  |  |  | 			'profile2' => array('key' => 'value'), | 
					
						
							|  |  |  | 		); | 
					
						
							| 
									
										
										
										
											2020-04-13 13:40:33 +00:00
										 |  |  | 		$expectedJson = json_encode(array( | 
					
						
							|  |  |  | 			'mainConfig' => $mainData, | 
					
						
							| 
									
										
										
										
											2020-04-19 18:40:40 +00:00
										 |  |  | 			'certificates' => 'certs', | 
					
						
							|  |  |  | 			'serverProfiles' => $profileData, | 
					
						
							| 
									
										
										
										
											2020-05-03 08:32:35 +00:00
										 |  |  | 			'accountProfiles' => $accountProfileData, | 
					
						
							| 
									
										
										
										
											2020-05-22 19:02:13 +00:00
										 |  |  | 			'accountProfileTemplates' => $accountProfileTemplateData, | 
					
						
							| 
									
										
										
										
											2020-05-12 18:58:56 +00:00
										 |  |  | 			'pdfProfiles' => $pdfData, | 
					
						
							| 
									
										
										
										
											2020-06-17 10:57:18 +00:00
										 |  |  | 			'pdfProfileTemplates' => $pdfTemplateData, | 
					
						
							|  |  |  | 			'selfServiceProfiles' => $selfServiceData, | 
					
						
							| 
									
										
										
										
											2020-04-13 13:40:33 +00:00
										 |  |  | 		)); | 
					
						
							| 
									
										
										
										
											2020-04-12 10:39:52 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 		$exporter = $this->getMockBuilder('\LAM\PERSISTENCE\ConfigDataExporter') | 
					
						
							| 
									
										
										
										
											2020-05-03 08:32:35 +00:00
										 |  |  | 			->setMethods(array('_getMainConfigData', '_getCertificates', '_getServerProfiles', | 
					
						
							| 
									
										
										
										
											2020-06-17 10:57:18 +00:00
										 |  |  | 				'_getAccountProfiles', '_getAccountProfileTemplates', '_getPdfProfiles', | 
					
						
							|  |  |  | 				'_getPdfProfileTemplates', '_getSelfServiceProfiles')) | 
					
						
							| 
									
										
										
										
											2020-04-12 10:39:52 +00:00
										 |  |  | 			->getMock(); | 
					
						
							|  |  |  | 		$exporter->method('_getMainConfigData')->willReturn($mainData); | 
					
						
							| 
									
										
										
										
											2020-04-13 13:40:33 +00:00
										 |  |  | 		$exporter->method('_getCertificates')->willReturn('certs'); | 
					
						
							| 
									
										
										
										
											2020-04-19 18:40:40 +00:00
										 |  |  | 		$exporter->method('_getServerProfiles')->willReturn($profileData); | 
					
						
							| 
									
										
										
										
											2020-05-03 08:32:35 +00:00
										 |  |  | 		$exporter->method('_getAccountProfiles')->willReturn($accountProfileData); | 
					
						
							| 
									
										
										
										
											2020-05-22 19:02:13 +00:00
										 |  |  | 		$exporter->method('_getAccountProfileTemplates')->willReturn($accountProfileTemplateData); | 
					
						
							| 
									
										
										
										
											2020-05-12 18:58:56 +00:00
										 |  |  | 		$exporter->method('_getPdfProfiles')->willReturn($pdfData); | 
					
						
							| 
									
										
										
										
											2020-06-17 10:57:18 +00:00
										 |  |  | 		$exporter->method('_getPdfProfileTemplates')->willReturn($pdfTemplateData); | 
					
						
							|  |  |  | 		$exporter->method('_getSelfServiceProfiles')->willReturn($selfServiceData); | 
					
						
							| 
									
										
										
										
											2020-04-12 10:39:52 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 		$json = $exporter->exportAsJson(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		$this->assertEquals($expectedJson, $json); | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 |