@@ -15,13 +15,13 @@ public function testBeginningTransactions()
1515 $ manager ->begin ('default ' , 2 );
1616 $ manager ->begin ('admin ' , 1 );
1717
18- $ this ->assertCount (3 , $ manager ->getTransactions ());
19- $ this ->assertSame ('default ' , $ manager ->getTransactions ()[0 ]->connection );
20- $ this ->assertEquals (1 , $ manager ->getTransactions ()[0 ]->level );
21- $ this ->assertSame ('default ' , $ manager ->getTransactions ()[1 ]->connection );
22- $ this ->assertEquals (2 , $ manager ->getTransactions ()[1 ]->level );
23- $ this ->assertSame ('admin ' , $ manager ->getTransactions ()[2 ]->connection );
24- $ this ->assertEquals (1 , $ manager ->getTransactions ()[2 ]->level );
18+ $ this ->assertCount (3 , $ manager ->getPendingTransactions ());
19+ $ this ->assertSame ('default ' , $ manager ->getPendingTransactions ()[0 ]->connection );
20+ $ this ->assertEquals (1 , $ manager ->getPendingTransactions ()[0 ]->level );
21+ $ this ->assertSame ('default ' , $ manager ->getPendingTransactions ()[1 ]->connection );
22+ $ this ->assertEquals (2 , $ manager ->getPendingTransactions ()[1 ]->level );
23+ $ this ->assertSame ('admin ' , $ manager ->getPendingTransactions ()[2 ]->connection );
24+ $ this ->assertEquals (1 , $ manager ->getPendingTransactions ()[2 ]->level );
2525 }
2626
2727 public function testRollingBackTransactions ()
@@ -34,13 +34,13 @@ public function testRollingBackTransactions()
3434
3535 $ manager ->rollback ('default ' , 1 );
3636
37- $ this ->assertCount (2 , $ manager ->getTransactions ());
37+ $ this ->assertCount (2 , $ manager ->getPendingTransactions ());
3838
39- $ this ->assertSame ('default ' , $ manager ->getTransactions ()[0 ]->connection );
40- $ this ->assertEquals (1 , $ manager ->getTransactions ()[0 ]->level );
39+ $ this ->assertSame ('default ' , $ manager ->getPendingTransactions ()[0 ]->connection );
40+ $ this ->assertEquals (1 , $ manager ->getPendingTransactions ()[0 ]->level );
4141
42- $ this ->assertSame ('admin ' , $ manager ->getTransactions ()[1 ]->connection );
43- $ this ->assertEquals (1 , $ manager ->getTransactions ()[1 ]->level );
42+ $ this ->assertSame ('admin ' , $ manager ->getPendingTransactions ()[1 ]->connection );
43+ $ this ->assertEquals (1 , $ manager ->getPendingTransactions ()[1 ]->level );
4444 }
4545
4646 public function testRollingBackTransactionsAllTheWay ()
@@ -53,10 +53,10 @@ public function testRollingBackTransactionsAllTheWay()
5353
5454 $ manager ->rollback ('default ' , 0 );
5555
56- $ this ->assertCount (1 , $ manager ->getTransactions ());
56+ $ this ->assertCount (1 , $ manager ->getPendingTransactions ());
5757
58- $ this ->assertSame ('admin ' , $ manager ->getTransactions ()[0 ]->connection );
59- $ this ->assertEquals (1 , $ manager ->getTransactions ()[0 ]->level );
58+ $ this ->assertSame ('admin ' , $ manager ->getPendingTransactions ()[0 ]->connection );
59+ $ this ->assertEquals (1 , $ manager ->getPendingTransactions ()[0 ]->level );
6060 }
6161
6262 public function testCommittingTransactions ()
@@ -67,12 +67,15 @@ public function testCommittingTransactions()
6767 $ manager ->begin ('default ' , 2 );
6868 $ manager ->begin ('admin ' , 1 );
6969
70+ $ manager ->stageTransactions ('default ' );
71+ $ manager ->stageTransactions ('admin ' );
7072 $ manager ->commit ('default ' );
7173
72- $ this ->assertCount (1 , $ manager ->getTransactions ());
74+ $ this ->assertCount (0 , $ manager ->getPendingTransactions ());
75+ $ this ->assertCount (1 , $ manager ->getCommittedTransactions ());
7376
74- $ this ->assertSame ('admin ' , $ manager ->getTransactions ()[0 ]->connection );
75- $ this ->assertEquals (1 , $ manager ->getTransactions ()[0 ]->level );
77+ $ this ->assertSame ('admin ' , $ manager ->getCommittedTransactions ()[0 ]->connection );
78+ $ this ->assertEquals (1 , $ manager ->getCommittedTransactions ()[0 ]->level );
7679 }
7780
7881 public function testCallbacksAreAddedToTheCurrentTransaction ()
@@ -93,9 +96,9 @@ public function testCallbacksAreAddedToTheCurrentTransaction()
9396 $ manager ->addCallback (function () use (&$ callbacks ) {
9497 });
9598
96- $ this ->assertCount (1 , $ manager ->getTransactions ()[0 ]->getCallbacks ());
97- $ this ->assertCount (0 , $ manager ->getTransactions ()[1 ]->getCallbacks ());
98- $ this ->assertCount (1 , $ manager ->getTransactions ()[2 ]->getCallbacks ());
99+ $ this ->assertCount (1 , $ manager ->getPendingTransactions ()[0 ]->getCallbacks ());
100+ $ this ->assertCount (0 , $ manager ->getPendingTransactions ()[1 ]->getCallbacks ());
101+ $ this ->assertCount (1 , $ manager ->getPendingTransactions ()[2 ]->getCallbacks ());
99102 }
100103
101104 public function testCommittingTransactionsExecutesCallbacks ()
@@ -118,6 +121,7 @@ public function testCommittingTransactionsExecutesCallbacks()
118121
119122 $ manager ->begin ('admin ' , 1 );
120123
124+ $ manager ->stageTransactions ('default ' );
121125 $ manager ->commit ('default ' );
122126
123127 $ this ->assertCount (2 , $ callbacks );
@@ -144,6 +148,7 @@ public function testCommittingExecutesOnlyCallbacksOfTheConnection()
144148 $ callbacks [] = ['admin ' , 1 ];
145149 });
146150
151+ $ manager ->stageTransactions ('default ' );
147152 $ manager ->commit ('default ' );
148153
149154 $ this ->assertCount (1 , $ callbacks );
@@ -163,4 +168,33 @@ public function testCallbackIsExecutedIfNoTransactions()
163168 $ this ->assertCount (1 , $ callbacks );
164169 $ this ->assertEquals (['default ' , 1 ], $ callbacks [0 ]);
165170 }
171+
172+ public function testStageTransactions ()
173+ {
174+ $ manager = (new DatabaseTransactionsManager );
175+
176+ $ manager ->begin ('default ' , 1 );
177+ $ manager ->begin ('admin ' , 1 );
178+
179+ $ this ->assertCount (2 , $ manager ->getPendingTransactions ());
180+
181+ $ pendingTransactions = $ manager ->getPendingTransactions ();
182+
183+ $ this ->assertEquals (1 , $ pendingTransactions [0 ]->level );
184+ $ this ->assertEquals ('default ' , $ pendingTransactions [0 ]->connection );
185+ $ this ->assertEquals (1 , $ pendingTransactions [1 ]->level );
186+ $ this ->assertEquals ('admin ' , $ pendingTransactions [1 ]->connection );
187+
188+ $ manager ->stageTransactions ('default ' );
189+
190+ $ this ->assertCount (1 , $ manager ->getPendingTransactions ());
191+ $ this ->assertCount (1 , $ manager ->getCommittedTransactions ());
192+ $ this ->assertEquals ('default ' , $ manager ->getCommittedTransactions ()[0 ]->connection );
193+
194+ $ manager ->stageTransactions ('admin ' );
195+
196+ $ this ->assertCount (0 , $ manager ->getPendingTransactions ());
197+ $ this ->assertCount (2 , $ manager ->getCommittedTransactions ());
198+ $ this ->assertEquals ('admin ' , $ manager ->getCommittedTransactions ()[1 ]->connection );
199+ }
166200}
0 commit comments