diff options
-rw-r--r-- | giglogadmin.php | 1 | ||||
-rw-r--r-- | includes/concert.php | 5 | ||||
-rw-r--r-- | includes/roles.php | 12 | ||||
-rw-r--r-- | tests/ConcertTest.php | 25 |
4 files changed, 43 insertions, 0 deletions
diff --git a/giglogadmin.php b/giglogadmin.php index c35c470..dec54a7 100644 --- a/giglogadmin.php +++ b/giglogadmin.php @@ -34,6 +34,7 @@ if ( !class_exists( 'GiglogAdmin_Plugin' ) ) { require_once __DIR__ . '/includes/admin/helpfiles/instr_reviewers.php'; require_once __DIR__ . '/includes/admin/helpfiles/instr_photog.php'; require_once __DIR__ . '/includes/view-helpers/select_field.php'; + require_once __DIR__ . '/includes/roles.php'; class GiglogAdmin_Plugin { diff --git a/includes/concert.php b/includes/concert.php index 6257fab..db8d68a 100644 --- a/includes/concert.php +++ b/includes/concert.php @@ -274,6 +274,11 @@ if ( !class_exists('GiglogAdmin_Concert') ) { { return $this->roles; } + + public function assign_role( int $role, string $username ) : void + { + $this->roles[$role] = $username; + } } } ?> diff --git a/includes/roles.php b/includes/roles.php new file mode 100644 index 0000000..dbbedd2 --- /dev/null +++ b/includes/roles.php @@ -0,0 +1,12 @@ +<?php + +if ( ! class_exists( 'GiglogAdmin_Roles' ) ) +{ + class GiglogAdmin_Roles + { + public const PHOTO1 = 0; + public const PHOTO2 = 1; + public const TEXT1 = 2; + public const TEXT2 = 3; + } +} diff --git a/tests/ConcertTest.php b/tests/ConcertTest.php index 77b1ed3..0bf345c 100644 --- a/tests/ConcertTest.php +++ b/tests/ConcertTest.php @@ -133,6 +133,31 @@ final class ConcertTest extends WP_UnitTestCase $this->assertEquals( GiglogAdmin_Concert::STATUS_ACCRED_REQ, $fetched_gig_2->status() ); } + public function testAssignConcertRoles() : 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"); + + $gig->assign_role( GiglogAdmin_Roles::PHOTO1, 'user1' ); + $this->assertEquals( [ GiglogAdmin_Roles::PHOTO1 => 'user1' ], $gig->roles() ); + + $gig->save(); + + var_dump($gig); + + $fetched_gig = GiglogAdmin_Concert::get( $gig->id() ); + global $wpdb; + $wpdb->print_error(); + $this->assertEquals( [ GiglogAdmin_Roles::PHOTO1 => 'user1' ], $fetched_gig->roles() ); + } + public function testOnlyFetchConcertsFromGivenCity() : void { $gigs_in_svene = GiglogAdmin_Concert::find_concerts([ "city" => "Svene"]); |