upskill-event-manager/wordpress-dev/tests/basic/test-doubles.php
bengizmo d6211ee364 feat(testing): Implement HVAC_Test_User_Factory and update .gitignore
- Add HVAC_Test_User_Factory class with:
  * User creation with specific roles
  * Multiple role support
  * Persona management system
  * Account cleanup integration
- Create comprehensive test suite in HVAC_Test_User_Factory_Test.php
- Update testing improvement plan documentation
- Add implementation decisions to project memory bank
- Restructure .gitignore with:
  * Whitelist approach for better file management
  * Explicit backup exclusions
  * Specific bin directory inclusions

Part of the Account Management component from the testing framework improvement plan.
2025-04-14 17:41:36 -03:00

96 lines
No EOL
2.7 KiB
PHP

<?php
/**
* Test doubles for The Events Calendar functionality
*/
// Mock TEC main class if not present
if (!class_exists('Tribe__Events__Main')) {
class Tribe__Events__Main {
const POSTTYPE = 'tribe_events';
const VENUE_POST_TYPE = 'tribe_venue';
const ORGANIZER_POST_TYPE = 'tribe_organizer';
public static function instance() {
static $instance;
if (!$instance) {
$instance = new self();
}
return $instance;
}
public function getOption($key, $default = '') {
return $default;
}
}
}
// Mock Community Events class if not present
if (!class_exists('Tribe__Events__Community__Main')) {
class Tribe__Events__Community__Main {
public static function instance() {
static $instance;
if (!$instance) {
$instance = new self();
}
return $instance;
}
}
}
// Mock essential TEC functions
if (!function_exists('tribe_get_start_date')) {
function tribe_get_start_date($event_id = null, $display_time = true, $date_format = '') {
return get_post_meta($event_id, '_EventStartDate', true);
}
}
if (!function_exists('tribe_get_end_date')) {
function tribe_get_end_date($event_id = null, $display_time = true, $date_format = '') {
return get_post_meta($event_id, '_EventEndDate', true);
}
}
if (!function_exists('tribe_get_venue')) {
function tribe_get_venue($post_id = null) {
return get_post_meta($post_id, '_EventVenue', true);
}
}
if (!function_exists('tribe_get_organizer')) {
function tribe_get_organizer($post_id = null) {
return get_post_meta($post_id, '_EventOrganizer', true);
}
}
if (!function_exists('tribe_events_get_events')) {
function tribe_events_get_events($args = array()) {
$default_args = array(
'post_type' => Tribe__Events__Main::POSTTYPE,
'posts_per_page' => -1
);
return get_posts(array_merge($default_args, $args));
}
}
// Mock essential WordPress functions if needed for testing
if (!function_exists('wp_verify_nonce')) {
function wp_verify_nonce($nonce, $action = -1) {
return true; // Always verify in test environment
}
}
if (!function_exists('wp_create_nonce')) {
function wp_create_nonce($action = -1) {
return 'test_nonce';
}
}
// Add test helper functions
function create_test_event($args = array()) {
$default_args = array(
'post_type' => Tribe__Events__Main::POSTTYPE,
'post_title' => 'Test Event',
'post_status' => 'publish'
);
return wp_insert_post(array_merge($default_args, $args));
}