From 89b319a28c2e1689833bd3e7a6cdbf6e57423794 Mon Sep 17 00:00:00 2001 From: Alban Jubert Date: Sun, 20 Nov 2016 15:12:22 +0100 Subject: [PATCH] Add license. Add gitlab ci configuration. Add single relation assignment test. --- .gitlab-ci.yml | 54 +++++++++++++++++++++++++++++++++++++ LICENSE | 21 +++++++++++++++ tests/SaveRelationsBehaviorTest.php | 10 ++++++- 3 files changed, 84 insertions(+), 1 deletion(-) create mode 100644 .gitlab-ci.yml create mode 100644 LICENSE diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..25d77c6 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,54 @@ +image: tetraweb/php:5.6 + +cache: + key: "$CI_BUILD_NAME_$CI_BUILD_REF_NAME" + untracked: true + paths: + - /root/.composer + +stages: + - build + - test + - deploy + +before_script: + # enable needed php extensions + - docker-php-ext-enable mbstring zip xdebug + # composer update + - composer self-update && composer --version + - composer global require --no-interaction hirak/prestissimo + - composer global require --no-interaction "fxp/composer-asset-plugin:~1.2.0" + - composer global require --no-interaction phpunit/php-code-coverage + - export PATH="$HOME/.composer/vendor/bin:$PATH" + +build: + stage: build + script: + - composer install --dev --prefer-dist --no-interaction + artifacts: + name: "${CI_BUILD_NAME}_${CI_BUILD_REF_NAME}" + expire_in: 1 week + untracked: true + +test: + stage: test + only: + - master + script: + - phpunit --coverage-text --colors=never --coverage-html tests/report + artifacts: + paths: + - tests/report + +deploy report: + stage: deploy + dependencies: + - test + script: + - mv tests/report/ public/ + artifacts: + paths: + - public + expire_in: 30 days + only: + - master diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..b21364c --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 La Haute Société + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/tests/SaveRelationsBehaviorTest.php b/tests/SaveRelationsBehaviorTest.php index ae761c1..84e661f 100644 --- a/tests/SaveRelationsBehaviorTest.php +++ b/tests/SaveRelationsBehaviorTest.php @@ -4,7 +4,7 @@ namespace tests; use lhs\Yii2SaveRelationsBehavior\SaveRelationsBehavior; -use SebastianBergmann\GlobalState\RuntimeException; +use RuntimeException; use tests\models\Company; use tests\models\Link; use tests\models\Project; @@ -419,4 +419,12 @@ class SaveRelationsBehaviorTest extends \PHPUnit_Framework_TestCase $this->assertCount(2, $project->projectLinks, "Project should have 2 links"); } + public function testAssignSingleObjectToHasManyRelationShouldSucceed() + { + $project = new Project(); + $user = User::findOne(1); + $project->users = $user; + $this->assertEquals(1, count($project->users), 'Project should have 1 users after assignment'); + } + }