From c90e81d56c98c3f0b62b881292702c02cf2ec7b1 Mon Sep 17 00:00:00 2001
From: SASSU Thomas <thomas.sassu5@etu.univ-lorraine.fr>
Date: Tue, 17 Mar 2020 13:23:44 +0100
Subject: [PATCH] Part II test

---
 GamePedia/composer.json                       |  1 +
 GamePedia/composer.lock                       | 52 ++++++++++++++++++-
 GamePedia/php/Faker.php                       | 30 +++++++++++
 .../src/controleurs/ControleurScript.php      | 36 +++++++++++++
 4 files changed, 118 insertions(+), 1 deletion(-)
 create mode 100644 GamePedia/php/Faker.php

diff --git a/GamePedia/composer.json b/GamePedia/composer.json
index 18cb192..d26ee09 100644
--- a/GamePedia/composer.json
+++ b/GamePedia/composer.json
@@ -2,6 +2,7 @@
 	"require":{
 		"illuminate/database": "5.5.*",
 		"illuminate/pagination": ">=5.0",
+		"fzaninotto/faker": "^1.9",
 		"php": ">=7.0",
 		"slim/slim":  "2.*"
 	},
diff --git a/GamePedia/composer.lock b/GamePedia/composer.lock
index 8295e51..f74ae25 100644
--- a/GamePedia/composer.lock
+++ b/GamePedia/composer.lock
@@ -4,7 +4,7 @@
         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
         "This file is @generated automatically"
     ],
-    "content-hash": "cc18e66e95cadfdfa2cb91becd1b4524",
+    "content-hash": "33d3fc0ef69a930fd24a7dd964e150c1",
     "packages": [
         {
             "name": "doctrine/inflector",
@@ -73,6 +73,56 @@
             ],
             "time": "2019-10-30T19:59:35+00:00"
         },
+        {
+            "name": "fzaninotto/faker",
+            "version": "v1.9.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/fzaninotto/Faker.git",
+                "reference": "fc10d778e4b84d5bd315dad194661e091d307c6f"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/fzaninotto/Faker/zipball/fc10d778e4b84d5bd315dad194661e091d307c6f",
+                "reference": "fc10d778e4b84d5bd315dad194661e091d307c6f",
+                "shasum": ""
+            },
+            "require": {
+                "php": "^5.3.3 || ^7.0"
+            },
+            "require-dev": {
+                "ext-intl": "*",
+                "phpunit/phpunit": "^4.8.35 || ^5.7",
+                "squizlabs/php_codesniffer": "^2.9.2"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.9-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Faker\\": "src/Faker/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "François Zaninotto"
+                }
+            ],
+            "description": "Faker is a PHP library that generates fake data for you.",
+            "keywords": [
+                "data",
+                "faker",
+                "fixtures"
+            ],
+            "time": "2019-12-12T13:22:17+00:00"
+        },
         {
             "name": "illuminate/container",
             "version": "v5.5.44",
diff --git a/GamePedia/php/Faker.php b/GamePedia/php/Faker.php
new file mode 100644
index 0000000..ce7c375
--- /dev/null
+++ b/GamePedia/php/Faker.php
@@ -0,0 +1,30 @@
+<?php
+
+require_once dirname (__DIR__) . '/vendor/autoload.php';
+session_start();
+
+use \Slim\Slim as Slim;
+use Illuminate\Database\Capsule\Manager as DB;
+use \gp\controleurs\ControleurPrincipal as ControleurPrincipal;
+use \gp\controleurs\ControleurScript as ControleurScript;
+
+$db = new DB();
+$db->addConnection(parse_ini_file('../conf/conf.ini'));
+
+$db->setAsGlobal();
+$db->bootEloquent();
+
+echo ("<!DOCTYPE html>
+<html>
+    <body>
+        <div>
+            <h1> Faker </h1>
+        </div>");
+$c = new ControleurScript();
+$c->generation();
+echo "<div>";
+echo $c->getLog();
+echo "</div>";
+echo ("</body> 
+</html>");
+
diff --git a/GamePedia/src/controleurs/ControleurScript.php b/GamePedia/src/controleurs/ControleurScript.php
index e6d698e..71e6d15 100644
--- a/GamePedia/src/controleurs/ControleurScript.php
+++ b/GamePedia/src/controleurs/ControleurScript.php
@@ -349,4 +349,40 @@ class ControleurScript
         $time = $time_end - $time_start;
         return $time;
     }
+
+    public function generation(){
+        // use the factory to create a Faker\Generator instance
+        $faker = Faker\Factory::create();
+        if(User::take(50)== null){
+            //all users
+            for($i=0; i<25000; $i++){
+                //fake data
+                $tmp = $faker->name.split(' ');
+                $user['fname'] = $tmp[0];
+                $user['name'] = $tmp[1];
+                $user['adress'] = $faker->adress;
+                $user['email'] = $faker->email;
+                $user['tel'] = $faker->e164PhoneNumber;
+                $user['date'] = $faker->date('Y-m-d','2005-01-01');
+                //insert
+                User::create($user['fname'], $user['name'], $user['email'], $user['adress'], $user['tel'], $user['date']);
+            }
+        }
+        if(Comment::take(50)== null){
+            //all comments
+            for($i=0; i<250000; $i++){
+                //random user
+                $user = User::all()->random(1)->first();
+                //random game
+                $game = Game::all()->random(1)->first();
+                //fake data
+                $title = $user->email;
+                $content = $faker->text(200);
+                $date = $faker->date('Y-m-d', '2015-02-01');
+                //insert comment
+                Comment::create($title, $content, $date);
+            }
+        }
+    }
+
 }
\ No newline at end of file
-- 
GitLab