5151import static org .mockito .Mockito .doReturn ;
5252import static org .mockito .Mockito .eq ;
5353import static org .mockito .Mockito .mock ;
54+ import static org .mockito .Mockito .never ;
5455import static org .mockito .Mockito .times ;
5556import static org .mockito .Mockito .verify ;
5657import static org .mockito .Mockito .when ;
@@ -61,6 +62,9 @@ public class CapacityDaoImplTest {
6162 @ InjectMocks
6263 CapacityDaoImpl capacityDao = new CapacityDaoImpl ();
6364
65+ @ Mock
66+ private CapacityVO mockEntity ;
67+
6468 @ Mock
6569 private TransactionLegacy txn ;
6670 @ Mock
@@ -71,6 +75,8 @@ public class CapacityDaoImplTest {
7175
7276 private SearchBuilder <CapacityVO > searchBuilder ;
7377 private SearchCriteria <CapacityVO > searchCriteria ;
78+ private List <Short > capacityTypes ;
79+ private List <CapacityVO > expectedCapacities ;
7480
7581 @ Before
7682 public void setUp () {
@@ -83,6 +89,17 @@ public void setUp() {
8389
8490 mockedTransactionLegacy = Mockito .mockStatic (TransactionLegacy .class );
8591 mockedTransactionLegacy .when (TransactionLegacy ::currentTxn ).thenReturn (txn );
92+
93+ // Setup common test data
94+ capacityTypes = Arrays .asList ((short ) 1 , (short ) 2 , (short ) 3 );
95+ expectedCapacities = Arrays .asList (mock (CapacityVO .class ), mock (CapacityVO .class ));
96+ doReturn (expectedCapacities ).when (capacityDao ).listBy (searchCriteria );
97+ }
98+
99+ private CapacityVO createMockCapacityVO (Long id ) {
100+ CapacityVO capacity = mock (CapacityVO .class );
101+ when (capacity .getId ()).thenReturn (id );
102+ return capacity ;
86103 }
87104
88105 @ After
@@ -330,4 +347,207 @@ public void testFindCapacityByEmptyResult() throws Exception {
330347 assertNotNull (result );
331348 assertTrue (result .isEmpty ());
332349 }
350+
351+ @ Test
352+ public void testListHostCapacityByCapacityTypes_WithAllParameters () {
353+ // Given
354+ Long zoneId = 100L ;
355+ Long clusterId = 200L ;
356+
357+ // When
358+ List <CapacityVO > result = capacityDao .listHostCapacityByCapacityTypes (zoneId , clusterId , capacityTypes );
359+
360+ // Then
361+ verify (searchBuilder ).and ("zoneId" , mockEntity .getDataCenterId (), SearchCriteria .Op .EQ );
362+ verify (searchBuilder ).and ("clusterId" , mockEntity .getClusterId (), SearchCriteria .Op .EQ );
363+ verify (searchBuilder ).and ("capacityTypes" , mockEntity .getCapacityType (), SearchCriteria .Op .IN );
364+ verify (searchBuilder ).and ("capacityState" , mockEntity .getCapacityState (), SearchCriteria .Op .EQ );
365+
366+ verify (searchCriteria ).setParameters ("capacityState" , "Enabled" );
367+ verify (searchCriteria ).setParameters ("zoneId" , zoneId );
368+ verify (searchCriteria ).setParameters ("clusterId" , clusterId );
369+ verify (searchCriteria ).setParameters ("capacityTypes" , capacityTypes .toArray ());
370+
371+ verify (capacityDao ).listBy (searchCriteria );
372+ assertEquals ("Should return expected capacities" , expectedCapacities , result );
373+ }
374+
375+ @ Test
376+ public void testListHostCapacityByCapacityTypes_WithNullZoneId () {
377+ // Given
378+ Long clusterId = 200L ;
379+
380+ // When
381+ List <CapacityVO > result = capacityDao .listHostCapacityByCapacityTypes (null , clusterId , capacityTypes );
382+
383+ // Then
384+ verify (searchCriteria ).setParameters ("capacityState" , "Enabled" );
385+ verify (searchCriteria , Mockito .times (0 )).setParameters (eq ("zoneId" ), any ());
386+ verify (searchCriteria ).setParameters ("clusterId" , clusterId );
387+ verify (searchCriteria ).setParameters ("capacityTypes" , capacityTypes .toArray ());
388+
389+ assertEquals ("Should return expected capacities" , expectedCapacities , result );
390+ }
391+
392+ @ Test
393+ public void testListHostCapacityByCapacityTypes_WithNullClusterId () {
394+ // Given
395+ Long zoneId = 100L ;
396+
397+ // When
398+ List <CapacityVO > result = capacityDao .listHostCapacityByCapacityTypes (zoneId , null , capacityTypes );
399+
400+ // Then
401+ verify (searchCriteria ).setParameters ("capacityState" , "Enabled" );
402+ verify (searchCriteria ).setParameters ("zoneId" , zoneId );
403+ verify (searchCriteria , never ()).setParameters (eq ("clusterId" ), any ());
404+ verify (searchCriteria ).setParameters ("capacityTypes" , capacityTypes .toArray ());
405+
406+ assertEquals ("Should return expected capacities" , expectedCapacities , result );
407+ }
408+
409+ @ Test
410+ public void testListHostCapacityByCapacityTypes_WithEmptyCapacityTypes () {
411+ // Given
412+ Long zoneId = 100L ;
413+ Long clusterId = 200L ;
414+ List <Short > emptyCapacityTypes = Collections .emptyList ();
415+
416+ // When
417+ List <CapacityVO > result = capacityDao .listHostCapacityByCapacityTypes (zoneId , clusterId , emptyCapacityTypes );
418+
419+ // Then
420+ verify (searchCriteria ).setParameters ("capacityTypes" , emptyCapacityTypes .toArray ());
421+ assertEquals ("Should return expected capacities" , expectedCapacities , result );
422+ }
423+
424+ @ Test
425+ public void testListPodCapacityByCapacityTypes_WithAllParameters () {
426+ // Given
427+ Long zoneId = 100L ;
428+
429+ // When
430+ List <CapacityVO > result = capacityDao .listPodCapacityByCapacityTypes (zoneId , capacityTypes );
431+
432+ // Then
433+ verify (searchBuilder ).and ("zoneId" , mockEntity .getDataCenterId (), SearchCriteria .Op .EQ );
434+ verify (searchBuilder ).and ("capacityTypes" , mockEntity .getCapacityType (), SearchCriteria .Op .IN );
435+ verify (searchBuilder ).and ("capacityState" , mockEntity .getCapacityState (), SearchCriteria .Op .EQ );
436+
437+ verify (searchCriteria ).setParameters ("capacityState" , "Enabled" );
438+ verify (searchCriteria ).setParameters ("zoneId" , zoneId );
439+ verify (searchCriteria ).setParameters ("capacityTypes" , capacityTypes .toArray ());
440+
441+ assertEquals ("Should return expected capacities" , expectedCapacities , result );
442+ }
443+
444+ @ Test
445+ public void testListPodCapacityByCapacityTypes_WithNullZoneId () {
446+ // When
447+ List <CapacityVO > result = capacityDao .listPodCapacityByCapacityTypes (null , capacityTypes );
448+
449+ // Then
450+ verify (searchCriteria ).setParameters ("capacityState" , "Enabled" );
451+ verify (searchCriteria , never ()).setParameters (eq ("zoneId" ), any ());
452+ verify (searchCriteria ).setParameters ("capacityTypes" , capacityTypes .toArray ());
453+
454+ assertEquals ("Should return expected capacities" , expectedCapacities , result );
455+ }
456+
457+ @ Test
458+ public void testListClusterCapacityByCapacityTypes_WithAllParameters () {
459+ // Given
460+ Long zoneId = 100L ;
461+ Long podId = 300L ;
462+
463+ // When
464+ List <CapacityVO > result = capacityDao .listClusterCapacityByCapacityTypes (zoneId , podId , capacityTypes );
465+
466+ // Then
467+ verify (searchBuilder ).and ("zoneId" , mockEntity .getDataCenterId (), SearchCriteria .Op .EQ );
468+ verify (searchBuilder ).and ("podId" , mockEntity .getPodId (), SearchCriteria .Op .EQ );
469+ verify (searchBuilder ).and ("capacityTypes" , mockEntity .getCapacityType (), SearchCriteria .Op .IN );
470+ verify (searchBuilder ).and ("capacityState" , mockEntity .getCapacityState (), SearchCriteria .Op .EQ );
471+
472+ verify (searchCriteria ).setParameters ("capacityState" , "Enabled" );
473+ verify (searchCriteria ).setParameters ("zoneId" , zoneId );
474+ verify (searchCriteria ).setParameters ("podId" , podId );
475+ verify (searchCriteria ).setParameters ("capacityTypes" , capacityTypes .toArray ());
476+
477+ assertEquals ("Should return expected capacities" , expectedCapacities , result );
478+ }
479+
480+ @ Test
481+ public void testListClusterCapacityByCapacityTypes_WithNullZoneId () {
482+ // Given
483+ Long podId = 300L ;
484+
485+ // When
486+ List <CapacityVO > result = capacityDao .listClusterCapacityByCapacityTypes (null , podId , capacityTypes );
487+
488+ // Then
489+ verify (searchCriteria ).setParameters ("capacityState" , "Enabled" );
490+ verify (searchCriteria , never ()).setParameters (eq ("zoneId" ), any ());
491+ verify (searchCriteria ).setParameters ("podId" , podId );
492+ verify (searchCriteria ).setParameters ("capacityTypes" , capacityTypes .toArray ());
493+
494+ assertEquals ("Should return expected capacities" , expectedCapacities , result );
495+ }
496+
497+ @ Test
498+ public void testListClusterCapacityByCapacityTypes_WithNullPodId () {
499+ // Given
500+ Long zoneId = 100L ;
501+
502+ // When
503+ List <CapacityVO > result = capacityDao .listClusterCapacityByCapacityTypes (zoneId , null , capacityTypes );
504+
505+ // Then
506+ verify (searchCriteria ).setParameters ("capacityState" , "Enabled" );
507+ verify (searchCriteria ).setParameters ("zoneId" , zoneId );
508+ verify (searchCriteria , never ()).setParameters (eq ("podId" ), any ());
509+ verify (searchCriteria ).setParameters ("capacityTypes" , capacityTypes .toArray ());
510+
511+ assertEquals ("Should return expected capacities" , expectedCapacities , result );
512+ }
513+
514+ @ Test
515+ public void testListClusterCapacityByCapacityTypes_WithBothIdsNull () {
516+ // When
517+ List <CapacityVO > result = capacityDao .listClusterCapacityByCapacityTypes (null , null , capacityTypes );
518+
519+ // Then
520+ verify (searchCriteria ).setParameters ("capacityState" , "Enabled" );
521+ verify (searchCriteria , never ()).setParameters (eq ("zoneId" ), any ());
522+ verify (searchCriteria , never ()).setParameters (eq ("podId" ), any ());
523+ verify (searchCriteria ).setParameters ("capacityTypes" , capacityTypes .toArray ());
524+
525+ assertEquals ("Should return expected capacities" , expectedCapacities , result );
526+ }
527+
528+ @ Test
529+ public void testAllMethods_VerifySearchBuilderSetup () {
530+ // Test that all methods properly set up the search builder
531+ Long zoneId = 100L ;
532+ Long clusterId = 200L ;
533+ Long podId = 300L ;
534+
535+ // Test host capacity method
536+ capacityDao .listHostCapacityByCapacityTypes (zoneId , clusterId , capacityTypes );
537+
538+ // Test pod capacity method
539+ capacityDao .listPodCapacityByCapacityTypes (zoneId , capacityTypes );
540+
541+ // Test cluster capacity method
542+ capacityDao .listClusterCapacityByCapacityTypes (zoneId , podId , capacityTypes );
543+
544+ // Verify createSearchBuilder was called 3 times
545+ verify (capacityDao , times (3 )).createSearchBuilder ();
546+
547+ // Verify done() was called 3 times
548+ verify (searchBuilder , times (3 )).done ();
549+
550+ // Verify listBy was called 3 times
551+ verify (capacityDao , times (3 )).listBy (searchCriteria );
552+ }
333553}
0 commit comments