Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
82 changes: 82 additions & 0 deletions app/Mapper/User.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
<?php

namespace samplemvc\Mapper;

require_once '../../vendor/autoload.php';

use samplemvc\Model\User as UserModel;

//include_once(config/connect.php');

class User
{

public function create($input)
{

$user = new UserModel();

$user->firstName = $input['firstName'];
$user->lastName = $input['lastName'];
$user->email = $input['email'];

//should create domain
$dbhost = "localhost";
$dbname = "user1";
$dbuser = "root";
$dbpass = "Dbtest123";

$conn = new \PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass);

$sql = "INSERT INTO user (firstName,lastName,email) VALUES (:firstName,:lastName,:email)";
$q = $conn->prepare($sql);
$q->execute(array(
':firstName' => $user->firstName,
':lastName' => $user->lastName,
':email' => $user->email
));
$user->id = $conn->lastInsertId();



return $user;
}


public function read($id)
{

$user = new UserModel();
$user->id = $id;

//read this user from db
$dbhost = "localhost";
$dbname = "user1";
$dbuser = "root";
$dbpass = "Dbtest123";

$conn = new \PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass);

$sql = "select id,firstName,lastName,email from user where id=:id";
$q = $conn->prepare($sql);
$q->execute(array(
':id' => $user->id
));

$resultset = $q->fetch(\PDO::FETCH_ASSOC);

if ($q->rowCount() == 0) {
throw new \Exception("User not found.");

} else {
//create user model from resultset

$user->firstName = $resultset['firstName'];
$user->lastName = $resultset['lastName'];
$user->email = $resultset['email'];


return $user;
}
}
}
19 changes: 19 additions & 0 deletions app/Model/User.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<?php

namespace samplemvc\Model;

require_once '../../vendor/autoload.php';

class User
{
public $id;
public $firstName;
public $lastName;
public $email;


/*function __construct()
{
echo "hii";
}*/
}
17 changes: 17 additions & 0 deletions app/config/connect.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?

class Connect
{
public function getconnection()
{
$host = "localhost";
$username = "root";
$password = "Dbtest123";
$db_name = "user1";


$conn = mysql_connect("$host", "$username", "$password") or die("cannot connect to server");
mysql_select_db("$db_name") or die("cannot select db");

}
}
13 changes: 13 additions & 0 deletions app/sample.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<?php

namespace Samplemvc

class sample
{
public function __construct()
{
public $firstname;
public $lastname;
public $email;
}
}
Binary file added build/tools/composer.phar
Binary file not shown.
Binary file added build/tools/phpcs.phar
Binary file not shown.
72,403 changes: 72,403 additions & 0 deletions build/tools/phpunit.phar

Large diffs are not rendered by default.

9 changes: 9 additions & 0 deletions composer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"autoload": {
"psr-4": {
"samplemvc\\": "app"
}
}
}


15 changes: 15 additions & 0 deletions public/index.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?php

require_once '../vendor/autoload.php';



//use samplemvc\Model\User as UserModel;




print_r(new UserModel());

//echo "hii";
//$input = new User();
63 changes: 63 additions & 0 deletions tests/Mapper/UserTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
<?php

namespace samplemvc\Mapper;

require_once '../../vendor/autoload.php';

use samplemvc\Mapper\User as UserMapper;

class UserTest extends \PHPUnit_Extensions_Database_TestCase
{
public function getConnection()
{
$dbhost = "localhost";
$dbname = "user1";
$dbuser = "root";
$dbpass = "Dbtest123";

$pdo = new \PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass);
return $this->createDefaultDBConnection($pdo, $dbname);
}


public function testIsCountIncreased()
{
$this->assertEquals(2, $this->getConnection()->getRowCount('user'), "Pre-Condition");

//add new user
$input=array('firstName'=>'gaurii','lastName'=>'bhapkarr','email'=>'gaurii@bhapkarr.com');
$userMapper=new UserMapper();

$userMapper->create($input);

$this->assertEquals(3, $this->getConnection()->getRowCount('user'), "Inserting failed");

}


public function testCanReadUserById()
{
$userMapper=new UserMapper();
$user=$userMapper->read('1');
$this->assertEquals('gau', $user->firstName);
}



/**
* @expectedException Exception
* @expectedExceptionMessage User not found.
**/
public function testThrowsExceptionOnUserNotPresent()
{
$userMapper=new UserMapper();
$user=$userMapper->read('10');

}


public function getDataSet()
{
return $this->createXMLDataSet(dirname(__FILE__).'/files/user-seed.xml');
}
}
21 changes: 21 additions & 0 deletions tests/Mapper/files/user-seed.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<?xml version="1.0" ?>
<dataset>
<table name="user">
<column>id</column>
<column>firstName</column>
<column>lastName</column>
<column>email</column>
<row>
<value>1</value>
<value>gau</value>
<value>bhapkar</value>
<value>gau@bhapkar.com</value>
</row>
<row>
<value>2</value>
<value>CHAND</value>
<value>bhapkar</value>
<value>gauri@bhapkar.com</value>
</row>
</table>
</dataset>
15 changes: 15 additions & 0 deletions tests/Model/UserTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?php
namespace samplemvc\Model;

require_once '../../vendor/autoload.php';

use samplemvc\Model\User as UserModel;

class UserTest extends \PHPUnit_Framework_TestCase
{
public function testCanCreateObject()
{
$u = new UserModel();
$this->assertInstanceOf('samplemvc\Model\User', $u);
}
}
7 changes: 7 additions & 0 deletions vendor/autoload.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<?php

// autoload.php @generated by Composer

require_once __DIR__ . '/composer' . '/autoload_real.php';

return ComposerAutoloaderInit1a8c5f6a5ae0166be0ca0986028dd4de::getLoader();
Loading