@@ 416-486 (lines=71) @@ | ||
413 | } |
|
414 | } |
|
415 | ||
416 | public function testCreateByPassException() |
|
417 | { |
|
418 | $this->resource |
|
419 | ->expects($this->exactly(4)) |
|
420 | ->method('getName') |
|
421 | ->will($this->returnValue($name = 'name')); |
|
422 | ||
423 | $this->objectManager |
|
424 | ->expects($this->once()) |
|
425 | ->method('persist') |
|
426 | ->with($this->identicalTo($object = new \stdClass())); |
|
427 | ||
428 | $this->objectManager |
|
429 | ->expects($this->once()) |
|
430 | ->method('flush') |
|
431 | ->will($this->throwException(new \Exception())); |
|
432 | ||
433 | $this->eventDispatcher |
|
434 | ->expects($this->at(0)) |
|
435 | ->method('dispatch') |
|
436 | ->with( |
|
437 | $this->identicalTo('lug.'.$name.'.pre_'.($createAction = 'create')), |
|
438 | $this->callback(function (DomainEvent $event) use ($createAction, $object) { |
|
439 | return $event->getResource() === $this->resource |
|
440 | && $event->getObject() === $object |
|
441 | && $event->getAction() === $createAction; |
|
442 | }) |
|
443 | ); |
|
444 | ||
445 | $this->eventDispatcher |
|
446 | ->expects($this->at(1)) |
|
447 | ->method('dispatch') |
|
448 | ->with( |
|
449 | $this->identicalTo('lug.'.$name.'.pre_'.($flushAction = 'flush')), |
|
450 | $this->callback(function (DomainEvent $event) use ($flushAction, $object) { |
|
451 | return $event->getResource() === $this->resource |
|
452 | && $event->getObject() === $object |
|
453 | && $event->getAction() === $flushAction; |
|
454 | }) |
|
455 | ); |
|
456 | ||
457 | $this->eventDispatcher |
|
458 | ->expects($this->at(2)) |
|
459 | ->method('dispatch') |
|
460 | ->with( |
|
461 | $this->identicalTo('lug.'.$name.'.error_'.$flushAction), |
|
462 | $this->callback(function (DomainEvent $event) use ($flushAction, $object) { |
|
463 | return $event->getResource() === $this->resource |
|
464 | && $event->getObject() === $object |
|
465 | && $event->getAction() === $flushAction; |
|
466 | }) |
|
467 | ); |
|
468 | ||
469 | $this->eventDispatcher |
|
470 | ->expects($this->at(3)) |
|
471 | ->method('dispatch') |
|
472 | ->with( |
|
473 | $this->identicalTo('lug.'.$name.'.error_'.$createAction), |
|
474 | $this->callback(function (DomainEvent $event) use ($object, $createAction) { |
|
475 | $result = $event->getResource() === $this->resource |
|
476 | && $event->getObject() === $object |
|
477 | && $event->getAction() === $createAction; |
|
478 | ||
479 | $event->setStopped(false); |
|
480 | ||
481 | return $result; |
|
482 | }) |
|
483 | ); |
|
484 | ||
485 | $this->domainManager->create($object); |
|
486 | } |
|
487 | ||
488 | public function testUpdateWithManagedObject() |
|
489 | { |
|
@@ 758-828 (lines=71) @@ | ||
755 | } |
|
756 | } |
|
757 | ||
758 | public function testUpdateByPassException() |
|
759 | { |
|
760 | $this->resource |
|
761 | ->expects($this->exactly(4)) |
|
762 | ->method('getName') |
|
763 | ->will($this->returnValue($name = 'name')); |
|
764 | ||
765 | $this->objectManager |
|
766 | ->expects($this->once()) |
|
767 | ->method('persist') |
|
768 | ->with($this->identicalTo($object = new \stdClass())); |
|
769 | ||
770 | $this->objectManager |
|
771 | ->expects($this->once()) |
|
772 | ->method('flush') |
|
773 | ->will($this->throwException(new \Exception())); |
|
774 | ||
775 | $this->eventDispatcher |
|
776 | ->expects($this->at(0)) |
|
777 | ->method('dispatch') |
|
778 | ->with( |
|
779 | $this->identicalTo('lug.'.$name.'.pre_'.($updateAction = 'update')), |
|
780 | $this->callback(function (DomainEvent $event) use ($updateAction, $object) { |
|
781 | return $event->getResource() === $this->resource |
|
782 | && $event->getObject() === $object |
|
783 | && $event->getAction() === $updateAction; |
|
784 | }) |
|
785 | ); |
|
786 | ||
787 | $this->eventDispatcher |
|
788 | ->expects($this->at(1)) |
|
789 | ->method('dispatch') |
|
790 | ->with( |
|
791 | $this->identicalTo('lug.'.$name.'.pre_'.($flushAction = 'flush')), |
|
792 | $this->callback(function (DomainEvent $event) use ($flushAction, $object) { |
|
793 | return $event->getResource() === $this->resource |
|
794 | && $event->getObject() === $object |
|
795 | && $event->getAction() === $flushAction; |
|
796 | }) |
|
797 | ); |
|
798 | ||
799 | $this->eventDispatcher |
|
800 | ->expects($this->at(2)) |
|
801 | ->method('dispatch') |
|
802 | ->with( |
|
803 | $this->identicalTo('lug.'.$name.'.error_'.$flushAction), |
|
804 | $this->callback(function (DomainEvent $event) use ($flushAction, $object) { |
|
805 | return $event->getResource() === $this->resource |
|
806 | && $event->getObject() === $object |
|
807 | && $event->getAction() === $flushAction; |
|
808 | }) |
|
809 | ); |
|
810 | ||
811 | $this->eventDispatcher |
|
812 | ->expects($this->at(3)) |
|
813 | ->method('dispatch') |
|
814 | ->with( |
|
815 | $this->identicalTo('lug.'.$name.'.error_'.$updateAction), |
|
816 | $this->callback(function (DomainEvent $event) use ($object, $updateAction) { |
|
817 | $result = $event->getResource() === $this->resource |
|
818 | && $event->getObject() === $object |
|
819 | && $event->getAction() === $updateAction; |
|
820 | ||
821 | $event->setStopped(false); |
|
822 | ||
823 | return $result; |
|
824 | }) |
|
825 | ); |
|
826 | ||
827 | $this->domainManager->update($object); |
|
828 | } |
|
829 | ||
830 | public function testDelete() |
|
831 | { |
|
@@ 1022-1092 (lines=71) @@ | ||
1019 | } |
|
1020 | } |
|
1021 | ||
1022 | public function testDeleteByPassException() |
|
1023 | { |
|
1024 | $this->resource |
|
1025 | ->expects($this->exactly(4)) |
|
1026 | ->method('getName') |
|
1027 | ->will($this->returnValue($name = 'name')); |
|
1028 | ||
1029 | $this->objectManager |
|
1030 | ->expects($this->once()) |
|
1031 | ->method('remove') |
|
1032 | ->with($this->identicalTo($object = new \stdClass())); |
|
1033 | ||
1034 | $this->objectManager |
|
1035 | ->expects($this->once()) |
|
1036 | ->method('flush') |
|
1037 | ->will($this->throwException(new \Exception())); |
|
1038 | ||
1039 | $this->eventDispatcher |
|
1040 | ->expects($this->at(0)) |
|
1041 | ->method('dispatch') |
|
1042 | ->with( |
|
1043 | $this->identicalTo('lug.'.$name.'.pre_'.($deleteAction = 'delete')), |
|
1044 | $this->callback(function (DomainEvent $event) use ($deleteAction, $object) { |
|
1045 | return $event->getResource() === $this->resource |
|
1046 | && $event->getObject() === $object |
|
1047 | && $event->getAction() === $deleteAction; |
|
1048 | }) |
|
1049 | ); |
|
1050 | ||
1051 | $this->eventDispatcher |
|
1052 | ->expects($this->at(1)) |
|
1053 | ->method('dispatch') |
|
1054 | ->with( |
|
1055 | $this->identicalTo('lug.'.$name.'.pre_'.($flushAction = 'flush')), |
|
1056 | $this->callback(function (DomainEvent $event) use ($flushAction, $object) { |
|
1057 | return $event->getResource() === $this->resource |
|
1058 | && $event->getObject() === $object |
|
1059 | && $event->getAction() === $flushAction; |
|
1060 | }) |
|
1061 | ); |
|
1062 | ||
1063 | $this->eventDispatcher |
|
1064 | ->expects($this->at(2)) |
|
1065 | ->method('dispatch') |
|
1066 | ->with( |
|
1067 | $this->identicalTo('lug.'.$name.'.error_'.$flushAction), |
|
1068 | $this->callback(function (DomainEvent $event) use ($flushAction, $object) { |
|
1069 | return $event->getResource() === $this->resource |
|
1070 | && $event->getObject() === $object |
|
1071 | && $event->getAction() === $flushAction; |
|
1072 | }) |
|
1073 | ); |
|
1074 | ||
1075 | $this->eventDispatcher |
|
1076 | ->expects($this->at(3)) |
|
1077 | ->method('dispatch') |
|
1078 | ->with( |
|
1079 | $this->identicalTo('lug.'.$name.'.error_'.$deleteAction), |
|
1080 | $this->callback(function (DomainEvent $event) use ($object, $deleteAction) { |
|
1081 | $result = $event->getResource() === $this->resource |
|
1082 | && $event->getObject() === $object |
|
1083 | && $event->getAction() === $deleteAction; |
|
1084 | ||
1085 | $event->setStopped(false); |
|
1086 | ||
1087 | return $result; |
|
1088 | }) |
|
1089 | ); |
|
1090 | ||
1091 | $this->domainManager->delete($object); |
|
1092 | } |
|
1093 | ||
1094 | public function testFlush() |
|
1095 | { |