//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void shouldNotRecoverOfflineIndex()
        public virtual void ShouldNotRecoverOfflineIndex()
        {
            // given
            IndexSamplingController controller = NewSamplingController(Always(true));

            when(_indexProxy.State).thenReturn(FAILED);

            // when
            controller.RecoverIndexSamples();

            // then
            verifyNoMoreInteractions(_jobFactory, _job, _tracker);
        }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void shouldNotRecoverOnlineIndexIfNotNeeded()
        public virtual void ShouldNotRecoverOnlineIndexIfNotNeeded()
        {
            // given
            IndexSamplingController controller = NewSamplingController(Always(false));

            when(_indexProxy.State).thenReturn(ONLINE);

            // when
            controller.RecoverIndexSamples();

            // then
            verifyNoMoreInteractions(_jobFactory, _job, _tracker);
        }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void shouldRecoverOnlineIndex()
        public virtual void ShouldRecoverOnlineIndex()
        {
            // given
            IndexSamplingController controller = NewSamplingController(Always(true));

            when(_indexProxy.State).thenReturn(ONLINE);

            // when
            controller.RecoverIndexSamples();

            // then
            verify(_jobFactory).create(_indexId, _indexProxy);
            verify(_job).run();
            verifyNoMoreInteractions(_jobFactory, _job, _tracker);
        }