@@ -21,7 +21,7 @@ public function testIsPayable()
2121 $ order_id = RandomGenerator::uuid ();
2222 $ session = Session::create ();
2323 $ session = Session::update ($ session ->session ->id , Factory::create ()
24- ->card ('5123450000000008 ' , 'AMR EMADELDIN AHMED ' , '05 ' , '21 ' , '100 ' )
24+ ->card ('5123450000000008 ' , 'AMR AHMED ' , '05 ' , '21 ' , '100 ' )
2525 ->get ()
2626 );
2727
@@ -49,7 +49,7 @@ public function testIsFailOnMissing3DS()
4949 $ three_d_s = RandomGenerator::uuid ();
5050 $ session = Session::create ();
5151 $ session = Session::update ($ session ->session ->id , Factory::create ()
52- ->card ('5123450000000008 ' , 'AMR EMADELDIN AHMED ' , '05 ' , '21 ' , '100 ' )
52+ ->card ('5123450000000008 ' , 'AMR AHMED ' , '05 ' , '21 ' , '100 ' )
5353 ->get ()
5454 );
5555
@@ -86,7 +86,7 @@ public function testIsRetrievable()
8686 $ order_id = RandomGenerator::uuid ();
8787 $ session = Session::create ();
8888 $ session = Session::update ($ session ->session ->id , Factory::create ()
89- ->card ('5123450000000008 ' , 'AMR EMADELDIN AHMED ' , '05 ' , '21 ' , '100 ' )
89+ ->card ('5123450000000008 ' , 'AMR AHMED ' , '05 ' , '21 ' , '100 ' )
9090 ->get ()
9191 );
9292
@@ -107,4 +107,91 @@ public function testIsRetrievable()
107107 $ this ->assertInstanceOf (Transaction::class, $ resource );
108108 }
109109
110+ public function testIsAvoidable ()
111+ {
112+ $ trans_id = RandomGenerator::uuid ();
113+ $ void_trans_id = RandomGenerator::uuid ();
114+ $ order_id = RandomGenerator::uuid ();
115+ $ session = Session::create ();
116+ $ session = Session::update ($ session ->session ->id , Factory::create ()
117+ ->card ('5123450000000008 ' , 'AMR AHMED ' , '05 ' , '21 ' , '100 ' )
118+ ->get ()
119+ );
120+
121+ $ factory = Factory::create ()
122+ ->apiOperation (ApiOp::PAY )
123+ ->session ($ session ->session ->id )
124+ ->order (100 , Currency::KWD , false )
125+ ->sourceOfFunds ('CARD ' );
126+
127+ Transaction::pay ($ trans_id , $ order_id , $ factory );
128+
129+ $ this ->expectsRequest (
130+ 'put ' ,
131+ '/order/ ' . $ order_id . '/transaction/ ' . $ void_trans_id
132+ );
133+
134+ $ factory = Factory::create ()->transaction ($ trans_id );
135+
136+ $ resource = Transaction::void ($ void_trans_id , $ order_id , $ factory );
137+ $ this ->assertInstanceOf (Transaction::class, $ resource );
138+ }
139+
140+ public function testIsRefundable ()
141+ {
142+ $ trans_id = RandomGenerator::uuid ();
143+ $ void_trans_id = RandomGenerator::uuid ();
144+ $ order_id = RandomGenerator::uuid ();
145+ $ session = Session::create ();
146+ $ session = Session::update ($ session ->session ->id , Factory::create ()
147+ ->card ('5123450000000008 ' , 'AMR AHMED ' , '05 ' , '21 ' , '100 ' )
148+ ->get ()
149+ );
150+
151+ $ factory = Factory::create ()
152+ ->apiOperation (ApiOp::PAY )
153+ ->session ($ session ->session ->id )
154+ ->order (100 , Currency::KWD , false )
155+ ->sourceOfFunds ('CARD ' );
156+
157+ Transaction::pay ($ trans_id , $ order_id , $ factory );
158+
159+ $ this ->expectsRequest (
160+ 'put ' ,
161+ '/order/ ' . $ order_id . '/transaction/ ' . $ void_trans_id
162+ );
163+
164+ $ factory = Factory::create ()->transaction (null , 50 , Currency::KWD );
165+
166+ $ resource = Transaction::refund ($ void_trans_id , $ order_id , $ factory );
167+ $ this ->assertInstanceOf (Transaction::class, $ resource );
168+
169+ print_r ($ resource );
170+ }
171+
172+ public function testIsVerifiable ()
173+ {
174+ $ trans_id = RandomGenerator::uuid ();
175+ $ order_id = RandomGenerator::uuid ();
176+ $ session = Session::create ();
177+ $ session = Session::update ($ session ->session ->id , Factory::create ()
178+ ->card ('5123450000000008 ' , 'AMR AHMED ' , '05 ' , '21 ' , '100 ' )
179+ ->get ()
180+ );
181+
182+ $ factory = Factory::create ()
183+ ->apiOperation (ApiOp::PAY )
184+ ->session ($ session ->session ->id )
185+ ->order (100 , Currency::KWD , false )
186+ ->sourceOfFunds ('CARD ' );
187+
188+ $ this ->expectsRequest (
189+ 'put ' ,
190+ '/order/ ' . $ order_id . '/transaction/ ' . $ trans_id
191+ );
192+
193+ $ resource = Transaction::verify ($ trans_id , $ order_id , $ factory );
194+ $ this ->assertInstanceOf (Transaction::class, $ resource );
195+ }
196+
110197}
0 commit comments