- Refactored fallback submission logic in `class-event-handler.php` to remove `wp_die`/`exit` calls and use redirects for error handling, enabling proper unit testing. - Implemented meta-data saving (dates, venue, organizer) in the fallback logic using `update_post_meta`. - Updated unit tests (`test-event-management.php`) to remove `markTestIncomplete` calls related to handler errors and uncommented meta assertions. Unit tests for fallback logic now pass. - Added Instructions section and Return to Dashboard button to the event form shortcode (`display_event_form_shortcode`). - Applied basic theme styling classes (`ast-container`, `notice`, `ast-button`) to the event form. - Updated `docs/implementation_plan.md` to reflect completion of tasks 4.1-4.5 and set focus to Task 5. Refs: Task 4.1, 4.2, 4.3, 4.4, 4.5
68 lines
1.9 KiB
PHP
68 lines
1.9 KiB
PHP
<?php
|
|
namespace Hamcrest;
|
|
|
|
use PHPUnit\Framework\TestCase;
|
|
|
|
class UnknownType {
|
|
}
|
|
|
|
abstract class AbstractMatcherTest extends TestCase
|
|
{
|
|
|
|
const ARGUMENT_IGNORED = "ignored";
|
|
const ANY_NON_NULL_ARGUMENT = "notnull";
|
|
|
|
abstract protected function createMatcher();
|
|
|
|
public function assertMatches(\Hamcrest\Matcher $matcher, $arg, $message)
|
|
{
|
|
$this->assertTrue($matcher->matches($arg), $message);
|
|
}
|
|
|
|
public function assertDoesNotMatch(\Hamcrest\Matcher $matcher, $arg, $message)
|
|
{
|
|
$this->assertFalse($matcher->matches($arg), $message);
|
|
}
|
|
|
|
public function assertDescription($expected, \Hamcrest\Matcher $matcher)
|
|
{
|
|
$description = new \Hamcrest\StringDescription();
|
|
$description->appendDescriptionOf($matcher);
|
|
$this->assertEquals($expected, (string) $description, 'Expected description');
|
|
}
|
|
|
|
public function assertMismatchDescription($expected, \Hamcrest\Matcher $matcher, $arg)
|
|
{
|
|
$description = new \Hamcrest\StringDescription();
|
|
$this->assertFalse(
|
|
$matcher->matches($arg),
|
|
'Precondtion: Matcher should not match item'
|
|
);
|
|
$matcher->describeMismatch($arg, $description);
|
|
$this->assertEquals(
|
|
$expected,
|
|
(string) $description,
|
|
'Expected mismatch description'
|
|
);
|
|
}
|
|
|
|
public function testIsNullSafe()
|
|
{
|
|
//Should not generate any notices
|
|
$this->createMatcher()->matches(null);
|
|
$this->createMatcher()->describeMismatch(
|
|
null,
|
|
new \Hamcrest\NullDescription()
|
|
);
|
|
}
|
|
|
|
public function testCopesWithUnknownTypes()
|
|
{
|
|
//Should not generate any notices
|
|
$this->createMatcher()->matches(new UnknownType());
|
|
$this->createMatcher()->describeMismatch(
|
|
new UnknownType(),
|
|
new NullDescription()
|
|
);
|
|
}
|
|
}
|