singleton('CacheService', CacheService::class); $this->orderCountingRecordService = app(OrderCountingRecordService::class); } /** * @test */ public function counting_unit_date() { cache()->flush(); $start = Carbon::now()->subDays(2)->format('Y-m-d'); $end = (new Carbon())->toDateString(); $this->actingAs(factory(User::class)->create(['name' => 'yang'])); $owner = factory(Owner::class)->create(); $orders = factory(Order::class)->times(20)->create([ 'created_at' => Carbon::now(), 'owner_id' => $owner->id, 'wms_status' => '订单完成']); $orders = factory(Order::class)->times(10)->create([ 'created_at' => Carbon::now()->subDays(1), 'owner_id' => $owner->id, 'wms_status' => '订单完成']); $result = $this->orderCountingRecordService->orderCountingRecords($start, $end)->toArray(); $this->assertEquals([0, 10, 20], array_column($result, 'counter')); cache()->flush(); $orders = factory(Order::class)->times(20)->create([ 'created_at' => Carbon::now(), 'owner_id' => $owner->id, 'wms_status' => '订单完成']); $result = $this->orderCountingRecordService->orderCountingRecords($start, $end)->toArray(); $this->assertEquals([0, 10, 40], array_column($result, 'counter')); cache()->flush(); Order::query()->delete(); Owner::query()->delete(); User::query()->delete(); } /** * @test */ public function counting_unit_week() { cache()->flush(); $start = Carbon::now()->subWeek()->format('Y-m-d'); $end = (new Carbon())->toDateString(); $this->actingAs(factory(User::class)->create(['name' => 'yang'])); $owner = factory(Owner::class)->create(); $orders1 = factory(Order::class)->times(20)->create([ 'created_at' => Carbon::now(), 'owner_id' => $owner->id, 'wms_status' => '订单完成']); $orders2 = factory(Order::class)->times(20)->create([ 'created_at' => Carbon::now()->subWeek(), 'owner_id' => $owner->id, 'wms_status' => '订单完成']); $result = $this->orderCountingRecordService->orderCountingRecords($start, $end, null, '周')->toArray(); $this->assertEquals([20, 20], array_column($result, 'counter')); cache()->flush(); $orders1 = factory(Order::class)->times(20)->create([ 'created_at' => Carbon::now(), 'owner_id' => $owner->id, 'wms_status' => '订单完成']); $result = $this->orderCountingRecordService->orderCountingRecords($start, $end, null, '周')->toArray(); $this->assertEquals([20, 40], array_column($result, 'counter')); Order::query()->delete(); Owner::query()->delete(); User::query()->delete(); } /** * @test */ public function counting_unit_month() { cache()->flush(); $start = Carbon::now()->subMonth()->format('Y-m-d'); $end = (new Carbon())->toDateString(); $this->actingAs(factory(User::class)->create(['name' => 'yang'])); $owner = factory(Owner::class)->create(); $orders1 = factory(Order::class)->times(20)->create([ 'created_at' => Carbon::now(), 'owner_id' => $owner->id, 'wms_status' => '订单完成']); $orders2 = factory(Order::class)->times(20)->create([ 'created_at' => Carbon::now()->subMonth(), 'owner_id' => $owner->id, 'wms_status' => '订单完成']); $result = $this->orderCountingRecordService->orderCountingRecords($start, $end, null, '月')->toArray(); $this->assertEquals([20, 20], array_column($result, 'counter')); cache()->flush(); $orders1 = factory(Order::class)->times(20)->create([ 'created_at' => Carbon::now(), 'owner_id' => $owner->id, 'wms_status' => '订单完成']); $result = $this->orderCountingRecordService->orderCountingRecords($start, $end, null, '月')->toArray(); $this->assertEquals([20, 40], array_column($result, 'counter')); Order::query()->delete(); Owner::query()->delete(); User::query()->delete(); } /** * @test */ public function set_null() { $dateStr = '2020-11-26'; $this->assertTrue($dateStr != Carbon::now()->format('Y-m-d')); } /** * @test */ public function isNotCurrentDate() { $day_ture = $this->orderCountingRecordService->isNotCurrentDate(Carbon::now()->subDay()->format('Y-m-d')); $day_false = $this->orderCountingRecordService->isNotCurrentDate(Carbon::now()->format('Y-m-d')); $week_ture = $this->orderCountingRecordService->isNotCurrentDate(Carbon::now()->subWeek()->year . '-' . Carbon::now()->subWeek()->week); $week_false = $this->orderCountingRecordService->isNotCurrentDate(Carbon::now()->year . '-' . Carbon::now()->week); $month_true = $this->orderCountingRecordService->isNotCurrentDate(Carbon::now()->subMonth()->year . '-' . Carbon::now()->subMonth()->month); $month_false = $this->orderCountingRecordService->isNotCurrentDate(Carbon::now()->year . '-' . Carbon::now()->month); $this->assertTrue($day_ture); $this->assertFalse($day_false); $this->assertTrue($week_ture); $this->assertFalse($week_false); $this->assertTrue($month_true); $this->assertFalse($month_false); } }