summaryrefslogtreecommitdiffstats
path: root/tests/VenueTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'tests/VenueTest.php')
-rw-r--r--tests/VenueTest.php92
1 files changed, 92 insertions, 0 deletions
diff --git a/tests/VenueTest.php b/tests/VenueTest.php
new file mode 100644
index 0000000..814bfe8
--- /dev/null
+++ b/tests/VenueTest.php
@@ -0,0 +1,92 @@
+<?php
+declare(strict_types=1);
+
+use PHPUnit\Framework\TestCase;
+
+require 'tests/stubs/wpdb_stub.php';
+require 'includes/venue.php';
+
+final class VenueTest extends TestCase
+{
+ public function testCreatingVenueWithName(): void
+ {
+ $venue = GiglogAdmin_Venue::create("Svene Samfunns- og Bedehus");
+ $this->assertEquals("Svene Samfunns- og Bedehus", $venue->name());
+ $this->assertEquals(1, $venue->id());
+ }
+
+ public function testFindOrCreateNonExistingVenue() : void
+ {
+ $venue = GiglogAdmin_Venue::find_or_create("Svene Samfunns- og Bedehus");
+ $this->assertEquals("Svene Samfunns- og Bedehus", $venue->name());
+ $this->assertEquals(1, $venue->id());
+ }
+
+ public function testFindOrCreateExistingVenue() : void
+ {
+ global $wpdb;
+
+ $v = new stdClass();
+ $v->id = 42;
+ $v->wpgvenue_name = 'Slarkhaillen';
+ $v->wpgvenue_city = 'Ofoten';
+ $v->wpgvenue_address = 'Baillsvingen 4';
+ $v->wpgvenue_webpage = 'https://slarkhaillen.no';
+
+ $wpdb = $this->createStub(wpdb::class);
+ $wpdb->method('get_results')->willReturn(array($v));
+ $venue = GiglogAdmin_Venue::find_or_create("Slarkhaillen");
+
+ $this->assertEquals(42, $venue->id());
+ $this->assertEquals($v->wpgvenue_name, $venue->name());
+ }
+
+ public function testFindAllVenuesInCity() : void
+ {
+ global $wpdb;
+
+ $results = array();
+ for ($i = 0; $i < 3; $i++) {
+ $results[$i] = new stdClass();
+ $results[$i]->id = 42 + $i;
+ $results[$i]->wpgvenue_name = "Venue #" . $i;
+ $results[$i]->wpgvenue_city = "Osaka";
+ }
+
+ $wpdb = $this->createStub(wpdb::class);
+ $wpdb->method('prepare')->willReturn("prepared");
+ $wpdb->method('get_results')->willReturn($results);
+
+ $venues = GiglogAdmin_Venue::venues_in_city("Osaka");
+
+ for ($i = 0; $i < 3; $i++) {
+ $this->assertEquals("Osaka", $venues[$i]->city());
+ $this->assertEquals("Venue #" . $i, $venues[$i]->name());
+ $this->assertEquals(42 + $i, $venues[$i]->id());
+ }
+ }
+
+ public function testFindAllVenues() : void
+ {
+ global $wpdb;
+
+ $results = array();
+ for ($i = 0; $i < 3; $i++) {
+ $results[$i] = new stdClass();
+ $results[$i]->id = 42 + $i;
+ $results[$i]->wpgvenue_name = "Venue #" . $i;
+ $results[$i]->wpgvenue_city = "City #" . $i;
+ }
+
+ $wpdb = $this->createStub(wpdb::class);
+ $wpdb->method('get_results')->willReturn($results);
+
+ $venues = GiglogAdmin_Venue::all_venues();
+
+ for ($i = 0; $i < 3; $i++) {
+ $this->assertEquals("City #" . $i, $venues[$i]->city());
+ $this->assertEquals("Venue #" . $i, $venues[$i]->name());
+ $this->assertEquals(42 + $i, $venues[$i]->id());
+ }
+ }
+}