22
33import static com .scalar .db .dataloader .core .UnitTestUtils .*;
44import static org .assertj .core .api .Assertions .assertThat ;
5-
5+ import static org .junit .jupiter .api .Assertions .assertEquals ;
6+ import static org .junit .jupiter .api .Assertions .assertNotNull ;
7+ import static org .mockito .ArgumentMatchers .any ;
8+ import static org .mockito .Mockito .mock ;
9+ import static org .mockito .Mockito .when ;
10+ import static org .mockito .Mockito .withSettings ;
11+
12+ import com .scalar .db .api .DistributedStorage ;
13+ import com .scalar .db .api .DistributedTransactionManager ;
614import com .scalar .db .api .Scan ;
715import com .scalar .db .api .ScanBuilder ;
16+ import com .scalar .db .api .Scanner ;
17+ import com .scalar .db .api .TransactionManagerCrudOperable ;
818import com .scalar .db .dataloader .core .ScanRange ;
19+ import com .scalar .db .exception .storage .ExecutionException ;
20+ import com .scalar .db .exception .transaction .CrudException ;
921import com .scalar .db .io .Key ;
1022import java .util .*;
1123import org .junit .jupiter .api .BeforeEach ;
@@ -15,10 +27,14 @@ class ScalarDbDaoTest {
1527
1628 private static final int TEST_VALUE_INT_MIN = 1 ;
1729 private ScalarDbDao dao ;
30+ private DistributedTransactionManager distributedTransactionManager ;
31+ private DistributedStorage distributedStorage ;
1832
1933 @ BeforeEach
2034 void setUp () {
2135 this .dao = new ScalarDbDao ();
36+ this .distributedStorage = mock (DistributedStorage .class );
37+ this .distributedTransactionManager = mock (DistributedTransactionManager .class );
2238 }
2339
2440 @ Test
@@ -151,6 +167,62 @@ void createScan_scanAllWithLimitAndProjection_shouldCreateScanAllObjectWithLimit
151167 assertThat (scan .toString ()).isEqualTo (expectedResult .toString ());
152168 }
153169
170+ @ Test
171+ void createScanner_withTransactionManager_ShouldCreateScannerObject ()
172+ throws CrudException , ScalarDbDaoException {
173+ // Create Scan Object
174+ TransactionManagerCrudOperable .Scanner mockScanner =
175+ mock (
176+ TransactionManagerCrudOperable .Scanner .class ,
177+ withSettings ().extraInterfaces (Scanner .class ));
178+ when (distributedTransactionManager .getScanner (any ())).thenReturn (mockScanner );
179+ Scanner result =
180+ this .dao .createScanner (
181+ TEST_NAMESPACE ,
182+ TEST_TABLE_NAME ,
183+ null ,
184+ new ScanRange (null , null , false , false ),
185+ new ArrayList <>(),
186+ new ArrayList <>(),
187+ 0 ,
188+ distributedTransactionManager );
189+ // Assert
190+ assertNotNull (result );
191+ assertEquals (mockScanner , result );
192+ result =
193+ this .dao .createScanner (
194+ TEST_NAMESPACE , TEST_TABLE_NAME , null , 0 , distributedTransactionManager );
195+ // Assert
196+ assertNotNull (result );
197+ assertEquals (mockScanner , result );
198+ }
199+
200+ @ Test
201+ void createScanner_withStorage_ShouldCreateScannerObject ()
202+ throws CrudException , ExecutionException , ScalarDbDaoException {
203+ // Create Scan Object
204+ Scanner mockScanner = mock (Scanner .class );
205+ when (distributedStorage .scan (any ())).thenReturn (mockScanner );
206+ Scanner result =
207+ this .dao .createScanner (
208+ TEST_NAMESPACE ,
209+ TEST_TABLE_NAME ,
210+ null ,
211+ new ScanRange (null , null , false , false ),
212+ new ArrayList <>(),
213+ new ArrayList <>(),
214+ 0 ,
215+ distributedStorage );
216+ // Assert
217+ assertNotNull (result );
218+ assertEquals (mockScanner , result );
219+
220+ result = this .dao .createScanner (TEST_NAMESPACE , TEST_TABLE_NAME , null , 0 , distributedStorage );
221+ // Assert
222+ assertNotNull (result );
223+ assertEquals (mockScanner , result );
224+ }
225+
154226 /**
155227 * Create Scan Object
156228 *
0 commit comments