2929import org .apache .cloudstack .quota .activationrule .presetvariables .GenericPresetVariable ;
3030import org .apache .cloudstack .quota .activationrule .presetvariables .PresetVariableHelper ;
3131import org .apache .cloudstack .quota .activationrule .presetvariables .PresetVariables ;
32+ import org .apache .cloudstack .quota .activationrule .presetvariables .Tariff ;
3233import org .apache .cloudstack .quota .activationrule .presetvariables .Value ;
3334import org .apache .cloudstack .quota .constant .QuotaTypes ;
3435import org .apache .cloudstack .quota .dao .QuotaTariffDao ;
@@ -395,7 +396,7 @@ public void getQuotaTariffValueToBeAppliedTestActivationRuleIsNullReturnTariffVa
395396 Mockito .doReturn (null ).when (quotaTariffVoMock ).getActivationRule ();
396397 Mockito .doReturn (BigDecimal .ONE ).when (quotaTariffVoMock ).getCurrencyValue ();
397398
398- BigDecimal result = quotaManagerImplSpy .getQuotaTariffValueToBeApplied (quotaTariffVoMock , null , null );
399+ BigDecimal result = quotaManagerImplSpy .getQuotaTariffValueToBeApplied (quotaTariffVoMock , null , null , null );
399400
400401 Assert .assertEquals (BigDecimal .ONE , result );
401402 }
@@ -405,59 +406,66 @@ public void getQuotaTariffValueToBeAppliedTestActivationRuleIsEmptyReturnTariffV
405406 Mockito .doReturn ("" ).when (quotaTariffVoMock ).getActivationRule ();
406407 Mockito .doReturn (BigDecimal .TEN ).when (quotaTariffVoMock ).getCurrencyValue ();
407408
408- BigDecimal result = quotaManagerImplSpy .getQuotaTariffValueToBeApplied (quotaTariffVoMock , null , null );
409+ BigDecimal result = quotaManagerImplSpy .getQuotaTariffValueToBeApplied (quotaTariffVoMock , null , null , null );
409410
410411 Assert .assertEquals (BigDecimal .TEN , result );
411412 }
412413
413414 @ Test
414415 public void getQuotaTariffValueToBeAppliedTestScriptResultIsNumberReturnIt () {
415416 BigDecimal expected = new BigDecimal (50.1 );
417+ List <Tariff > lastTariffs = createLastAppliedTariffsPresetVariableList (0 );
418+
416419
417420 Mockito .doReturn (" " ).when (quotaTariffVoMock ).getActivationRule ();
418421 Mockito .doReturn (BigDecimal .TEN ).when (quotaTariffVoMock ).getCurrencyValue ();
419422 Mockito .doNothing ().when (quotaManagerImplSpy ).injectPresetVariablesIntoJsInterpreter (Mockito .any (), Mockito .any ());
420423 Mockito .doReturn (expected ).when (jsInterpreterMock ).executeScript (Mockito .anyString ());
421424
422- BigDecimal result = quotaManagerImplSpy .getQuotaTariffValueToBeApplied (quotaTariffVoMock , jsInterpreterMock , presetVariablesMock );
425+ BigDecimal result = quotaManagerImplSpy .getQuotaTariffValueToBeApplied (quotaTariffVoMock , jsInterpreterMock , presetVariablesMock , lastTariffs );
423426
424427 Assert .assertEquals (expected , result );
425428 }
426429
427430 @ Test
428431 public void getQuotaTariffValueToBeAppliedTestScriptResultIsTrueReturnTariffValue () {
429432 BigDecimal expected = new BigDecimal (236.84 );
433+ List <Tariff > lastTariffs = createLastAppliedTariffsPresetVariableList (0 );
430434
431435 Mockito .doReturn (" " ).when (quotaTariffVoMock ).getActivationRule ();
432436 Mockito .doReturn (expected ).when (quotaTariffVoMock ).getCurrencyValue ();
433437 Mockito .doNothing ().when (quotaManagerImplSpy ).injectPresetVariablesIntoJsInterpreter (Mockito .any (), Mockito .any ());
434438 Mockito .doReturn (true ).when (jsInterpreterMock ).executeScript (Mockito .anyString ());
435439
436- BigDecimal result = quotaManagerImplSpy .getQuotaTariffValueToBeApplied (quotaTariffVoMock , jsInterpreterMock , presetVariablesMock );
440+ BigDecimal result = quotaManagerImplSpy .getQuotaTariffValueToBeApplied (quotaTariffVoMock , jsInterpreterMock , presetVariablesMock , lastTariffs );
437441
438442 Assert .assertEquals (expected , result );
439443 }
440444
441445 @ Test
442446 public void getQuotaTariffValueToBeAppliedTestScriptResultIsFalseReturnZero () {
447+ List <Tariff > lastTariffs = createLastAppliedTariffsPresetVariableList (0 );
448+
443449 Mockito .doReturn (" " ).when (quotaTariffVoMock ).getActivationRule ();
444450 Mockito .doReturn (BigDecimal .TEN ).when (quotaTariffVoMock ).getCurrencyValue ();
445451 Mockito .doNothing ().when (quotaManagerImplSpy ).injectPresetVariablesIntoJsInterpreter (Mockito .any (), Mockito .any ());
446452 Mockito .doReturn (false ).when (jsInterpreterMock ).executeScript (Mockito .anyString ());
447453
448- BigDecimal result = quotaManagerImplSpy .getQuotaTariffValueToBeApplied (quotaTariffVoMock , jsInterpreterMock , presetVariablesMock );
454+ BigDecimal result = quotaManagerImplSpy .getQuotaTariffValueToBeApplied (quotaTariffVoMock , jsInterpreterMock , presetVariablesMock , lastTariffs );
449455
450456 Assert .assertEquals (BigDecimal .ZERO , result );
451457 }
452458
453459 @ Test
454460 public void getQuotaTariffValueToBeAppliedTestScriptResultIsNotBooleanNorNumericReturnZero () {
461+ List <Tariff > lastTariffs = createLastAppliedTariffsPresetVariableList (0 );
462+
455463 Mockito .doReturn (" " ).when (quotaTariffVoMock ).getActivationRule ();
456464 Mockito .doReturn (BigDecimal .TEN ).when (quotaTariffVoMock ).getCurrencyValue ();
457465 Mockito .doNothing ().when (quotaManagerImplSpy ).injectPresetVariablesIntoJsInterpreter (Mockito .any (), Mockito .any ());
458466 Mockito .doReturn ("test" ).when (jsInterpreterMock ).executeScript (Mockito .anyString ());
459467
460- BigDecimal result = quotaManagerImplSpy .getQuotaTariffValueToBeApplied (quotaTariffVoMock , jsInterpreterMock , presetVariablesMock );
468+ BigDecimal result = quotaManagerImplSpy .getQuotaTariffValueToBeApplied (quotaTariffVoMock , jsInterpreterMock , presetVariablesMock , lastTariffs );
461469
462470 Assert .assertEquals (BigDecimal .ZERO , result );
463471 }
@@ -477,10 +485,7 @@ public void getPresetVariablesTestHasTariffsWithActivationRuleReturnPresetVariab
477485
478486 @ Test
479487 public void aggregateQuotaTariffsValuesTestTariffsWereNotInPeriodToBeAppliedReturnZero () {
480- List <QuotaTariffVO > tariffs = new ArrayList <>();
481- tariffs .add (new QuotaTariffVO ());
482- tariffs .add (new QuotaTariffVO ());
483- tariffs .add (new QuotaTariffVO ());
488+ List <QuotaTariffVO > tariffs = createTariffList ();
484489
485490 Mockito .doReturn (false ).when (quotaManagerImplSpy ).isQuotaTariffInPeriodToBeApplied (Mockito .any (), Mockito .any (), Mockito .anyString ());
486491 BigDecimal result = quotaManagerImplSpy .aggregateQuotaTariffsValues (usageVoMock , tariffs , false , jsInterpreterMock , "" );
@@ -497,13 +502,10 @@ public void aggregateQuotaTariffsValuesTestTariffsIsEmptyReturnZero() {
497502
498503 @ Test
499504 public void aggregateQuotaTariffsValuesTestTariffsAreInPeriodToBeAppliedReturnAggregation () {
500- List <QuotaTariffVO > tariffs = new ArrayList <>();
501- tariffs .add (new QuotaTariffVO ());
502- tariffs .add (new QuotaTariffVO ());
503- tariffs .add (new QuotaTariffVO ());
505+ List <QuotaTariffVO > tariffs = createTariffList ();
504506
505507 Mockito .doReturn (true , false , true ).when (quotaManagerImplSpy ).isQuotaTariffInPeriodToBeApplied (Mockito .any (), Mockito .any (), Mockito .anyString ());
506- Mockito .doReturn (BigDecimal .TEN ).when (quotaManagerImplSpy ).getQuotaTariffValueToBeApplied (Mockito .any (), Mockito .any (), Mockito .any ());
508+ Mockito .doReturn (BigDecimal .TEN ).when (quotaManagerImplSpy ).getQuotaTariffValueToBeApplied (Mockito .any (), Mockito .any (), Mockito .any (), Mockito . any () );
507509 BigDecimal result = quotaManagerImplSpy .aggregateQuotaTariffsValues (usageVoMock , tariffs , false , jsInterpreterMock , "" );
508510
509511 Assert .assertEquals (BigDecimal .TEN .multiply (new BigDecimal (2 )), result );
@@ -528,4 +530,25 @@ public void persistUsagesAndQuotaUsagesAndRetrievePersistedQuotaUsagesTestReturn
528530 Assert .assertEquals (quotaUsageVoMock1 , result .get (0 ));
529531 Assert .assertEquals (quotaUsageVoMock2 , result .get (1 ));
530532 }
533+
534+ private static List <QuotaTariffVO > createTariffList () {
535+ List <QuotaTariffVO > tariffs = new ArrayList <>();
536+ tariffs .add (new QuotaTariffVO ());
537+ tariffs .add (new QuotaTariffVO ());
538+ tariffs .add (new QuotaTariffVO ());
539+ tariffs .forEach (quotaTariffVO -> quotaTariffVO .setPosition (1 ));
540+ return tariffs ;
541+ }
542+
543+ private static List <Tariff > createLastAppliedTariffsPresetVariableList (int numberOfTariffs ) {
544+ List <Tariff > lastTariffs = new ArrayList <>();
545+ for (int i = 0 ; i < numberOfTariffs ; i ++) {
546+ Tariff tariff = new Tariff ();
547+ tariff .setId (String .valueOf (i ));
548+ tariff .setValue (BigDecimal .valueOf (i ));
549+ lastTariffs .add (tariff );
550+ }
551+ return lastTariffs ;
552+ }
553+
531554}
0 commit comments