diff options
-rw-r--r-- | includes/admin/views/giglog_admin_page.php | 19 | ||||
-rw-r--r-- | includes/concert.php | 8 | ||||
-rw-r--r-- | tests/ConcertTest.php | 49 |
3 files changed, 65 insertions, 11 deletions
diff --git a/includes/admin/views/giglog_admin_page.php b/includes/admin/views/giglog_admin_page.php index f344b0d..870e361 100644 --- a/includes/admin/views/giglog_admin_page.php +++ b/includes/admin/views/giglog_admin_page.php @@ -329,17 +329,20 @@ if ( !class_exists( 'GiglogAdmin_AdminPage' ) ) { //header("Refresh: 1; URL=$url2"); //reload page } - if(isset($_POST['newconcert'])) - { - IF (empty($_POST['cname']) || empty($_POST['selectvenueadmin']) || empty($_POST['cdate']) || empty($_POST['ticket']) || empty($_POST['eventurl'])) + if(isset($_POST['newconcert'])) { + if (empty($_POST['cname']) || empty($_POST['selectvenueadmin']) || empty($_POST['cdate']) || empty($_POST['ticket']) || empty($_POST['eventurl'])) { echo '<script language="javascript">alert("You are missing a value, concert was not created"); </script>'; - else - { - $ret = GiglogAdmin_Concert::create($_POST['cname'], $_POST['selectvenueadmin'], $_POST['cdate'], $_POST['ticket'], $_POST['eventurl']); - if ($ret!='dup') echo '<script language="javascript">alert("Yey, concert created"); </script>'; - else echo '<script language="javascript">alert("Nay, concert was duplicated"); </script>'; + } + else { + if (GiglogAdmin_Concert::create($_POST['cname'], $_POST['selectvenueadmin'], $_POST['cdate'], $_POST['ticket'], $_POST['eventurl'])) { + echo '<script language="javascript">alert("Yey, concert created"); </script>'; + } + else { + echo '<script language="javascript">alert("Nay, concert was duplicated"); </script>'; + } } } + if(isset($_POST['editconcert'])) { IF (empty($_POST['cname']) || empty($_POST['selectvenueadmin']) || empty($_POST['cdate']) || empty($_POST['ticket']) || empty($_POST['eventurl'])) diff --git a/includes/concert.php b/includes/concert.php index 37e8fe3..22fc13d 100644 --- a/includes/concert.php +++ b/includes/concert.php @@ -51,7 +51,7 @@ if ( !class_exists('GiglogAdmin_Concert') ) { } } - static function check_duplicate($cname, $venue, $cdate, $ticketlink, $eventlink) + private static function check_duplicate($cname, $venue, $cdate, $ticketlink, $eventlink) { global $wpdb; @@ -62,8 +62,10 @@ if ( !class_exists('GiglogAdmin_Concert') ) { return ('new'); } + public static function create($cname, $venue, $cdate, $ticketlink, $eventlink) - { $c = GiglogAdmin_Concert::check_duplicate($cname, $venue, $cdate, $ticketlink, $eventlink); + { + $c = GiglogAdmin_Concert::check_duplicate($cname, $venue, $cdate, $ticketlink, $eventlink); if ($c=='new') { $attrs = new stdClass(); @@ -102,7 +104,7 @@ if ( !class_exists('GiglogAdmin_Concert') ) { . ' CONCERT NAME ' . $cname . ', VENUE ID ' . $venue . ', CONCERTDATE ' . $cdate); - return('dup'); + return NULL; } } diff --git a/tests/ConcertTest.php b/tests/ConcertTest.php new file mode 100644 index 0000000..82bdc9a --- /dev/null +++ b/tests/ConcertTest.php @@ -0,0 +1,49 @@ +<?php declare(strict_types=1); +// SPDX-FileCopyrightText: 2021 Andrea Chirulescu <andrea.chirulescu@gmail.com> +// SPDX-FileCopyrightText: 2021 Harald Eilertsen <haraldei@anduin.net> +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +final class ConcertTest extends WP_UnitTestCase +{ + public function testCreateConcert() : void + { + $venue = GiglogAdmin_Venue::create("a venue"); + $today = date("Y-m-d"); + + $concert = GiglogAdmin_Concert::create( + "a concert", + $venue->id(), + $today, + "https://example.com/tickets/42", + "https://example.com/events/93"); + + $this->assertEquals("a concert", $concert->cname()); + $this->assertEquals($venue->id(), $concert->venue()); + $this->assertEquals($today, $concert->cdate()); + $this->assertEquals("https://example.com/tickets/42", $concert->tickets()); + $this->assertEquals("https://example.com/events/93", $concert->eventlink()); + } + + public function testCreateExistingConcert() : void + { + $venue = GiglogAdmin_Venue::create("a venue"); + $today = date("Y-m-d"); + + GiglogAdmin_Concert::create( + "a concert", + $venue->id(), + $today, + "https://example.com/tickets/42", + "https://example.com/events/93"); + + $new = GiglogAdmin_Concert::create( + "a concert", + $venue->id(), + $today, + "https://example.com/tickets/42", + "https://example.com/events/93"); + + $this->assertNull($new); + } +} |