static boolean isAllowedMultiplicationBasedOnSpec(final Object left, final Object right, final EvaluationContext ctx) {
        if (left instanceof TemporalAmount && right instanceof TemporalAmount) {
            ctx.notifyEvt(() -> new InvalidParametersEvent(FEELEvent.Severity.ERROR, Msg.createMessage(Msg.INVALID_PARAMETERS_FOR_OPERATION, "multiplication",
                    left.getClass().getName(),
                    right.getClass().getName())));
            return false;
        }
        return true;
    }
@Test
    void isAllowedMultiplicationBasedOnSpecTest() {
        EvaluationContext evaluationContext = mock(EvaluationContext.class);
        Object left = 23;
        Object right = 354.5;
        assertThat(isAllowedMultiplicationBasedOnSpec(left, right, evaluationContext)).isTrue();
        verify(evaluationContext, never()).notifyEvt(any());
        right = Duration.of(5, DAYS);
        assertThat(isAllowedMultiplicationBasedOnSpec(left, right, evaluationContext)).isTrue();
        verify(evaluationContext, never()).notifyEvt(any());
        left = Duration.of(5, DAYS);
        right = 354.5;
        assertThat(isAllowedMultiplicationBasedOnSpec(left, right, evaluationContext)).isTrue();
        verify(evaluationContext, never()).notifyEvt(any());
        left = Duration.of(5, DAYS);
        right = Duration.of(5, DAYS);
        assertThat(isAllowedMultiplicationBasedOnSpec(left, right, evaluationContext)).isFalse();
        verify(evaluationContext, times(1)).notifyEvt(any(Supplier.class));
    }