From ae72f1b2f0c73ded5277300f0d15914e6e10ecae Mon Sep 17 00:00:00 2001 From: Harald Eilertsen Date: Mon, 10 May 2021 10:45:04 +0200 Subject: Make it possible to list all concerts. --- tests/ConcertTest.php | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'tests') diff --git a/tests/ConcertTest.php b/tests/ConcertTest.php index 96fc72b..ec7bc13 100644 --- a/tests/ConcertTest.php +++ b/tests/ConcertTest.php @@ -168,4 +168,27 @@ final class ConcertTest extends WP_UnitTestCase $this->assertEquals("Revolver", $gig->venue()->name()); } } + + public function testFetchAllConcerts() : void + { + $venue1 = GiglogAdmin_Venue::create("Svene Bedehus", "Svene"); + $venue2 = GiglogAdmin_Venue::create("Rockefeller Music Hall", "Oslo"); + $venue3 = GiglogAdmin_Venue::create("Meieriet", "Sogndal"); + + for ($i = 0; $i < 4; $i++) { + GiglogAdmin_Concert::create('Concert ' . $i, $venue1->id(), '', '', ''); + } + + for ($i = 4; $i < 6; $i++) { + GiglogAdmin_Concert::create('Concert ' . $i, $venue2->id(), '', '', ''); + } + + for ($i = 6; $i < 11; $i++) { + GiglogAdmin_Concert::create('Concert ' . $i, $venue3->id(), '', '', ''); + } + + $gigs = GiglogAdmin_Concert::find_concerts_in(); + + $this->assertEquals(11, count($gigs)); + } } -- cgit v1.2.3 From c65980879a990e6d02a8ab262b014e670f314477 Mon Sep 17 00:00:00 2001 From: Harald Eilertsen Date: Mon, 24 May 2021 18:04:18 +0200 Subject: Add function to generate selection boxes. --- tests/SelectFieldTest.php | 53 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 tests/SelectFieldTest.php (limited to 'tests') diff --git a/tests/SelectFieldTest.php b/tests/SelectFieldTest.php new file mode 100644 index 0000000..1c1a8c2 --- /dev/null +++ b/tests/SelectFieldTest.php @@ -0,0 +1,53 @@ + +// SPDX-FileCopyrightText: 2021 Harald Eilertsen +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +declare(strict_types=1); + +use \EternalTerror\ViewHelpers; + +final class SelectFieldTest extends WP_UnitTestCase +{ + public function testEmptySelectField() + { + $res = ViewHelpers\select_field("fooselect"); + $this->assertStringStartsWith('', $res); + } + + public function testSelectFieldWithOneOption() + { + $res = ViewHelpers\select_field("fooselect", [[42, 'An option']]); + $this->assertStringStartsWith('', $res); + $this->assertStringContainsString('', $res); + } + + public function testSelectFieldWithMultipleOption() + { + $opts = [[42, 'An option'], [666, 'Another option'], ["foo", 'A foo option']]; + + $res = ViewHelpers\select_field("fooselect", $opts); + + $this->assertStringStartsWith('', $res); + $this->assertStringContainsString('', $res); + $this->assertStringContainsString('', $res); + $this->assertStringContainsString('', $res); + } + + public function testSelectFieldWithSelectedOption() + { + $opts = [[42, 'An option'], [666, 'Another option'], ["foo", 'A foo option']]; + + $res = ViewHelpers\select_field("fooselect", $opts, 666); + + $this->assertStringStartsWith('', $res); + $this->assertStringContainsString('', $res); + $this->assertStringContainsString('', $res); + $this->assertStringContainsString('', $res); + } +} -- cgit v1.2.3 From 9694c61f301989cdbbfd9e303e74b30812752cab Mon Sep 17 00:00:00 2001 From: Harald Eilertsen Date: Mon, 24 May 2021 19:33:07 +0200 Subject: Allow custom text for no selection in select_fields. --- tests/SelectFieldTest.php | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'tests') diff --git a/tests/SelectFieldTest.php b/tests/SelectFieldTest.php index 1c1a8c2..fb6c298 100644 --- a/tests/SelectFieldTest.php +++ b/tests/SelectFieldTest.php @@ -22,6 +22,7 @@ final class SelectFieldTest extends WP_UnitTestCase $res = ViewHelpers\select_field("fooselect", [[42, 'An option']]); $this->assertStringStartsWith('', $res); + $this->assertStringContainsString('', $res); $this->assertStringContainsString('', $res); } @@ -33,6 +34,7 @@ final class SelectFieldTest extends WP_UnitTestCase $this->assertStringStartsWith('', $res); + $this->assertStringContainsString('', $res); $this->assertStringContainsString('', $res); $this->assertStringContainsString('', $res); $this->assertStringContainsString('', $res); @@ -46,6 +48,21 @@ final class SelectFieldTest extends WP_UnitTestCase $this->assertStringStartsWith('', $res); + $this->assertStringContainsString('', $res); + $this->assertStringContainsString('', $res); + $this->assertStringContainsString('', $res); + $this->assertStringContainsString('', $res); + } + + public function testSelectFieldWithCustomBlankSelectionText() + { + $opts = [[42, 'An option'], [666, 'Another option'], ["foo", 'A foo option']]; + + $res = ViewHelpers\select_field("fooselect", $opts, 666, "None"); + + $this->assertStringStartsWith('', $res); + $this->assertStringContainsString('', $res); $this->assertStringContainsString('', $res); $this->assertStringContainsString('', $res); $this->assertStringContainsString('', $res); -- cgit v1.2.3 From 72340c709e50a2383a8c651d72bb4396e9477c9a Mon Sep 17 00:00:00 2001 From: Harald Eilertsen Date: Sat, 12 Jun 2021 18:24:37 +0200 Subject: Streamline Concert api. Reduce to one find_concerts function taking a filter to limit the selection. --- tests/ConcertTest.php | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'tests') diff --git a/tests/ConcertTest.php b/tests/ConcertTest.php index ec7bc13..2c747b8 100644 --- a/tests/ConcertTest.php +++ b/tests/ConcertTest.php @@ -106,7 +106,7 @@ final class ConcertTest extends WP_UnitTestCase GiglogAdmin_Concert::create('Concert ' . $i, $venue3->id(), '', '', ''); } - $gigs_in_svene = GiglogAdmin_Concert::find_concerts_in("Svene"); + $gigs_in_svene = GiglogAdmin_Concert::find_concerts([ "city" => "Svene"]); $this->assertEquals(4, count($gigs_in_svene)); while ($gig = array_pop($gigs_in_svene)) { @@ -114,14 +114,14 @@ final class ConcertTest extends WP_UnitTestCase } - $gigs_in_oslo = GiglogAdmin_Concert::find_concerts_in("Oslo"); + $gigs_in_oslo = GiglogAdmin_Concert::find_concerts(["city" => "Oslo"]); $this->assertEquals(2, count($gigs_in_oslo)); while ($gig = array_pop($gigs_in_oslo)) { $this->assertEquals("Oslo", $gig->venue()->city()); } - $gigs_in_sogndal = GiglogAdmin_Concert::find_concerts_in("Sogndal"); + $gigs_in_sogndal = GiglogAdmin_Concert::find_concerts(["city" => "Sogndal"]); $this->assertEquals(5, count($gigs_in_sogndal)); while ($gig = array_pop($gigs_in_sogndal)) { @@ -147,21 +147,21 @@ final class ConcertTest extends WP_UnitTestCase GiglogAdmin_Concert::create('Concert ' . $i, $venue3->id(), '', '', ''); } - $gigs_at_ss = GiglogAdmin_Concert::find_concerts_at($venue1); + $gigs_at_ss = GiglogAdmin_Concert::find_concerts(["venue_id" => $venue1->id()]); $this->assertEquals(4, count($gigs_at_ss)); while ($gig = array_pop($gigs_at_ss)) { $this->assertEquals("Sentrum Scene", $gig->venue()->name()); } - $gigs_at_rmh = GiglogAdmin_Concert::find_concerts_at($venue2); + $gigs_at_rmh = GiglogAdmin_Concert::find_concerts(["venue_id" => $venue2->id()]); $this->assertEquals(2, count($gigs_at_rmh)); while ($gig = array_pop($gigs_at_rmh)) { $this->assertEquals("Rockefeller Music Hall", $gig->venue()->name()); } - $gigs_at_r = GiglogAdmin_Concert::find_concerts_at($venue3); + $gigs_at_r = GiglogAdmin_Concert::find_concerts(["venue_id" => $venue3->id()]); $this->assertEquals(5, count($gigs_at_r)); while ($gig = array_pop($gigs_at_r)) { @@ -187,7 +187,7 @@ final class ConcertTest extends WP_UnitTestCase GiglogAdmin_Concert::create('Concert ' . $i, $venue3->id(), '', '', ''); } - $gigs = GiglogAdmin_Concert::find_concerts_in(); + $gigs = GiglogAdmin_Concert::find_concerts(); $this->assertEquals(11, count($gigs)); } -- cgit v1.2.3 From 82c4a8f2c4e5acd80b813829cecc40f621da3b21 Mon Sep 17 00:00:00 2001 From: Harald Eilertsen Date: Mon, 14 Jun 2021 10:07:55 +0200 Subject: Begin move roles and status field to concerts table. There's no need to have a separate table (concertlogs) for these fields. --- tests/ConcertTest.php | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'tests') diff --git a/tests/ConcertTest.php b/tests/ConcertTest.php index 2c747b8..7edda46 100644 --- a/tests/ConcertTest.php +++ b/tests/ConcertTest.php @@ -86,6 +86,30 @@ final class ConcertTest extends WP_UnitTestCase $this->assertEquals($gig->id(), $fetched_gig->id()); $this->assertEquals($gig->cname(), $fetched_gig->cname()); $this->assertEquals($venue->id(), $fetched_gig->venue()->id()); + $this->assertEquals(GiglogAdmin_Concert::STATUS_NONE, $fetched_gig->status()); + $this->assertEquals([], $fetched_gig->roles()); + } + + public function testSetConcertStatus() : void + { + $venue = GiglogAdmin_Venue::create("a venue"); + $today = date("Y-m-d"); + + $gig = GiglogAdmin_Concert::create( + "a concert123", + $venue->id(), + $today, + "https://example.com/tickets/42", + "https://example.com/events/93"); + + $fetched_gig = GiglogAdmin_Concert::get($gig->id()); + $fetched_gig->set_status( GiglogAdmin_Concert::STATUS_ACCRED_REQ ); + $this->assertEquals( GiglogAdmin_Concert::STATUS_ACCRED_REQ, $fetched_gig->status() ); + + $fetched_gig->save(); + + $fetched_gig_2 = GiglogAdmin_Concert::get($gig->id()); + $this->assertEquals( GiglogAdmin_Concert::STATUS_ACCRED_REQ, $fetched_gig_2->status() ); } public function testOnlyFetchConcertsFromGivenCity() : void -- cgit v1.2.3