function testIsExpiredShouldBeFalse() { $date_begin = new DateTime('2015-10-01 00:00:00+09:00'); $date_end = new DateTime('2015-10-01 10:00:00+09:00'); $period = new MovieViewerPeriod($date_begin, $date_end); $date_target = new DateTime('2015-10-01 09:59:59+09:00'); timecop_freeze($date_target->getTimestamp()); $this->assertFalse($period->isExpired($date_target)); $this->assertFalse($period->isExpired()); }
function testFindValidsByUserReturnsValidConfirmations_Two() { // 視聴期限ぴったり $date_freeze = new DateTime("2015-08-15 00:00:00+09:00"); timecop_freeze($date_freeze->getTimestamp()); $settings = plugin_movieviewer_get_global_settings(); $repo = new MovieViewerDealPackPaymentConfirmationRepositoryInFile($settings); $objects = $repo->findValidsByUser("*****@*****.**"); $this->assertEquals(2, count($objects)); $this->assertEquals("K1Kiso-1", $objects[0]->getPack()->getId()); $this->assertEquals("K2Kiso-1", $objects[1]->getPack()->getId()); }
function testFindNotYetConfirmedByUserReturnsObjects() { $date_freeze = new DateTime("2015-08-14 23:59:59+09:00"); timecop_freeze($date_freeze->getTimestamp()); // 常にファイルの状態を同じにしたいなので、data dir を専用のものにする $settings = new MovieViewerSettings(); $settings->data["dir"] = "test/models/resources_not_yet_confirmed"; $settings->timezone = new DateTimeZone("Asia/Tokyo"); $repo = new MovieViewerReviewPackPurchaseRequestRepositoryInFile($settings); $objects = $repo->findNotYetConfirmed("*****@*****.**"); $this->assertEquals(1, count($objects)); $object = $objects[0]; $this->assertEquals("*****@*****.**", $object->user_id); }
function testStoreSaveToFile() { $date_freeze = new DateTime("2015-08-14 23:59:59+09:00"); timecop_freeze($date_freeze->getTimestamp()); $settings = plugin_movieviewer_get_global_settings(); $repo = new MovieViewerReviewPackPaymentConfirmationRepositoryInFile($settings); $request = new MovieViewerReviewPackPurchaseRequest("*****@*****.**", "credit", array("K1Kiso_01")); $object = MovieViewerReviewPackPaymentConfirmation::createFromRequest($request, null); $repo->store($object); $object = $repo->findBy("*****@*****.**", "20150814235959+0900"); $this->assertEquals("*****@*****.**", $object->user_id); $this->assertEquals("credit", $object->purchase_method); $items = $object->getItems(); $this->assertEquals(1, count($items)); $this->assertEquals("K1Kiso", $items[0]->course_id); $this->assertEquals("01", $items[0]->session_id); $viewing_period = $object->getViewingPeriod(); $this->assertEquals(new DateTime("2015-08-16 00:00:00+09:00"), $viewing_period->date_begin); $this->assertEquals(new DateTime("2015-09-15 23:59:59+09:00"), $viewing_period->date_end); }
define('PLUGIN_MOVIEVIEWER_LOG_DIR', PLUGIN_MOVIEVIEWER_MOVIEVIEWER_DIR); // ユーザ設定ファイルを読み込む $user_ini_file = PLUGIN_MOVIEVIEWER_PLUGIN_DIR . '/movieviewer.ini.user.php'; if (file_exists($user_ini_file)) { include_once $user_ini_file; } else { // ファイルがない場合は開発環境の設定にしておく define('PLUGIN_MOVIEVIEWER_PATH_TO_SETTINGS_USER_DEFAULT', "/vagrant/resources/default/settings/settings.yml"); define('PLUGIN_MOVIEVIEWER_PATH_TO_SETTINGS_USER_TEST', "/vagrant/resources/test/settings/settings.yml"); } if (!file_exists(PLUGIN_MOVIEVIEWER_PUKIWIKI_DIR . "/.movieviewer_env_feature_test")) { define('PLUGIN_MOVIEVIEWER_ENV', ''); define('PLUGIN_MOVIEVIEWER_PATH_TO_SETTINGS', PLUGIN_MOVIEVIEWER_PATH_TO_SETTINGS_USER_DEFAULT); } else { define('PLUGIN_MOVIEVIEWER_ENV', 'Feature Test'); define('PLUGIN_MOVIEVIEWER_PATH_TO_SETTINGS', PLUGIN_MOVIEVIEWER_PATH_TO_SETTINGS_USER_TEST); // 強制的に時間を固定する (要:timecopのインストール) $date_freeze = new DateTime("2015-10-01 00:00:00+09:00", new DateTimeZone("Asia/Tokyo")); timecop_freeze($date_freeze->getTimestamp()); } define('PLUGIN_MOVIEVIEWER_AUTH_MODULE_DEFAULT', "default"); define('PLUGIN_MOVIEVIEWER_AUTH_MODULE_COMMU', "commu"); require_once PLUGIN_MOVIEVIEWER_MOVIEVIEWER_DIR . "/functions.php"; require_once PLUGIN_MOVIEVIEWER_MOVIEVIEWER_DIR . "/models/index.php"; require_once PLUGIN_MOVIEVIEWER_MOVIEVIEWER_DIR . "/repositories.php"; require_once PLUGIN_MOVIEVIEWER_MOVIEVIEWER_DIR . "/validators.php"; require_once PLUGIN_MOVIEVIEWER_MOVIEVIEWER_DIR . "/managers.php"; require_once PLUGIN_MOVIEVIEWER_MOVIEVIEWER_DIR . "/services.php"; require_once PLUGIN_MOVIEVIEWER_MOVIEVIEWER_DIR . "/vendor/autoload.php"; require_once PLUGIN_MOVIEVIEWER_PUKIWIKI_DIR . "/lib/qdmail.php"; require_once PLUGIN_MOVIEVIEWER_PUKIWIKI_DIR . "/lib/qdsmtp.php";
public function __construct($datetime) { timecop_freeze(strtotime($datetime)); }
function testGetOffersShouldReturnNextCourseOfferWhenFirstPackEndedBothRoutes() { $date_freeze = new DateTime("2015-10-15 00:00:00+09:00"); timecop_freeze($date_freeze->getTimestamp()); $user = new MovieViewerUser(); $user->id = "*****@*****.**"; $user->selected_routes = array(new MovieViewerCourseRoute(array("K1Kiso", "OABunka")), new MovieViewerCourseRoute(array("K2Kiso"))); $settings = plugin_movieviewer_get_global_settings(); $maker = new MovieViewerDealPackOfferMaker($settings->payment, $user); $offers = $maker->getOffers(); $this->assertCount(1, $offers); $this->assertEquals("OABunka-1", $offers[0]->getPackId()); }