//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test void doNotScheduleMonitorJobIfDisabled()
        internal virtual void DoNotScheduleMonitorJobIfDisabled()
        {
            KernelTransactionMonitorScheduler transactionMonitorScheduler = CreateMonitorScheduler(0);

            transactionMonitorScheduler.Start();

            verifyZeroInteractions(_scheduler);
        }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test void scheduleRecurringMonitorJobIfConfigured()
        internal virtual void ScheduleRecurringMonitorJobIfConfigured()
        {
            KernelTransactionMonitorScheduler transactionMonitorScheduler = CreateMonitorScheduler(1);

            transactionMonitorScheduler.Start();

            verify(_scheduler).scheduleRecurring(Group.TRANSACTION_TIMEOUT_MONITOR, _transactionTimeoutMonitor, 1, TimeUnit.MILLISECONDS);
        }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test void startJobTransactionMonitor()
        internal virtual void StartJobTransactionMonitor()
        {
            JobHandle jobHandle = Mockito.mock(typeof(JobHandle));

            when(_jobScheduler.scheduleRecurring(eq(Group.TRANSACTION_TIMEOUT_MONITOR), eq(_transactionMonitor), anyLong(), any(typeof(TimeUnit)))).thenReturn(jobHandle);

            KernelTransactionMonitorScheduler monitorScheduler = new KernelTransactionMonitorScheduler(_transactionMonitor, _jobScheduler, 7);

            monitorScheduler.Start();
            verify(_jobScheduler).scheduleRecurring(Group.TRANSACTION_TIMEOUT_MONITOR, _transactionMonitor, 7, TimeUnit.MILLISECONDS);

            monitorScheduler.Stop();
            verify(jobHandle).cancel(true);
        }