Add tests for courses

This commit is contained in:
philipp lang 2022-02-23 00:00:40 +01:00
parent 4e9a8a24b8
commit 220187bef4
3 changed files with 34 additions and 11 deletions

View File

@ -113,7 +113,11 @@ class FakeBackend {
});
foreach ($data as $member) {
app(CourseFake::class)->forMember($member['id'], $member['courses'] ?? []);
$courseFake = app(CourseFake::class)
->fetches($member['id'], collect(data_get($member, 'courses', []))->pluck('id')->toArray());
foreach (data_get($member, 'courses', []) as $course) {
$courseFake->fetchesSingle($member['id'], $course);
}
}
return $this;

View File

@ -31,7 +31,7 @@ class CourseFake extends Fake {
return $this;
}
public function fetchesWithHtml(int $memberId): self
public function failsFetchingWithHtml(int $memberId): self
{
Http::fake(function($request) use ($memberId) {
if ($request->url() === "https://nami.dpsg.de/ica/rest/nami/mitglied-ausbildung/filtered-for-navigation/mitglied/mitglied/{$memberId}/flist") {
@ -70,7 +70,7 @@ class CourseFake extends Fake {
return $this;
}
public function fetchesSingleWithHtml(int $memberId, int $courseId): self
public function failsFetchingSingleWithHtml(int $memberId, int $courseId): self
{
Http::fake(function($request) use ($memberId, $courseId) {
if ($request->url() === "https://nami.dpsg.de/ica/rest/nami/mitglied-ausbildung/filtered-for-navigation/mitglied/mitglied/{$memberId}/{$courseId}") {
@ -103,7 +103,7 @@ class CourseFake extends Fake {
});
}
public function deleteSuccessful(int $memberId, int $courseId): void
public function deletesSuccessfully(int $memberId, int $courseId): void
{
Http::fake(function($request) use ($memberId, $courseId) {
if ($request->url() === "https://nami.dpsg.de/ica/rest/nami/mitglied-ausbildung/filtered-for-navigation/mitglied/mitglied/{$memberId}/{$courseId}" && $request->method() === 'DELETE') {
@ -116,7 +116,7 @@ class CourseFake extends Fake {
});
}
public function deleteFailed(int $memberId, int $courseId): void
public function failsDeleting(int $memberId, int $courseId): void
{
Http::fake(function($request) use ($memberId, $courseId) {
if ($request->url() === "https://nami.dpsg.de/ica/rest/nami/mitglied-ausbildung/filtered-for-navigation/mitglied/mitglied/{$memberId}/{$courseId}" && $request->method() === 'DELETE') {
@ -129,7 +129,7 @@ class CourseFake extends Fake {
});
}
public function createFails(int $memberId): void
public function failsCreating(int $memberId): void
{
Http::fake(function($request) use ($memberId) {
if ($request->url() === "https://nami.dpsg.de/ica/rest/nami/mitglied-ausbildung/filtered-for-navigation/mitglied/mitglied/{$memberId}") {
@ -138,7 +138,7 @@ class CourseFake extends Fake {
});
}
public function doesntUpdateWithError(int $memberId, int $courseId, string $error = "Error"): void
public function failsUpdating(int $memberId, int $courseId, string $error = "Error"): void
{
Http::fake(function($request) use ($memberId, $courseId, $error) {
if ($request->url() === "https://nami.dpsg.de/ica/rest/nami/mitglied-ausbildung/filtered-for-navigation/mitglied/mitglied/{$memberId}/{$courseId}" && $request->method() === 'PUT') {

View File

@ -64,7 +64,7 @@ class CourseTest extends TestCase
Auth::success(12345, 'secret');
app(CourseFake::class)
->fetches(11111, [788, 789])
->fetchesSingleWithHtml(11111, 788)
->failsFetchingSingleWithHtml(11111, 788)
->fetchesSingle(11111, ['id' => 789]);
$courses = Nami::login(12345, 'secret')->coursesFor(11111);
@ -75,7 +75,7 @@ class CourseTest extends TestCase
public function test_return_empty_when_course_index_returns_html(): void
{
Auth::success(12345, 'secret');
app(CourseFake::class)->fetchesWithHtml(11111);
app(CourseFake::class)->failsFetchingWithHtml(11111);
$courses = Nami::login(12345, 'secret')->coursesFor(11111);
@ -145,7 +145,7 @@ class CourseTest extends TestCase
{
$this->expectException(NamiException::class);
Auth::success(12345, 'secret');
app(CourseFake::class)->doesntUpdateWithError(123, 999);
app(CourseFake::class)->failsUpdating(123, 999);
Nami::login(12345, 'secret')->updateCourse(123, 999, [
'event_name' => '::event::',
@ -180,7 +180,7 @@ class CourseTest extends TestCase
{
$this->expectException(NamiException::class);
Auth::success(12345, 'secret');
app(CourseFake::class)->createFails(123);
app(CourseFake::class)->failsCreating(123);
Nami::login(12345, 'secret');
Nami::createCourse(123, [
@ -191,4 +191,23 @@ class CourseTest extends TestCase
]);
}
public function test_delete_a_course(): void
{
Auth::success(12345, 'secret');
app(CourseFake::class)->deletesSuccessfully(123, 999);
Nami::login(12345, 'secret')->deleteCourse(123, 999);
app(CourseFake::class)->assertDeleted(123, 999);
}
public function test_shrow_exception_when_deleting_failed(): void
{
$this->expectException(NamiException::class);
Auth::success(12345, 'secret');
app(CourseFake::class)->failsDeleting(123, 999);
Nami::login(12345, 'secret')->deleteCourse(123, 999);
}
}