LDAPContext.php 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. <?php
  2. /**
  3. * @copyright Copyright (c) 2017 Arthur Schiwon <blizzz@arthur-schiwon.de>
  4. *
  5. * @author Arthur Schiwon <blizzz@arthur-schiwon.de>
  6. *
  7. * @license GNU AGPL version 3 or any later version
  8. *
  9. * This program is free software: you can redistribute it and/or modify
  10. * it under the terms of the GNU Affero General Public License as
  11. * published by the Free Software Foundation, either version 3 of the
  12. * License, or (at your option) any later version.
  13. *
  14. * This program is distributed in the hope that it will be useful,
  15. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  16. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  17. * GNU Affero General Public License for more details.
  18. *
  19. * You should have received a copy of the GNU Affero General Public License
  20. * along with this program. If not, see <http://www.gnu.org/licenses/>.
  21. *
  22. */
  23. use Behat\Behat\Context\Context;
  24. use Behat\Gherkin\Node\TableNode;
  25. class LDAPContext implements Context {
  26. use BasicStructure;
  27. protected $configID;
  28. protected $apiUrl;
  29. /**
  30. * @Given /^the response should contain a tag "([^"]*)"$/
  31. */
  32. public function theResponseShouldContainATag($arg1) {
  33. $configID = $this->response->xml()->data[0]->$arg1;
  34. PHPUnit_Framework_Assert::assertInstanceOf(SimpleXMLElement::class, $configID[0]);
  35. }
  36. /**
  37. * @Given /^creating an LDAP configuration at "([^"]*)"$/
  38. */
  39. public function creatingAnLDAPConfigurationAt($apiUrl) {
  40. $this->apiUrl = $apiUrl;
  41. $this->sendingToWith('POST', $this->apiUrl, null);
  42. $configElements = $this->response->xml()->data[0]->configID;
  43. $this->configID = $configElements[0];
  44. }
  45. /**
  46. * @When /^deleting the LDAP configuration$/
  47. */
  48. public function deletingTheLDAPConfiguration() {
  49. $this->sendingToWith('DELETE', $this->apiUrl . '/' . $this->configID, null);
  50. }
  51. /**
  52. * @Given /^the response should contain a tag "([^"]*)" with value "([^"]*)"$/
  53. */
  54. public function theResponseShouldContainATagWithValue($tagName, $expectedValue) {
  55. $data = $this->response->xml()->data[0]->$tagName;
  56. PHPUnit_Framework_Assert::assertEquals($expectedValue, $data[0]);
  57. }
  58. /**
  59. * @When /^getting the LDAP configuration with showPassword "([^"]*)"$/
  60. */
  61. public function gettingTheLDAPConfigurationWithShowPassword($showPassword) {
  62. $this->sendingToWith(
  63. 'GET',
  64. $this->apiUrl . '/' . $this->configID . '?showPassword=' . $showPassword,
  65. null
  66. );
  67. }
  68. /**
  69. * @Given /^setting the LDAP configuration to$/
  70. */
  71. public function settingTheLDAPConfigurationTo(TableNode $configData) {
  72. $this->sendingToWith('PUT', $this->apiUrl . '/' . $this->configID, $configData);
  73. }
  74. }