From f8f951b8110bb0f736eff99fc1d4914b4d6b4ba7 Mon Sep 17 00:00:00 2001
From: Nestor <npegane@hotmail.com>
Date: Wed, 11 Jul 2018 10:53:34 +0200
Subject: [PATCH] FEAT #7659 Unit test on password controller

---
 test/PasswordControllerTest.php | 68 +++++++++++++++++++++++++++++++++
 1 file changed, 68 insertions(+)
 create mode 100644 test/PasswordControllerTest.php

diff --git a/test/PasswordControllerTest.php b/test/PasswordControllerTest.php
new file mode 100644
index 00000000000..929716e8dd2
--- /dev/null
+++ b/test/PasswordControllerTest.php
@@ -0,0 +1,68 @@
+<?php
+
+/**
+* Copyright Maarch since 2008 under licence GPLv3.
+* See LICENCE.txt file at the root folder for more details.
+* This file is part of Maarch software.
+*
+*/
+
+use PHPUnit\Framework\TestCase;
+
+class PasswordControllerTest extends TestCase
+{
+    public function testGetRules(){
+        $passwordController = new \SrcCore\controllers\PasswordController();
+
+        $environment    = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']);
+        $request        = \Slim\Http\Request::createFromEnvironment($environment);
+
+        $response     = $passwordController->getRules($request, new \Slim\Http\Response());
+        $responseBody = json_decode((string)$response->getBody());
+        $this->assertInternalType('array', $responseBody->rules);
+        $this->assertNotNull($responseBody->rules);
+    }
+
+    public function testUpdateRules(){
+        $passwordController = new \SrcCore\controllers\PasswordController();
+
+        $environment    = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']);
+        $request        = \Slim\Http\Request::createFromEnvironment($environment);
+        $aArgs  =    [
+            'rules' =>  [
+                [
+                    'id'        =>  1,
+                    'value'     =>  5,
+                    'enabled'   =>  'true',
+                ]
+            ]
+        ];
+        $fullRequest = \httpRequestCustom::addContentInBody($aArgs, $request);
+        $response     = $passwordController->updateRules($fullRequest, new \Slim\Http\Response());
+        $responseBody = json_decode((string)$response->getBody());
+        
+        $this->assertSame($responseBody->success, 'success');
+    }
+
+    public function testIsPasswordValid(){
+        $passwordController = new \SrcCore\controllers\PasswordController();
+
+        $environment    = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']);
+        $request        = \Slim\Http\Request::createFromEnvironment($environment);
+
+        $aArgs = [
+            'password'           => 'notValidPassword',
+        ];
+
+        $response     = $passwordController->isPasswordValid($aArgs);
+
+        $this->assertSame($response,false);
+
+        $aArgs = [
+            'password'           => 'validPassword123&',
+        ];
+        
+        $response     = $passwordController->isPasswordValid($aArgs);
+        $this->assertSame($response,true);
+    }
+}
\ No newline at end of file
-- 
GitLab