test_class.declarator: mMockParseHelper
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private ParseHelper mMockParseHelper;
test_class.type: ParseHelper
test_class.var_name: mMockParseHelper
test_class.declarator: mParseQueryArgumentCaptor
test_class.modifier: @Captor
test_class.original_string: @Captor
      ArgumentCaptor<ParseQuery<ParseObject>> mParseQueryArgumentCaptor;
test_class.type: ArgumentCaptor<ParseQuery<ParseObject>>
test_class.var_name: mParseQueryArgumentCaptor
test_class.declarator: mTarget
test_class.modifier: private
test_class.original_string: private ParseConversationDataSource mTarget;
test_class.type: ParseConversationDataSource
test_class.var_name: mTarget
test_class.file: ExampleApp/src/test/java/com/badoo/chateau/example/data/repos/conversations/ParseConversationDataSourceTest.java
test_class.identifier: ParseConversationDataSourceTest
test_class.superclass: extends BaseRxTestCase
test_case.body: @Test
      public void getConversation() {
          // Setup
          final String userId = "userId";
          mockCurrentUser(userId);
  
          final List<ParseObject> subscriptions = ModelTestHelper.createSubscriptions(10);
          final String chatId = "chatId";
          when(mMockParseHelper.find(Mockito.<ParseQuery<ParseObject>>any())).thenReturn(Observable.just(subscriptions));
  
          // Execute
          final TestSubscriber<ExampleConversation> testSubscriber = executeTarget(mTarget.get(new GetConversationQuery(chatId)));
  
          // Assert
          testSubscriber.assertCompleted();
          verify(mMockParseHelper).find(mParseQueryArgumentCaptor.capture());
  
          final ParseQuery<ParseObject> parseQuery = mParseQueryArgumentCaptor.getValue();
          assertThat(testSubscriber.getOnNextEvents().size(), is(10));
          assertThat(parseQuery.getClassName(), is(ChatSubscriptionTable.NAME));
      }
test_case.class_method_signature: ParseConversationDataSourceTest.getConversation()
test_case.full_signature: @Test public void getConversation()
test_case.identifier: getConversation
test_case.invocations: mockCurrentUser createSubscriptions thenReturn when find any just executeTarget get assertCompleted find verify capture getValue assertThat size getOnNextEvents is assertThat getClassName is
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void getConversation()
focal_class.declarator: TAG = ParseConversationDataSource.class.getSimpleName()
focal_class.modifier: private static final
focal_class.original_string: private static final String TAG = ParseConversationDataSource.class.getSimpleName();
focal_class.type: String
focal_class.var_name: TAG
focal_class.declarator: mConversationUpdatePublisher = PublishSubject.create()
focal_class.modifier: private final
focal_class.original_string: private final PublishSubject<Boolean> mConversationUpdatePublisher = PublishSubject.create();
focal_class.type: PublishSubject<Boolean>
focal_class.var_name: mConversationUpdatePublisher
focal_class.declarator: mParseHelper
focal_class.modifier: private final
focal_class.original_string: private final ParseHelper mParseHelper;
focal_class.type: ParseHelper
focal_class.var_name: mParseHelper
focal_class.file: ExampleApp/src/main/java/com/badoo/chateau/example/data/repos/conversations/ParseConversationDataSource.java
focal_class.identifier: ParseConversationDataSource
focal_class.interfaces: implements ConversationDataSource<ExampleConversation>
focal_class.class_method_signature: ParseConversationDataSource.ParseConversationDataSource(@NonNull ParseHelper parseHelper)
focal_class.full_signature: public  ParseConversationDataSource(@NonNull ParseHelper parseHelper)
focal_class.identifier: ParseConversationDataSource
focal_class.modifiers: public
focal_class.parameters: (@NonNull ParseHelper parseHelper)
focal_class.signature:  ParseConversationDataSource(@NonNull ParseHelper parseHelper)
focal_class.class_method_signature: ParseConversationDataSource.reloadConversation(@NonNull String chatId)
focal_class.full_signature: public void reloadConversation(@NonNull String chatId)
focal_class.identifier: reloadConversation
focal_class.modifiers: public
focal_class.parameters: (@NonNull String chatId)
focal_class.return: void
focal_class.signature: void reloadConversation(@NonNull String chatId)
focal_class.class_method_signature: ParseConversationDataSource.load(LoadConversationsQuery<ExampleConversation> query)
focal_class.full_signature: @NonNull @Override public Observable<LoadResult<ExampleConversation>> load(LoadConversationsQuery<ExampleConversation> query)
focal_class.identifier: load
focal_class.modifiers: @NonNull @Override public
focal_class.parameters: (LoadConversationsQuery<ExampleConversation> query)
focal_class.return: Observable<LoadResult<ExampleConversation>>
focal_class.signature: Observable<LoadResult<ExampleConversation>> load(LoadConversationsQuery<ExampleConversation> query)
focal_class.class_method_signature: ParseConversationDataSource.get(GetConversationQuery query)
focal_class.full_signature: @NonNull @Override public Observable<ExampleConversation> get(GetConversationQuery query)
focal_class.identifier: get
focal_class.modifiers: @NonNull @Override public
focal_class.parameters: (GetConversationQuery query)
focal_class.return: Observable<ExampleConversation>
focal_class.signature: Observable<ExampleConversation> get(GetConversationQuery query)
focal_class.class_method_signature: ParseConversationDataSource.subscribe(SubscribeToUpdatesQuery query)
focal_class.full_signature: @NonNull @Override public Observable<Boolean> subscribe(SubscribeToUpdatesQuery query)
focal_class.identifier: subscribe
focal_class.modifiers: @NonNull @Override public
focal_class.parameters: (SubscribeToUpdatesQuery query)
focal_class.return: Observable<Boolean>
focal_class.signature: Observable<Boolean> subscribe(SubscribeToUpdatesQuery query)
focal_class.class_method_signature: ParseConversationDataSource.create(CreateGroupConversationQuery query)
focal_class.full_signature: @NonNull @Override public Observable<ExampleConversation> create(CreateGroupConversationQuery query)
focal_class.identifier: create
focal_class.modifiers: @NonNull @Override public
focal_class.parameters: (CreateGroupConversationQuery query)
focal_class.return: Observable<ExampleConversation>
focal_class.signature: Observable<ExampleConversation> create(CreateGroupConversationQuery query)
focal_class.class_method_signature: ParseConversationDataSource.create(CreateConversationQuery query)
focal_class.full_signature: @NonNull @Override public Observable<ExampleConversation> create(CreateConversationQuery query)
focal_class.identifier: create
focal_class.modifiers: @NonNull @Override public
focal_class.parameters: (CreateConversationQuery query)
focal_class.return: Observable<ExampleConversation>
focal_class.signature: Observable<ExampleConversation> create(CreateConversationQuery query)
focal_class.class_method_signature: ParseConversationDataSource.markRead(MarkConversationReadQuery query)
focal_class.full_signature: @NonNull @Override public Observable<Void> markRead(MarkConversationReadQuery query)
focal_class.identifier: markRead
focal_class.modifiers: @NonNull @Override public
focal_class.parameters: (MarkConversationReadQuery query)
focal_class.return: Observable<Void>
focal_class.signature: Observable<Void> markRead(MarkConversationReadQuery query)
focal_class.class_method_signature: ParseConversationDataSource.delete(DeleteConversationsQuery<ExampleConversation> query)
focal_class.full_signature: @NonNull @Override public Observable<List<ExampleConversation>> delete(DeleteConversationsQuery<ExampleConversation> query)
focal_class.identifier: delete
focal_class.modifiers: @NonNull @Override public
focal_class.parameters: (DeleteConversationsQuery<ExampleConversation> query)
focal_class.return: Observable<List<ExampleConversation>>
focal_class.signature: Observable<List<ExampleConversation>> delete(DeleteConversationsQuery<ExampleConversation> query)
focal_class.class_method_signature: ParseConversationDataSource.getConversation(@NonNull String chatId)
focal_class.full_signature: private Observable<ExampleConversation> getConversation(@NonNull String chatId)
focal_class.identifier: getConversation
focal_class.modifiers: private
focal_class.parameters: (@NonNull String chatId)
focal_class.return: Observable<ExampleConversation>
focal_class.signature: Observable<ExampleConversation> getConversation(@NonNull String chatId)
focal_method.body: private Observable<ExampleConversation> getConversation(@NonNull String chatId) {
          final ParseQuery<ParseObject> parseQuery = new ParseQuery<>(ChatSubscriptionTable.NAME);
          parseQuery.include(ChatSubscriptionTable.Fields.CHAT);
          parseQuery.include(ChatSubscriptionTable.Fields.CHAT + "." + ChatTable.Fields.LAST_MESSAGE);
          parseQuery.whereEqualTo(ChatSubscriptionTable.Fields.CHAT, ParseObject.createWithoutData(ChatTable.NAME, chatId));
          parseQuery.whereEqualTo(ChatSubscriptionTable.Fields.USER, ParseObject.createWithoutData(UsersTable.NAME, mParseHelper.getCurrentUser().getObjectId()));
          return mParseHelper.find(parseQuery)
              .flatMap(Observable::from)
              .map(in -> ParseUtils.conversationFromSubscription(in, mParseHelper))
              .subscribeOn(Schedulers.io());
      }
focal_method.class_method_signature: ParseConversationDataSource.getConversation(@NonNull String chatId)
focal_method.full_signature: private Observable<ExampleConversation> getConversation(@NonNull String chatId)
focal_method.identifier: getConversation
focal_method.invocations: include include whereEqualTo createWithoutData whereEqualTo createWithoutData getObjectId getCurrentUser subscribeOn map flatMap find conversationFromSubscription io
focal_method.modifiers: private
focal_method.parameters: (@NonNull String chatId)
focal_method.return: Observable<ExampleConversation>
focal_method.signature: Observable<ExampleConversation> getConversation(@NonNull String chatId)