|
3 | 3 | namespace QCod\Settings\Tests\Feature; |
4 | 4 |
|
5 | 5 | use QCod\Settings\Tests\TestCase; |
| 6 | +use QCod\Settings\Setting\Setting; |
6 | 7 | use QCod\Settings\Setting\SettingEloquentStorage; |
7 | 8 | use Illuminate\Foundation\Testing\RefreshDatabase; |
8 | 9 |
|
@@ -172,4 +173,93 @@ public function it_can_access_setting_via_facade() |
172 | 173 |
|
173 | 174 | $this->assertDatabaseHas('settings', ['name' => 'app_name']); |
174 | 175 | } |
| 176 | + |
| 177 | + /** |
| 178 | + * it has a default group name for settings |
| 179 | + * |
| 180 | + * @test |
| 181 | + */ |
| 182 | + public function it_has_a_default_group_name_for_settings() |
| 183 | + { |
| 184 | + settings()->set('app_name', 'Cool App'); |
| 185 | + |
| 186 | + $this->assertDatabaseHas('settings', [ |
| 187 | + 'name' => 'app_name', |
| 188 | + 'val' => 'Cool App', |
| 189 | + 'group' => 'default' |
| 190 | + ]); |
| 191 | + } |
| 192 | + |
| 193 | + /** |
| 194 | + * it can store setting with a group name |
| 195 | + * |
| 196 | + * @test |
| 197 | + */ |
| 198 | + public function it_can_store_setting_with_a_group_name() |
| 199 | + { |
| 200 | + settings()->group('set1')->set('app_name', 'Cool App'); |
| 201 | + |
| 202 | + $this->assertDatabaseHas('settings', [ |
| 203 | + 'name' => 'app_name', |
| 204 | + 'val' => 'Cool App', |
| 205 | + 'group' => 'set1' |
| 206 | + ]); |
| 207 | + } |
| 208 | + |
| 209 | + /** |
| 210 | + * it can get setting from a group |
| 211 | + * |
| 212 | + * @test |
| 213 | + */ |
| 214 | + public function it_can_get_setting_from_a_group() |
| 215 | + { |
| 216 | + settings()->group('set1')->set('app_name', 'Cool App'); |
| 217 | + |
| 218 | + $this->assertTrue(settings()->group('set1')->has('app_name')); |
| 219 | + $this->assertEquals('Cool App', settings()->group('set1')->get('app_name')); |
| 220 | + $this->assertFalse(settings()->group('set2')->has('app_name')); |
| 221 | + } |
| 222 | + |
| 223 | + /** |
| 224 | + * it give you all settings from default group if you dont specify one |
| 225 | + * |
| 226 | + * @test |
| 227 | + */ |
| 228 | + public function it_give_you_all_settings_from_default_group_if_you_dont_specify_one() |
| 229 | + { |
| 230 | + settings()->set('app_name', 'Cool App 1'); |
| 231 | + settings()->set('app_name', 'Cool App 2'); |
| 232 | + |
| 233 | + $this->assertCount(1, settings()->all(true)); |
| 234 | + $this->assertCount(0, settings()->group('unknown')->all(true)); |
| 235 | + } |
| 236 | + |
| 237 | + /** |
| 238 | + * it allows same key to be used in different groups |
| 239 | + * |
| 240 | + * @test |
| 241 | + */ |
| 242 | + public function it_allows_same_key_to_be_used_in_different_groups() |
| 243 | + { |
| 244 | + settings()->group('team1')->set('app_name', 'Cool App 1'); |
| 245 | + settings()->group('team2')->set('app_name', 'Cool App 2'); |
| 246 | + |
| 247 | + $this->assertCount(2, Setting::all()); |
| 248 | + $this->assertEquals('Cool App 1', settings()->group('team1')->get('app_name')); |
| 249 | + $this->assertEquals('Cool App 2', settings()->group('team2')->get('app_name')); |
| 250 | + } |
| 251 | + |
| 252 | + /** |
| 253 | + * it get group settings using facade |
| 254 | + * |
| 255 | + * @test |
| 256 | + */ |
| 257 | + public function it_get_group_settings_using_facade() |
| 258 | + { |
| 259 | + \Settings::group('team1')->set('app_name', 'Cool App'); |
| 260 | + |
| 261 | + $this->assertEquals('Cool App', \Settings::group('team1')->get('app_name')); |
| 262 | + |
| 263 | + $this->assertDatabaseHas('settings', ['name' => 'app_name', 'group' => 'team1']); |
| 264 | + } |
175 | 265 | } |
0 commit comments