Skip to content

Commit

Permalink
Merge pull request selahattinunlu#27 from mahmutbayri/feature/add-php…
Browse files Browse the repository at this point in the history
…unit-tests

Implement phpunit.
  • Loading branch information
selahattinunlu committed Jun 23, 2019
2 parents a118414 + 06b9262 commit bdc6246
Show file tree
Hide file tree
Showing 7 changed files with 193 additions and 4 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
/vendor
/build
composer.lock
9 changes: 9 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
dist: trusty
language: php
php:
- 5.6
- 7.0
install:
- travis_retry composer install --no-interaction --prefer-source
script:
- phpunit --coverage-text --coverage-clover=coverage.clover
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
# Laravel & Lumen API Query Builder Package

[![Build Status](https://travis-ci.org/mahmutbayri/laravel-api-query-builder.svg?branch=master)](https://travis-ci.org/mahmutbayri/laravel-api-query-builder)

### English

[1. Introduction](https://github.com/selahattinunlu/laravel-api-query-builder/wiki/Introduction)
Expand Down
18 changes: 14 additions & 4 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,24 @@
],
"require": {
"php": ">=5.4",
"illuminate/support": ">=5.0.0",
"illuminate/database": ">=5.0.0",
"illuminate/http": ">=5.0.0"
"illuminate/support": "5.0.*|5.1.*|5.2.*|5.3.*|5.4.*",
"illuminate/database": "5.0.*|5.1.*|5.2.*|5.3.*|5.4.*",
"illuminate/http": "5.0.*|5.1.*|5.2.*|5.3.*|5.4.*"
},
"require-dev": {
"phpunit/phpunit": "~4.0|~5.0"
},
"require-dev": {},
"autoload": {
"psr-4": {
"Unlu\\Laravel\\Api\\": "src"
}
},
"autoload-dev": {
"psr-4": {
"Tests\\": "tests/"
}
},
"scripts": {
"phpunit": "./vendor/bin/phpunit"
}
}
30 changes: 30 additions & 0 deletions phpunit.xml.dist
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<phpunit backupGlobals="false"
backupStaticAttributes="false"
bootstrap="vendor/autoload.php"
colors="true"
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
processIsolation="false"
stopOnFailure="false">
<testsuites>
<testsuite name="Application Test Suite">
<directory suffix="Test.php">./tests</directory>
</testsuite>
</testsuites>
<filter>
<whitelist>
<directory suffix=".php">./src</directory>
</whitelist>
</filter>
<php>
</php>
<logging>
<log type="tap" target="build/report.tap"/>
<log type="junit" target="build/report.junit.xml"/>
<log type="coverage-html" target="build/coverage" charset="UTF-8" yui="true" highlight="true"/>
<log type="coverage-text" target="build/coverage.txt"/>
<log type="coverage-clover" target="build/logs/clover.xml"/>
</logging>
</phpunit>
19 changes: 19 additions & 0 deletions tests/BaseTestCase.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<?php

namespace Tests;

class BaseTestCase extends \PHPUnit_Framework_TestCase
{
protected function assertArrayContainsArray($needle, $haystack)
{
foreach ($needle as $key => $val) {
$this->assertArrayHasKey($key, $haystack);

if (is_array($val)) {
$this->assertArrayContainsArray($val, $haystack[$key]);
} else {
$this->assertEquals($val, $haystack[$key]);
}
}
}
}
116 changes: 116 additions & 0 deletions tests/UriParserTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
<?php

namespace Tests;

use Illuminate\Http\Request;
use Unlu\Laravel\Api\UriParser;

class UriParserTest extends BaseTestCase
{
/**
* @test
*/
public function it_gets_query_parameter()
{
$uriParser = $this->getUriParser();

$expected = [
'type' => 'Basic',
'key' => 'some-param',
'operator' => '=',
'value' => 'some-param-value'
];

$this->assertEquals($expected, $uriParser->queryParameter('some-param'));
}

/**
* @test
*/
public function it_gets_constant_parameters()
{
$uriParser = $this->getUriParser();

$constants = [
'order_by',
'group_by',
'limit',
'page',
'columns',
'includes',
'appends',
];

$this->assertArrayContainsArray($constants, $uriParser->constantParameters());
}

/**
* @test
*/
public function it_gets_where_parameters()
{
$uriParser = $this->getUriParser();

$expected = [
[
'type' => 'Basic',
'key' => 'some-param',
'operator' => '=',
'value' => 'some-param-value'
]
];

$this->assertEquals($expected, $uriParser->whereParameters());
}

/**
* @test
*/
public function it_checks_has_query_uri()
{
$uriParser = $this->getUriParser();
$this->assertEquals('some-param=some-param-value', $uriParser->hasQueryUri());
}

/**
* @test
*/
public function it_gets_query_uri()
{
$uriParser = $this->getUriParser();
$this->assertEquals('some-param=some-param-value', $uriParser->getQueryUri());
}

/**
* @test
*/
public function it_checks_has_query_parameters()
{
$uriParser = $this->getUriParser();
$this->assertTrue($uriParser->hasQueryParameters());
}

/**
* @test
*/
public function it_checks_has_query_parameter()
{
$uriParser = $this->getUriParser();
$this->assertTrue($uriParser->hasQueryParameter('some-param'));
}

/**
* @param array $params
* @return UriParser
*/
protected function getUriParser($params = null)
{
if(is_null($params)) {
$params = ['some-param' => 'some-param-value'];
}

$request = Request::create('/some-uri', 'GET', $params);

return new UriParser($request);
}
}

0 comments on commit bdc6246

Please sign in to comment.