2
0

FileSplitterTest.php 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. <?php
  2. namespace Test\Michel\FileSystem;
  3. use Michel\FileSystem\FileInfo;
  4. use Michel\FileSystem\Tools\FileSplitter;
  5. use Michel\UniTester\TestCase;
  6. class FileSplitterTest extends TestCase
  7. {
  8. protected function setUp(): void
  9. {
  10. // TODO: Implement setUp() method.
  11. }
  12. protected function tearDown(): void
  13. {
  14. // TODO: Implement tearDown() method.
  15. }
  16. protected function execute(): void
  17. {
  18. $this->testSplitMb();
  19. $this->testSplitNoSameSize();
  20. $this->testSplitKb();
  21. }
  22. public function testSplitMb()
  23. {
  24. $fileInfo = new FileInfo(dirname(__FILE__).'/resources/file_2MB.txt');
  25. $splitter = new FileSplitter($fileInfo);
  26. $files = $splitter->splitMb(1);
  27. $this->assertCount(2, $files);
  28. foreach ($files as $file) {
  29. $this->assertInstanceOf(FileInfo::class, $file);
  30. $file->delete();
  31. }
  32. }
  33. public function testSplitNoSameSize()
  34. {
  35. $fileInfo = new FileInfo(dirname(__FILE__).'/resources/file_2MB.txt');
  36. $splitter = new FileSplitter($fileInfo);
  37. $files = $splitter->splitKb(200);
  38. $this->assertCount(11, $files);
  39. foreach ($files as $file) {
  40. $this->assertInstanceOf(FileInfo::class, $file);
  41. $file->delete();
  42. }
  43. }
  44. public function testSplitKb()
  45. {
  46. $fileInfo = new FileInfo(dirname(__FILE__).'/resources/file_1MB.txt');
  47. $splitter = new FileSplitter($fileInfo);
  48. $files = $splitter->splitKb(512);
  49. $this->assertCount(2, $files);
  50. foreach ($files as $file) {
  51. $this->assertInstanceOf(FileInfo::class, $file);
  52. $file->delete();
  53. }
  54. $fileInfo = new FileInfo(dirname(__FILE__).'/resources/file_1MB.txt');
  55. $splitter = new FileSplitter($fileInfo);
  56. $files = $splitter->splitKb(500);
  57. $this->assertCount(3, $files);
  58. foreach ($files as $file) {
  59. $this->assertInstanceOf(FileInfo::class, $file);
  60. $file->delete();
  61. }
  62. }
  63. }