Skip to content

Commit 8bf64af

Browse files
authored
Merge pull request #12 from netlogix/bugfix/failing-builds
2 parents e7c6fe7 + 2c0ff69 commit 8bf64af

4 files changed

Lines changed: 122 additions & 25 deletions

File tree

.github/workflows/unittests.yml

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,22 +29,26 @@ jobs:
2929
extensions: mbstring, xml, json, zlib, iconv, intl, pdo_sqlite
3030
ini-values: opcache.fast_shutdown=0
3131

32-
- name: "[1/4] Create composer project - Cache composer dependencies"
32+
- name: "[1/5] Create composer project - Cache composer dependencies"
3333
uses: actions/cache@v1
3434
with:
3535
path: ~/.composer/cache
3636
key: php-${{ matrix.php-version }}-flow-${{ matrix.flow-version }}-composer-${{ hashFiles('composer.json') }}
3737
restore-keys: |
3838
php-${{ matrix.php-version }}-flow-${{ matrix.flow-version }}-composer-
3939
php-${{ matrix.php-version }}-flow-
40-
- name: "[2/4] Create composer project - No install"
40+
- name: "[2/5] Create composer project - No install"
4141
run: composer create-project neos/flow-base-distribution ${{ env.FLOW_DIST_FOLDER }} --prefer-dist --no-progress --no-install "^${{ matrix.flow-version }}"
4242

43-
- name: "[3/4] Create composer project - Require behat in compatible version"
43+
- name: "[3/5] Allow neos composer plugin"
44+
run: composer config --no-plugins allow-plugins.neos/composer-plugin true
45+
working-directory: ${{ env.FLOW_DIST_FOLDER }}
46+
47+
- name: "[4/5] Create composer project - Require behat in compatible version"
4448
run: composer require --dev --no-update "neos/behat:@dev"
4549
working-directory: ${{ env.FLOW_DIST_FOLDER }}
4650

47-
- name: "[4/4] Create composer project - Install project"
51+
- name: "[5/5] Create composer project - Install project"
4852
run: composer install
4953
working-directory: ${{ env.FLOW_DIST_FOLDER }}
5054

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
<?php
2+
declare(strict_types=1);
3+
4+
namespace Netlogix\Migrations\Tests\Unit\Domain\Service;
5+
6+
use ArrayObject;
7+
use Neos\Flow\Persistence\Doctrine\Query;
8+
use Neos\Flow\Persistence\QueryInterface;
9+
use Neos\Flow\Persistence\QueryResultInterface;
10+
11+
class ArrayQueryResult implements QueryResultInterface
12+
{
13+
14+
private $result;
15+
private $iterator;
16+
17+
public function __construct(array $result)
18+
{
19+
$this->result = $result;
20+
$this->iterator = (new ArrayObject($result))->getIterator();
21+
}
22+
23+
public function current()
24+
{
25+
return $this->iterator->current();
26+
}
27+
28+
public function next()
29+
{
30+
$this->iterator->next();
31+
}
32+
33+
public function key()
34+
{
35+
return $this->iterator->key();
36+
}
37+
38+
public function valid()
39+
{
40+
return $this->iterator->valid();
41+
}
42+
43+
public function rewind()
44+
{
45+
$this->iterator->rewind();
46+
}
47+
48+
public function offsetExists($offset)
49+
{
50+
return $this->iterator->offsetExists($offset);
51+
}
52+
53+
public function offsetGet($offset)
54+
{
55+
return $this->iterator->offsetGet($offset);
56+
}
57+
58+
public function offsetSet($offset, $value)
59+
{
60+
$this->iterator->offsetSet($offset, $value);
61+
}
62+
63+
public function offsetUnset($offset)
64+
{
65+
$this->iterator->offsetUnset($offset);
66+
}
67+
68+
public function count()
69+
{
70+
return $this->iterator->count();
71+
}
72+
73+
public function getQuery(): QueryInterface
74+
{
75+
return new Query('foo');
76+
}
77+
78+
public function getFirst()
79+
{
80+
reset($this->result);
81+
82+
return current($this->result);
83+
}
84+
85+
public function toArray(): array
86+
{
87+
return $this->result;
88+
}
89+
90+
}

Tests/Unit/Domain/Service/MigrationServiceTest.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ public function Can_Return_UnexecutedMigrations(): void
8686
->willReturn($migrationMock);
8787

8888
$this->migrationStatusRepository->method('findAll')
89-
->willReturn([]);
89+
->willReturn(new ArrayQueryResult([]));
9090

9191
$this->assertCount(2, $this->migrationService->findUnexecutedMigrations());
9292
}
@@ -110,7 +110,7 @@ public function Can_Filter_Executed_Migrations_In_Get_UnexecutedMigrations(): vo
110110
->willReturn('20191001142901');
111111

112112
$this->migrationStatusRepository->method('findAll')
113-
->willReturn([$migrationStatusMock]);
113+
->willReturn(new ArrayQueryResult([$migrationStatusMock]));
114114

115115
$migrations = $this->migrationService->findUnexecutedMigrations();
116116

@@ -137,7 +137,7 @@ public function Can_Return_A_Single_Migration(): void
137137
->willReturn('20191001142901');
138138

139139
$this->migrationStatusRepository->method('findAll')
140-
->willReturn([$migrationStatusMock]);
140+
->willReturn(new ArrayQueryResult([$migrationStatusMock]));
141141

142142
$migration = $this->migrationService->getMigrationByVersion('20191001142901');
143143

@@ -165,7 +165,7 @@ public function Will_Throw_Unknown_Migration_If_Migration_Not_Found(): void
165165
->willReturn('20191001142901');
166166

167167
$this->migrationStatusRepository->method('findAll')
168-
->willReturn([$migrationStatusMock]);
168+
->willReturn(new ArrayQueryResult([$migrationStatusMock]));
169169

170170
$this->migrationService->getMigrationByVersion('1458');
171171
}

phpunit.xml.dist

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,29 @@
11
<?xml version="1.0"?>
2-
<phpunit
3-
beStrictAboutChangesToGlobalState="true"
4-
beStrictAboutOutputDuringTests="true"
5-
convertErrorsToExceptions="true"
6-
convertNoticesToExceptions="true"
7-
convertWarningsToExceptions="true"
8-
timeoutForSmallTests="0">
2+
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3+
beStrictAboutChangesToGlobalState="true"
4+
beStrictAboutOutputDuringTests="true"
5+
convertErrorsToExceptions="true"
6+
convertNoticesToExceptions="true"
7+
convertWarningsToExceptions="true"
8+
timeoutForSmallTests="0"
9+
xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd">
10+
<coverage>
11+
<include>
12+
<directory suffix=".php">./Classes</directory>
13+
</include>
14+
<report>
15+
<clover outputFile="Build/Artifacts/Reports/PhpUnit/clover.xml"/>
16+
<crap4j outputFile="Build/Artifacts/Reports/PhpUnit/crap4j.xml"/>
17+
<html outputDirectory="Build/Artifacts/Reports/PhpUnit/Coverage"/>
18+
</report>
19+
</coverage>
920
<testsuites>
10-
<testsuite name="netlogix/migrations Unit Test">
21+
<testsuite name="Unit">
1122
<directory>./Tests/Unit/</directory>
1223
</testsuite>
1324
</testsuites>
14-
<filter>
15-
<whitelist>
16-
<directory suffix=".php">./Classes</directory>
17-
</whitelist>
18-
</filter>
1925
<logging>
20-
<log type="coverage-html" target="Build/Artifacts/Reports/PhpUnit/Coverage"/>
21-
<log type="coverage-clover" target="Build/Artifacts/Reports/PhpUnit/clover.xml"/>
22-
<log type="coverage-crap4j" target="Build/Artifacts/Reports/PhpUnit/crap4j.xml"/>
23-
<log type="junit" target="Build/Artifacts/Reports/PhpUnit/junit.xml"/>
26+
<junit outputFile="Build/Artifacts/Reports/PhpUnit/junit.xml"/>
2427
</logging>
2528
<php>
2629
<ini name="date.timezone" value="Europe/Berlin"/>

0 commit comments

Comments
 (0)