StorageTest.php 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. <?php
  2. declare(strict_types=1);
  3. use Tinywan\Storage\Adapter\CosAdapter;
  4. use Tinywan\Storage\Adapter\LocalAdapter;
  5. use Tinywan\Storage\Adapter\OssAdapter;
  6. use Tinywan\Storage\Adapter\QiniuAdapter;
  7. use Tinywan\Storage\Adapter\S3Adapter;
  8. use Tinywan\Storage\Storage;
  9. test('存储模式常量与允许列表一致', function () {
  10. expect(Storage::$allowStorage)->toBe([
  11. Storage::MODE_LOCAL,
  12. Storage::MODE_OSS,
  13. Storage::MODE_COS,
  14. Storage::MODE_QINIU,
  15. Storage::MODE_S3,
  16. ]);
  17. });
  18. test('默认磁盘返回本地适配器', function () {
  19. expect(Storage::disk(null, false))->toBeInstanceOf(LocalAdapter::class);
  20. });
  21. test('按名称返回对应云存储适配器', function (string $disk, string $adapterClass) {
  22. expect(Storage::disk($disk, false))->toBeInstanceOf($adapterClass);
  23. })->with([
  24. [Storage::MODE_LOCAL, LocalAdapter::class],
  25. [Storage::MODE_OSS, OssAdapter::class],
  26. [Storage::MODE_COS, CosAdapter::class],
  27. [Storage::MODE_QINIU, QiniuAdapter::class],
  28. [Storage::MODE_S3, S3Adapter::class],
  29. ]);
  30. test('getDefaultStorage 返回默认存储名称', function () {
  31. expect(Storage::getDefaultStorage())->toBe(Storage::MODE_LOCAL);
  32. });
  33. test('getConfig 可按名称取回存储配置', function () {
  34. $config = Storage::getConfig(Storage::MODE_LOCAL);
  35. expect($config)->toBeArray()->toHaveKey('adapter', LocalAdapter::class)->toHaveKey('algo', 'sha1');
  36. });