|
2 | 2 |
|
3 | 3 | use Illuminate\Support\Facades\Event;
|
4 | 4 | use Spatie\ModelStates\Exceptions\InvalidConfig;
|
5 |
| -use Spatie\ModelStates\Tests\Dummy\AllowAllTransitionsStateWithNoRegisteredStates\AllowAllTransitionsStateWithNoRegisteredStates; |
| 5 | +use Spatie\ModelStates\Tests\Dummy\AllowAllTransitionsStateWithNoRegisteredStates; |
6 | 6 | use Spatie\ModelStates\Events\StateChanged;
|
7 | 7 | use Spatie\ModelStates\Exceptions\ClassDoesNotExtendBaseClass;
|
8 | 8 | use Spatie\ModelStates\Tests\Dummy\CustomEventModelState\CustomEventModelStateB;
|
|
22 | 22 | use Spatie\ModelStates\Tests\Dummy\OtherModelStates\StateY;
|
23 | 23 | use Spatie\ModelStates\Tests\Dummy\TestModel;
|
24 | 24 | use Spatie\ModelStates\Tests\Dummy\TestModelAllowAllTransitions;
|
| 25 | +use Spatie\ModelStates\Tests\Dummy\TestModelAllowAllTransitionsWithExplicitlyRegisteredStates; |
25 | 26 | use Spatie\ModelStates\Tests\Dummy\TestModelAllowAllTransitionsWithNoRegisteredStates;
|
26 | 27 | use Spatie\ModelStates\Tests\Dummy\TestModelCustomEvent;
|
27 | 28 | use Spatie\ModelStates\Tests\Dummy\TestModelCustomInvalidEvent;
|
28 | 29 | use Spatie\ModelStates\Tests\Dummy\TestModelUpdatingEvent;
|
29 | 30 | use Spatie\ModelStates\Tests\Dummy\TestModelWithCustomTransition;
|
30 | 31 | use Spatie\ModelStates\Tests\Dummy\TestModelWithDefault;
|
| 32 | +use Spatie\ModelStates\Tests\Dummy\AllowAllTransitionsState; |
31 | 33 |
|
32 | 34 | it('resolve state class', function () {
|
33 | 35 | expect(ModelState::resolveStateClass(StateA::class))->toEqual(StateA::class);
|
|
255 | 257 | it('should allow all transitions', function () {
|
256 | 258 | $model = TestModelAllowAllTransitions::create();
|
257 | 259 |
|
258 |
| - expect($model->state->canTransitionTo(\Spatie\ModelStates\Tests\Dummy\AllowAllTransitionsState\StateA::class))->toBeTrue() |
259 |
| - ->and($model->state->canTransitionTo(\Spatie\ModelStates\Tests\Dummy\AllowAllTransitionsState\StateB::class))->toBeTrue() |
260 |
| - ->and($model->state->canTransitionTo(\Spatie\ModelStates\Tests\Dummy\AllowAllTransitionsState\StateC::class))->toBeTrue(); |
| 260 | + expect($model->state) |
| 261 | + ->canTransitionTo(AllowAllTransitionsState\StateA::class)->toBeTrue() |
| 262 | + ->canTransitionTo(AllowAllTransitionsState\StateB::class)->toBeTrue() |
| 263 | + ->canTransitionTo(AllowAllTransitionsState\StateC::class)->toBeTrue(); |
261 | 264 |
|
262 |
| - $model->state->transitionTo(\Spatie\ModelStates\Tests\Dummy\AllowAllTransitionsState\StateB::class); |
| 265 | + $model->state->transitionTo(AllowAllTransitionsState\StateB::class); |
263 | 266 |
|
264 |
| - expect($model->state->canTransitionTo(\Spatie\ModelStates\Tests\Dummy\AllowAllTransitionsState\StateA::class))->toBeTrue() |
265 |
| - ->and($model->state->canTransitionTo(\Spatie\ModelStates\Tests\Dummy\AllowAllTransitionsState\StateB::class))->toBeTrue() |
266 |
| - ->and($model->state->canTransitionTo(\Spatie\ModelStates\Tests\Dummy\AllowAllTransitionsState\StateC::class))->toBeTrue(); |
| 267 | + expect($model->state) |
| 268 | + ->canTransitionTo(AllowAllTransitionsState\StateA::class)->toBeTrue() |
| 269 | + ->canTransitionTo(AllowAllTransitionsState\StateB::class)->toBeTrue() |
| 270 | + ->canTransitionTo(AllowAllTransitionsState\StateC::class)->toBeTrue(); |
267 | 271 |
|
268 |
| - $model->state->transitionTo(\Spatie\ModelStates\Tests\Dummy\AllowAllTransitionsState\StateC::class); |
| 272 | + $model->state->transitionTo(AllowAllTransitionsState\StateC::class); |
269 | 273 |
|
270 |
| - expect($model->state->canTransitionTo(\Spatie\ModelStates\Tests\Dummy\AllowAllTransitionsState\StateA::class))->toBeTrue() |
271 |
| - ->and($model->state->canTransitionTo(\Spatie\ModelStates\Tests\Dummy\AllowAllTransitionsState\StateB::class))->toBeTrue() |
272 |
| - ->and($model->state->canTransitionTo(\Spatie\ModelStates\Tests\Dummy\AllowAllTransitionsState\StateC::class))->toBeTrue(); |
| 274 | + expect($model->state) |
| 275 | + ->canTransitionTo(AllowAllTransitionsState\StateA::class)->toBeTrue() |
| 276 | + ->canTransitionTo(AllowAllTransitionsState\StateB::class)->toBeTrue() |
| 277 | + ->canTransitionTo(AllowAllTransitionsState\StateC::class)->toBeTrue(); |
| 278 | +}); |
| 279 | + |
| 280 | +it('should allow all transitions for explicitly registered states', function () { |
| 281 | + $model = TestModelAllowAllTransitionsWithExplicitlyRegisteredStates::create(); |
| 282 | + |
| 283 | + expect($model->state) |
| 284 | + ->canTransitionTo(AllowAllTransitionsStateWithNoRegisteredStates\StateAWithNoRegisteredStates::class)->toBeTrue() |
| 285 | + ->canTransitionTo(AllowAllTransitionsStateWithNoRegisteredStates\StateBWithNoRegisteredStates::class)->toBeTrue() |
| 286 | + ->canTransitionTo(AllowAllTransitionsStateWithNoRegisteredStates\StateCWithNoRegisteredStates::class)->toBeTrue(); |
| 287 | + |
| 288 | + $model->state->transitionTo(AllowAllTransitionsStateWithNoRegisteredStates\StateBWithNoRegisteredStates::class); |
| 289 | + |
| 290 | + expect($model->state) |
| 291 | + ->canTransitionTo(AllowAllTransitionsStateWithNoRegisteredStates\StateAWithNoRegisteredStates::class)->toBeTrue() |
| 292 | + ->canTransitionTo(AllowAllTransitionsStateWithNoRegisteredStates\StateBWithNoRegisteredStates::class)->toBeTrue() |
| 293 | + ->canTransitionTo(AllowAllTransitionsStateWithNoRegisteredStates\StateCWithNoRegisteredStates::class)->toBeTrue(); |
| 294 | + |
| 295 | + $model->state->transitionTo(AllowAllTransitionsStateWithNoRegisteredStates\StateCWithNoRegisteredStates::class); |
273 | 296 |
|
| 297 | + expect($model->state) |
| 298 | + ->canTransitionTo(AllowAllTransitionsStateWithNoRegisteredStates\StateAWithNoRegisteredStates::class)->toBeTrue() |
| 299 | + ->canTransitionTo(AllowAllTransitionsStateWithNoRegisteredStates\StateBWithNoRegisteredStates::class)->toBeTrue() |
| 300 | + ->canTransitionTo(AllowAllTransitionsStateWithNoRegisteredStates\StateCWithNoRegisteredStates::class)->toBeTrue(); |
274 | 301 | });
|
275 | 302 |
|
276 | 303 | it('should throw exception when allowing all transitions when there are no registered states', function () {
|
277 | 304 | $this->expectException(InvalidConfig::class);
|
278 |
| - $this->expectExceptionMessage('No states registered for ' . AllowAllTransitionsStateWithNoRegisteredStates::class); |
| 305 | + $this->expectExceptionMessage('No states registered for ' . AllowAllTransitionsStateWithNoRegisteredStates\AllowAllTransitionsStateWithNoRegisteredStates::class); |
279 | 306 |
|
280 | 307 | TestModelAllowAllTransitionsWithNoRegisteredStates::create();
|
281 | 308 | });
|
0 commit comments