Merged in feature/MAPG-94-introduce-automatic-unit-testing (pull request #146)
Feature/MAPG-94 introduce automatic unit testing
This commit is contained in:
commit
34206cac12
15
bitbucket-pipelines.yml
Normal file
15
bitbucket-pipelines.yml
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
image: php:7.4.7-cli-buster
|
||||||
|
|
||||||
|
pipelines:
|
||||||
|
default:
|
||||||
|
- step:
|
||||||
|
name: Unit Testing
|
||||||
|
caches:
|
||||||
|
- composer
|
||||||
|
artifacts:
|
||||||
|
- vendor/**
|
||||||
|
script:
|
||||||
|
- apt-get update && apt-get install -y unzip
|
||||||
|
- curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
|
||||||
|
- composer install
|
||||||
|
- vendor/bin/phpunit --testdox tests
|
@ -8,7 +8,9 @@
|
|||||||
"symfony/console": "^5.1",
|
"symfony/console": "^5.1",
|
||||||
"phpmailer/phpmailer": "^6.1"
|
"phpmailer/phpmailer": "^6.1"
|
||||||
},
|
},
|
||||||
"require-dev": {},
|
"require-dev": {
|
||||||
|
"phpunit/phpunit": "^9"
|
||||||
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
"psr-4": {
|
"psr-4": {
|
||||||
"MapGuesser\\": "src"
|
"MapGuesser\\": "src"
|
||||||
|
1703
composer.lock
generated
1703
composer.lock
generated
File diff suppressed because it is too large
Load Diff
@ -4,8 +4,8 @@ ENV DEBIAN_FRONTEND noninteractive
|
|||||||
|
|
||||||
# Install Nginx, PHP and further necessary packages
|
# Install Nginx, PHP and further necessary packages
|
||||||
RUN apt update --fix-missing
|
RUN apt update --fix-missing
|
||||||
RUN apt install -y curl git mariadb-client nginx \
|
RUN apt install -y curl git unzip mariadb-client nginx \
|
||||||
php-apcu php-xdebug php7.4-cli php7.4-curl php7.4-fpm php7.4-mbstring php7.4-mysql php7.4-zip
|
php-apcu php-xdebug php7.4-cli php7.4-curl php7.4-fpm php7.4-mbstring php7.4-mysql php7.4-zip php7.4-xml
|
||||||
|
|
||||||
# Configure Nginx with PHP
|
# Configure Nginx with PHP
|
||||||
RUN mkdir -p /run/php
|
RUN mkdir -p /run/php
|
||||||
|
@ -5,7 +5,7 @@ ROOT_DIR=$(dirname $(readlink -f "$0"))/..
|
|||||||
. ${ROOT_DIR}/.env
|
. ${ROOT_DIR}/.env
|
||||||
|
|
||||||
echo "Installing Composer packages..."
|
echo "Installing Composer packages..."
|
||||||
(cd ${ROOT_DIR} && composer install)
|
(cd ${ROOT_DIR} && composer install --no-dev)
|
||||||
|
|
||||||
echo "Installing Yarn packages..."
|
echo "Installing Yarn packages..."
|
||||||
(cd ${ROOT_DIR}/public/static && yarn install)
|
(cd ${ROOT_DIR}/public/static && yarn install)
|
||||||
|
98
tests/Util/Geo/BoundsTest.php
Normal file
98
tests/Util/Geo/BoundsTest.php
Normal file
@ -0,0 +1,98 @@
|
|||||||
|
<?php namespace MapGuesser\Tests\Util\Geo;
|
||||||
|
|
||||||
|
use MapGuesser\Util\Geo\Bounds;
|
||||||
|
use MapGuesser\Util\Geo\Position;
|
||||||
|
use PHPUnit\Framework\TestCase;
|
||||||
|
|
||||||
|
final class BoundsTest extends TestCase
|
||||||
|
{
|
||||||
|
public function testCanBeCreatedEmpty(): void
|
||||||
|
{
|
||||||
|
$bounds = new Bounds();
|
||||||
|
|
||||||
|
$this->assertEquals(90.0, $bounds->getSouthLat());
|
||||||
|
$this->assertEquals(180.0, $bounds->getWestLng());
|
||||||
|
$this->assertEquals(-90.0, $bounds->getNorthLat());
|
||||||
|
$this->assertEquals(-180.0, $bounds->getEastLng());
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testCanBeCreatedWithPosition(): void
|
||||||
|
{
|
||||||
|
$position = new Position(45.25, 18.12);
|
||||||
|
|
||||||
|
$bounds = new Bounds($position);
|
||||||
|
|
||||||
|
$this->assertEquals($position->getLat(), $bounds->getSouthLat());
|
||||||
|
$this->assertEquals($position->getLng(), $bounds->getWestLng());
|
||||||
|
$this->assertEquals($position->getLat(), $bounds->getNorthLat());
|
||||||
|
$this->assertEquals($position->getLng(), $bounds->getEastLng());
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testCanBeCreatedDirectly(): void
|
||||||
|
{
|
||||||
|
$bounds = Bounds::createDirectly(44.12, 7.33, 50.12, 15.11);
|
||||||
|
|
||||||
|
$this->assertEquals(44.12, $bounds->getSouthLat());
|
||||||
|
$this->assertEquals(7.33, $bounds->getWestLng());
|
||||||
|
$this->assertEquals(50.12, $bounds->getNorthLat());
|
||||||
|
$this->assertEquals(15.11, $bounds->getEastLng());
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testExtendingWithOnePositionIsTheSameAsCreatingWithPosition(): void
|
||||||
|
{
|
||||||
|
$position = new Position(45.25, 18.12);
|
||||||
|
|
||||||
|
$bounds1 = new Bounds();
|
||||||
|
$bounds1->extend($position);
|
||||||
|
|
||||||
|
$bounds2 = new Bounds($position);
|
||||||
|
|
||||||
|
$this->assertEquals($bounds1, $bounds2);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testCanBeExtendedWithTwoPositions(): void
|
||||||
|
{
|
||||||
|
$bounds = new Bounds();
|
||||||
|
|
||||||
|
$position1 = new Position(45.25, 18.12);
|
||||||
|
$position2 = new Position(43.15, 19.28);
|
||||||
|
|
||||||
|
$bounds->extend($position1);
|
||||||
|
$bounds->extend($position2);
|
||||||
|
|
||||||
|
$this->assertEquals($position2->getLat(), $bounds->getSouthLat());
|
||||||
|
$this->assertEquals($position1->getLng(), $bounds->getWestLng());
|
||||||
|
$this->assertEquals($position1->getLat(), $bounds->getNorthLat());
|
||||||
|
$this->assertEquals($position2->getLng(), $bounds->getEastLng());
|
||||||
|
|
||||||
|
$bounds = new Bounds();
|
||||||
|
|
||||||
|
$position1 = new Position(43.15, 18.12);
|
||||||
|
$position2 = new Position(45.25, 19.28);
|
||||||
|
|
||||||
|
$bounds->extend($position1);
|
||||||
|
$bounds->extend($position2);
|
||||||
|
|
||||||
|
$this->assertEquals($position1->getLat(), $bounds->getSouthLat());
|
||||||
|
$this->assertEquals($position1->getLng(), $bounds->getWestLng());
|
||||||
|
$this->assertEquals($position2->getLat(), $bounds->getNorthLat());
|
||||||
|
$this->assertEquals($position2->getLng(), $bounds->getEastLng());
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testCanCalculateApproximateArea(): void
|
||||||
|
{
|
||||||
|
$bounds = Bounds::createDirectly(44.12, 7.33, 50.12, 15.11);
|
||||||
|
|
||||||
|
$this->assertEqualsWithDelta(391766.09, $bounds->calculateApproximateArea(), 0.01);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testCanBeConvertedToArray(): void
|
||||||
|
{
|
||||||
|
$bounds = Bounds::createDirectly(44.12, 7.33, 50.12, 15.11);
|
||||||
|
|
||||||
|
$this->assertEquals(
|
||||||
|
['south' => 44.12, 'west' => 7.33, 'north' => 50.12, 'east' => 15.11],
|
||||||
|
$bounds->toArray()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
33
tests/Util/Geo/PositionTest.php
Normal file
33
tests/Util/Geo/PositionTest.php
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
<?php namespace MapGuesser\Tests\Util\Geo;
|
||||||
|
|
||||||
|
use MapGuesser\Util\Geo\Position;
|
||||||
|
use PHPUnit\Framework\TestCase;
|
||||||
|
|
||||||
|
final class PositionTest extends TestCase
|
||||||
|
{
|
||||||
|
public function testCanBeCreatedWithLatAndLng(): void
|
||||||
|
{
|
||||||
|
$position = new Position(45.25, 18.12);
|
||||||
|
|
||||||
|
$this->assertEquals(45.25, $position->getLat());
|
||||||
|
$this->assertEquals(18.12, $position->getLng());
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testCanCalculateDistanceToAnotherPosition(): void
|
||||||
|
{
|
||||||
|
$position1 = new Position(44.12, 7.33);
|
||||||
|
$position2 = new Position(50.12, 15.11);
|
||||||
|
|
||||||
|
$this->assertEqualsWithDelta(888785.73, $position1->calculateDistanceTo($position2), 0.01);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testCanBeConvertedToArray(): void
|
||||||
|
{
|
||||||
|
$position = new Position(45.25, 18.12);
|
||||||
|
|
||||||
|
$this->assertEquals(
|
||||||
|
['lat' => 45.25, 'lng' => 18.12],
|
||||||
|
$position->toArray()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user