EloquentSettingTest.php 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. <?php
  2. /*
  3. * This file is part of ibrand/setting.
  4. *
  5. * (c) iBrand <https://www.ibrand.cc>
  6. *
  7. * For the full copyright and license information, please view the LICENSE
  8. * file that was distributed with this source code.
  9. */
  10. use iBrand\Component\Setting\Models\SystemSetting;
  11. use iBrand\Component\Setting\Repositories\EloquentSetting;
  12. /**
  13. * Created by PhpStorm.
  14. * User: Administrator
  15. * Date: 2018/1/29
  16. * Time: 16:11.
  17. */
  18. class EloquentSettingTest extends BaseTest
  19. {
  20. protected $setting;
  21. protected function setUp()
  22. {
  23. parent::setUp(); // TODO: Change the autogenerated stub
  24. $this->loadMigrationsFrom(__DIR__.'/database');
  25. $this->setting = new EloquentSetting(new SystemSetting());
  26. }
  27. public function testSet()
  28. {
  29. //test string value.
  30. $setting = $this->setting->setSetting(['key' => 'value']);
  31. $this->assertEquals(iBrand\Component\Setting\Models\SystemSetting::class, get_class($setting));
  32. $this->assertEquals('key', $setting->key);
  33. $this->assertEquals('value', $setting->value);
  34. //test 0 value.
  35. $setting0 = $this->setting->setSetting(['key0' => 0]);
  36. $this->assertEquals(0, $setting0->value);
  37. //test "" string.
  38. $setting1 = $this->setting->setSetting(['key1' => '']);
  39. $this->assertEquals('', $setting1->value);
  40. //test array
  41. $setting2 = $this->setting->setSetting(['key2' => ['key1' => 'value1', 'key2' => 'value2']]);
  42. $this->assertEquals(2, count($setting2->value));
  43. $this->assertEquals(['key1' => 'value1', 'key2' => 'value2'], $setting2->value);
  44. //test bool
  45. $setting3 = $this->setting->setSetting(['key3' => true]);
  46. $this->assertTrue($setting3->value);
  47. $setting4 = $this->setting->setSetting(['key4' => false]);
  48. $this->assertFalse($setting4->value);
  49. $setting4 = $this->setting->setSetting([]);
  50. $this->assertFalse($setting4);
  51. }
  52. public function testGet()
  53. {
  54. //test string value.
  55. $setting = $this->setting->setSetting(['key' => 'value']);
  56. $this->assertEquals('value', $this->setting->getSetting('key'));
  57. //test 0 value.
  58. $setting0 = $this->setting->setSetting(['key0' => 0]);
  59. $this->assertEquals(0, $this->setting->getSetting('key0'));
  60. //test "" string.
  61. $setting1 = $this->setting->setSetting(['key1' => '']);
  62. $this->assertEquals('', $this->setting->getSetting('key1'));
  63. //test array
  64. $setting2 = $this->setting->setSetting(['key2' => ['key1' => 'value1', 'key2' => 'value2']]);
  65. $this->assertEquals(2, count($this->setting->getSetting('key2')));
  66. $this->assertEquals(['key1' => 'value1', 'key2' => 'value2'], $this->setting->getSetting('key2'));
  67. //test bool
  68. $setting3 = $this->setting->setSetting(['key3' => true]);
  69. $this->assertTrue($this->setting->getSetting('key3'));
  70. $setting4 = $this->setting->setSetting(['key4' => false]);
  71. $this->assertFalse($this->setting->getSetting('key4'));
  72. $this->assertEquals('', $this->setting->getSetting('key88'));
  73. $this->assertEquals(88, $this->setting->getSetting('key88',88));
  74. config()->set('ibrand.setting.cache',false);
  75. $this->assertEquals('iBrand\Component\Setting\Repositories\EloquentSetting', get_class(app('system_setting')));
  76. }
  77. }