test_class.declarator: instantTaskExecutorRule = new InstantTaskExecutorRule()
test_class.modifier: @Rule
  	public
test_class.original_string: @Rule
  	public InstantTaskExecutorRule instantTaskExecutorRule = new InstantTaskExecutorRule();
test_class.type: InstantTaskExecutorRule
test_class.var_name: instantTaskExecutorRule
test_class.declarator: usecase
test_class.modifier: @Mock
test_class.original_string: @Mock
  	SearchNewsUseCase<NewsUI> usecase;
test_class.type: SearchNewsUseCase<NewsUI>
test_class.var_name: usecase
test_class.declarator: pagedList
test_class.modifier: @Mock
test_class.original_string: @Mock
  	PagedList<NewsUI> pagedList;
test_class.type: PagedList<NewsUI>
test_class.var_name: pagedList
test_class.declarator: viewModel
test_class.modifier: private
test_class.original_string: private SearchViewModel viewModel;
test_class.type: SearchViewModel
test_class.var_name: viewModel
test_class.declarator: query = "query"
test_class.modifier: private
test_class.original_string: private String query = "query";
test_class.type: String
test_class.var_name: query
test_class.file: presentation/src/test/java/com/ezz/presentation/viewmodel/search/SearchViewModelTest.java
test_class.identifier: SearchViewModelTest
test_case.body: @Test
  	public void verify_getSearchPagedList_called_only_once_time() {
  		when(usecase.getSearchPagedList(query)).thenReturn(Observable.just(pagedList));
  		verify(usecase, times(0)).getSearchPagedList(query);
  		viewModel.searchFor(query);
  		verify(usecase, times(1)).getSearchPagedList(query);
  		viewModel.searchFor(query);
  		verify(usecase, times(1)).getSearchPagedList(query);
  	}
test_case.class_method_signature: SearchViewModelTest.verify_getSearchPagedList_called_only_once_time()
test_case.full_signature: @Test public void verify_getSearchPagedList_called_only_once_time()
test_case.identifier: verify_getSearchPagedList_called_only_once_time
test_case.invocations: thenReturn when getSearchPagedList just getSearchPagedList verify times searchFor getSearchPagedList verify times searchFor getSearchPagedList verify times
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void verify_getSearchPagedList_called_only_once_time()
focal_class.declarator: searchQueryState
focal_class.modifier: private
focal_class.original_string: private String searchQueryState;
focal_class.type: String
focal_class.var_name: searchQueryState
focal_class.declarator: searchNewsUseCase
focal_class.modifier: private
focal_class.original_string: private SearchNewsUseCase<NewsUI> searchNewsUseCase;
focal_class.type: SearchNewsUseCase<NewsUI>
focal_class.var_name: searchNewsUseCase
focal_class.declarator: pagedListLiveData = new MutableLiveData<>()
focal_class.modifier: private
focal_class.original_string: private MutableLiveData<PagedList<NewsUI>> pagedListLiveData = new MutableLiveData<>();
focal_class.type: MutableLiveData<PagedList<NewsUI>>
focal_class.var_name: pagedListLiveData
focal_class.declarator: pagingDataStatus = new MutableLiveData<>()
focal_class.modifier: private
focal_class.original_string: private MutableLiveData<DataStatus> pagingDataStatus = new MutableLiveData<>();
focal_class.type: MutableLiveData<DataStatus>
focal_class.var_name: pagingDataStatus
focal_class.file: presentation/src/main/java/com/ezz/presentation/viewmodel/search/SearchViewModel.java
focal_class.identifier: SearchViewModel
focal_class.class_method_signature: SearchViewModel.SearchViewModel(@Named(value = IO_SCHEDULER) Scheduler subscribeOn, @Named(value = MAIN_THREAD_SCHEDULER) Scheduler observeOn, SearchNewsUseCase<NewsUI> searchNewsUseCase)
focal_class.full_signature: @Inject  SearchViewModel(@Named(value = IO_SCHEDULER) Scheduler subscribeOn, @Named(value = MAIN_THREAD_SCHEDULER) Scheduler observeOn, SearchNewsUseCase<NewsUI> searchNewsUseCase)
focal_class.identifier: SearchViewModel
focal_class.modifiers: @Inject
focal_class.parameters: (@Named(value = IO_SCHEDULER) Scheduler subscribeOn, @Named(value = MAIN_THREAD_SCHEDULER) Scheduler observeOn, SearchNewsUseCase<NewsUI> searchNewsUseCase)
focal_class.signature:  SearchViewModel(@Named(value = IO_SCHEDULER) Scheduler subscribeOn, @Named(value = MAIN_THREAD_SCHEDULER) Scheduler observeOn, SearchNewsUseCase<NewsUI> searchNewsUseCase)
focal_class.class_method_signature: SearchViewModel.searchFor(String query)
focal_class.full_signature: public void searchFor(String query)
focal_class.identifier: searchFor
focal_class.modifiers: public
focal_class.parameters: (String query)
focal_class.return: void
focal_class.signature: void searchFor(String query)
focal_class.class_method_signature: SearchViewModel.createPagedList(String query)
focal_class.full_signature: private void createPagedList(String query)
focal_class.identifier: createPagedList
focal_class.modifiers: private
focal_class.parameters: (String query)
focal_class.return: void
focal_class.signature: void createPagedList(String query)
focal_class.class_method_signature: SearchViewModel.getNewsLiveData()
focal_class.full_signature: public LiveData<PagedList<NewsUI>> getNewsLiveData()
focal_class.identifier: getNewsLiveData
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: LiveData<PagedList<NewsUI>>
focal_class.signature: LiveData<PagedList<NewsUI>> getNewsLiveData()
focal_class.class_method_signature: SearchViewModel.getPagingDataStatus()
focal_class.full_signature: public MutableLiveData<DataStatus> getPagingDataStatus()
focal_class.identifier: getPagingDataStatus
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: MutableLiveData<DataStatus>
focal_class.signature: MutableLiveData<DataStatus> getPagingDataStatus()
focal_class.class_method_signature: SearchViewModel.getSearchQueryState()
focal_class.full_signature: public String getSearchQueryState()
focal_class.identifier: getSearchQueryState
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String getSearchQueryState()
focal_class.superclass: extends BaseViewModel
focal_method.body: public void searchFor(String query) {
  		if (searchQueryState == null){
  			createPagedList(query);
  		}else {
  			searchNewsUseCase.updateSearchQuery(query);
  		}
  		searchQueryState = query;
  	}
focal_method.class_method_signature: SearchViewModel.searchFor(String query)
focal_method.full_signature: public void searchFor(String query)
focal_method.identifier: searchFor
focal_method.invocations: createPagedList updateSearchQuery
focal_method.modifiers: public
focal_method.parameters: (String query)
focal_method.return: void
focal_method.signature: void searchFor(String query)