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