visit = new Visit(); } /** @test */ public function it_has_correct_table_name() { $this->assertEquals('visits', $this->visit->getTable()); } /** @test */ public function it_has_correct_casts() { $casts = $this->visit->getCasts(); $this->assertArrayHasKey('follw_people', $casts); $this->assertArrayHasKey('cars', $casts); $this->assertArrayHasKey('file', $casts); $this->assertArrayHasKey('vehicle_images', $casts); $this->assertArrayHasKey('meal_preferences', $casts); $this->assertArrayHasKey('date', $casts); $this->assertArrayHasKey('start_date', $casts); $this->assertArrayHasKey('end_date', $casts); $this->assertArrayHasKey('work_start_time', $casts); $this->assertArrayHasKey('work_end_time', $casts); $this->assertArrayHasKey('credent', $casts); $this->assertArrayHasKey('long_time', $casts); $this->assertArrayHasKey('audit_status', $casts); $this->assertArrayHasKey('need_meal', $casts); $this->assertEquals('array', $casts['follw_people']); $this->assertEquals('array', $casts['cars']); $this->assertEquals('array', $casts['file']); $this->assertEquals('array', $casts['vehicle_images']); $this->assertEquals('array', $casts['meal_preferences']); $this->assertEquals('date', $casts['date']); $this->assertEquals('date', $casts['start_date']); $this->assertEquals('date', $casts['end_date']); $this->assertEquals('date', $casts['work_start_time']); $this->assertEquals('date', $casts['work_end_time']); $this->assertEquals('boolean', $casts['credent']); $this->assertEquals('boolean', $casts['long_time']); $this->assertEquals('integer', $casts['audit_status']); $this->assertEquals('boolean', $casts['need_meal']); } /** @test */ public function it_has_correct_type_constants() { $this->assertEquals(1, Visit::TYPE_VISITOR); $this->assertEquals(2, Visit::TYPE_VISITOR_CAR); $this->assertEquals(3, Visit::TYPE_LOGISTICS_CAR); } /** @test */ public function it_has_correct_audit_status_constants() { $this->assertEquals(-1, Visit::AUDIT_STATUS_PENDING_STUDY); $this->assertEquals(0, Visit::AUDIT_STATUS_PENDING); $this->assertEquals(1, Visit::AUDIT_STATUS_APPROVED); $this->assertEquals(2, Visit::AUDIT_STATUS_REJECTED); $this->assertEquals(3, Visit::AUDIT_STATUS_ENTERED); $this->assertEquals(4, Visit::AUDIT_STATUS_LEFT); } /** @test */ public function it_has_correct_credent_constants() { $this->assertEquals(1, Visit::CREDENT_ID_CARD); $this->assertEquals(2, Visit::CREDENT_PASSPORT); } /** @test */ public function it_has_correct_meal_type_constants() { $this->assertEquals(1, Visit::MEAL_TYPE_BREAKFAST); $this->assertEquals(2, Visit::MEAL_TYPE_LUNCH); $this->assertEquals(3, Visit::MEAL_TYPE_DINNER); $this->assertEquals(4, Visit::MEAL_TYPE_ALL_DAY); } /** @test */ public function it_returns_correct_type_text() { $visit = new Visit(['type' => Visit::TYPE_VISITOR]); $this->assertEquals('访客', $visit->type_text); $visit = new Visit(['type' => Visit::TYPE_VISITOR_CAR]); $this->assertEquals('访客车辆', $visit->type_text); $visit = new Visit(['type' => Visit::TYPE_LOGISTICS_CAR]); $this->assertEquals('物流车辆', $visit->type_text); $visit = new Visit(['type' => 999]); $this->assertEquals('未知', $visit->type_text); } /** @test */ public function it_returns_correct_audit_status_text() { $visit = new Visit(['audit_status' => Visit::AUDIT_STATUS_PENDING_STUDY]); $this->assertEquals('待学习', $visit->audit_status_text); $visit = new Visit(['audit_status' => Visit::AUDIT_STATUS_PENDING]); $this->assertEquals('待审核', $visit->audit_status_text); $visit = new Visit(['audit_status' => Visit::AUDIT_STATUS_APPROVED]); $this->assertEquals('通过(待进厂)', $visit->audit_status_text); $visit = new Visit(['audit_status' => Visit::AUDIT_STATUS_REJECTED]); $this->assertEquals('驳回', $visit->audit_status_text); $visit = new Visit(['audit_status' => Visit::AUDIT_STATUS_ENTERED]); $this->assertEquals('已进厂', $visit->audit_status_text); $visit = new Visit(['audit_status' => Visit::AUDIT_STATUS_LEFT]); $this->assertEquals('已离厂', $visit->audit_status_text); $visit = new Visit(['audit_status' => 999]); $this->assertEquals('未知', $visit->audit_status_text); } /** @test */ public function it_returns_correct_credent_text() { $visit = new Visit(['credent' => Visit::CREDENT_ID_CARD]); $this->assertEquals('身份证', $visit->credent_text); $visit = new Visit(['credent' => Visit::CREDENT_PASSPORT]); $this->assertEquals('护照', $visit->credent_text); $visit = new Visit(['credent' => 999]); $this->assertEquals('未知', $visit->credent_text); } /** @test */ public function it_returns_correct_meal_type_text() { $visit = new Visit(['meal_type' => Visit::MEAL_TYPE_BREAKFAST]); $this->assertEquals('早餐', $visit->meal_type_text); $visit = new Visit(['meal_type' => Visit::MEAL_TYPE_LUNCH]); $this->assertEquals('午餐', $visit->meal_type_text); $visit = new Visit(['meal_type' => Visit::MEAL_TYPE_DINNER]); $this->assertEquals('晚餐', $visit->meal_type_text); $visit = new Visit(['meal_type' => Visit::MEAL_TYPE_ALL_DAY]); $this->assertEquals('全天', $visit->meal_type_text); $visit = new Visit(['meal_type' => 999]); $this->assertEquals('未知', $visit->meal_type_text); } /** @test */ public function it_returns_empty_collection_when_no_files() { $visit = new Visit(); $visit->setRawAttributes(['file' => null]); $this->assertTrue($visit->files->isEmpty()); $visit = new Visit(); $visit->setRawAttributes(['file' => '[]']); $this->assertTrue($visit->files->isEmpty()); } /** @test */ public function it_returns_empty_collection_when_no_vehicle_images() { $visit = new Visit(); $visit->setRawAttributes(['vehicle_images' => null]); $this->assertTrue($visit->vehicle_images->isEmpty()); $visit = new Visit(); $visit->setRawAttributes(['vehicle_images' => '[]']); $this->assertTrue($visit->vehicle_images->isEmpty()); } /** @test */ public function it_can_get_files_relationship() { $this->markTestSkipped('需要数据库连接,在功能测试中验证'); } /** @test */ public function it_can_get_vehicle_images_relationship() { $this->markTestSkipped('需要数据库连接,在功能测试中验证'); } /** @test */ public function it_can_get_accept_admin_sign_relationship() { $this->markTestSkipped('需要数据库连接,在功能测试中验证'); } }