Add tests for courses
This commit is contained in:
parent
4e9a8a24b8
commit
220187bef4
|
@ -113,7 +113,11 @@ class FakeBackend {
|
||||||
});
|
});
|
||||||
|
|
||||||
foreach ($data as $member) {
|
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;
|
return $this;
|
||||||
|
|
|
@ -31,7 +31,7 @@ class CourseFake extends Fake {
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function fetchesWithHtml(int $memberId): self
|
public function failsFetchingWithHtml(int $memberId): self
|
||||||
{
|
{
|
||||||
Http::fake(function($request) use ($memberId) {
|
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") {
|
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;
|
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) {
|
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}") {
|
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) {
|
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') {
|
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) {
|
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') {
|
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) {
|
Http::fake(function($request) use ($memberId) {
|
||||||
if ($request->url() === "https://nami.dpsg.de/ica/rest/nami/mitglied-ausbildung/filtered-for-navigation/mitglied/mitglied/{$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) {
|
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') {
|
if ($request->url() === "https://nami.dpsg.de/ica/rest/nami/mitglied-ausbildung/filtered-for-navigation/mitglied/mitglied/{$memberId}/{$courseId}" && $request->method() === 'PUT') {
|
||||||
|
|
|
@ -64,7 +64,7 @@ class CourseTest extends TestCase
|
||||||
Auth::success(12345, 'secret');
|
Auth::success(12345, 'secret');
|
||||||
app(CourseFake::class)
|
app(CourseFake::class)
|
||||||
->fetches(11111, [788, 789])
|
->fetches(11111, [788, 789])
|
||||||
->fetchesSingleWithHtml(11111, 788)
|
->failsFetchingSingleWithHtml(11111, 788)
|
||||||
->fetchesSingle(11111, ['id' => 789]);
|
->fetchesSingle(11111, ['id' => 789]);
|
||||||
|
|
||||||
$courses = Nami::login(12345, 'secret')->coursesFor(11111);
|
$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
|
public function test_return_empty_when_course_index_returns_html(): void
|
||||||
{
|
{
|
||||||
Auth::success(12345, 'secret');
|
Auth::success(12345, 'secret');
|
||||||
app(CourseFake::class)->fetchesWithHtml(11111);
|
app(CourseFake::class)->failsFetchingWithHtml(11111);
|
||||||
|
|
||||||
$courses = Nami::login(12345, 'secret')->coursesFor(11111);
|
$courses = Nami::login(12345, 'secret')->coursesFor(11111);
|
||||||
|
|
||||||
|
@ -145,7 +145,7 @@ class CourseTest extends TestCase
|
||||||
{
|
{
|
||||||
$this->expectException(NamiException::class);
|
$this->expectException(NamiException::class);
|
||||||
Auth::success(12345, 'secret');
|
Auth::success(12345, 'secret');
|
||||||
app(CourseFake::class)->doesntUpdateWithError(123, 999);
|
app(CourseFake::class)->failsUpdating(123, 999);
|
||||||
|
|
||||||
Nami::login(12345, 'secret')->updateCourse(123, 999, [
|
Nami::login(12345, 'secret')->updateCourse(123, 999, [
|
||||||
'event_name' => '::event::',
|
'event_name' => '::event::',
|
||||||
|
@ -180,7 +180,7 @@ class CourseTest extends TestCase
|
||||||
{
|
{
|
||||||
$this->expectException(NamiException::class);
|
$this->expectException(NamiException::class);
|
||||||
Auth::success(12345, 'secret');
|
Auth::success(12345, 'secret');
|
||||||
app(CourseFake::class)->createFails(123);
|
app(CourseFake::class)->failsCreating(123);
|
||||||
Nami::login(12345, 'secret');
|
Nami::login(12345, 'secret');
|
||||||
|
|
||||||
Nami::createCourse(123, [
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue