SettingTest.php 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  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\Repositories\SettingInterface;
  11. /**
  12. * Created by PhpStorm.
  13. * User: Administrator
  14. * Date: 2018/1/29
  15. * Time: 13:31.
  16. */
  17. class SettingTest extends BaseTest
  18. {
  19. public function testSet()
  20. {
  21. $this->assertEquals('', settings('adc'));
  22. $this->assertFalse(settings([]));
  23. $this->assertEquals('abc', settings('key_abc','abc'));
  24. settings(['key_abc' => '123']);
  25. $this->assertEquals('123', settings('key_abc','abc'));
  26. //test string value.
  27. $setting = settings(['key' => 'value']);
  28. $this->assertEquals(iBrand\Component\Setting\Models\SystemSetting::class, get_class($setting));
  29. $this->assertEquals('key', $setting->key);
  30. $this->assertEquals('value', $setting->value);
  31. //test 0 value.
  32. $setting0 = settings(['key0' => 0]);
  33. $this->assertEquals(0, $setting0->value);
  34. //test "" string.
  35. $setting1 = settings(['key1' => '']);
  36. $this->assertEquals('', $setting1->value);
  37. //test array
  38. $setting2 = settings(['key2' => ['key1' => 'value1', 'key2' => 'value2']]);
  39. $this->assertEquals(2, count($setting2->value));
  40. $this->assertEquals(['key1' => 'value1', 'key2' => 'value2'], $setting2->value);
  41. //test bool
  42. $setting3 = settings(['key3' => true]);
  43. $this->assertTrue($setting3->value);
  44. $setting4 = settings(['key4' => false]);
  45. $this->assertFalse($setting4->value);
  46. $setting5 = settings(['key4' => true]);
  47. $this->assertTrue($setting5->value);
  48. }
  49. public function testGet()
  50. {
  51. //test string value.
  52. $setting = settings(['key' => 'value']);
  53. $this->assertEquals('value', settings('key'));
  54. //test 0 value.
  55. $setting0 = settings(['key0' => 0]);
  56. $this->assertEquals(0, settings('key0'));
  57. //test "" string.
  58. $setting1 = settings(['key1' => '']);
  59. $this->assertEquals('', settings('key1'));
  60. //test array
  61. $setting2 = settings(['key2' => ['key1' => 'value1', 'key2' => 'value2']]);
  62. $this->assertEquals(2, count(settings('key2')));
  63. $this->assertEquals(['key1' => 'value1', 'key2' => 'value2'], settings('key2'));
  64. //test bool
  65. $setting3 = settings(['key3' => true]);
  66. $this->assertTrue(settings('key3'));
  67. $setting4 = settings(['key4' => false]);
  68. $this->assertFalse(settings('key4'));
  69. }
  70. public function testHelpers()
  71. {
  72. $result = settings();
  73. $this->assertInstanceOf(SettingInterface::class,$result);
  74. $result = settings(app(SettingInterface::class));
  75. $this->assertEquals('',$result);
  76. }
  77. }