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 markConversationRead() {
          // Setup
          String chatId = "chatId";
          final Map<String, Object> expectedParams = new HashMap<>();
          expectedParams.put(MarkChatReadFunc.Fields.CHAT_ID, chatId);
          when(mMockParseHelper.<ParseObject>callFunction(eq(MarkChatReadFunc.NAME), argThat(MapMatchers.matchesEntriesIn(expectedParams))))
              .thenReturn(Observable.empty());
  
          // Execute
          final TestSubscriber<Void> testSubscriber = executeTarget(
              mTarget.markRead(new MarkConversationReadQuery(chatId)));
  
          // Assert
          testSubscriber.assertCompleted();
          assertThat(testSubscriber.getOnNextEvents().size(), is(0));
      }
test_case.class_method_signature: ParseConversationDataSourceTest.markConversationRead()
test_case.full_signature: @Test public void markConversationRead()
test_case.identifier: markConversationRead
test_case.invocations: put thenReturn when callFunction eq argThat matchesEntriesIn empty executeTarget markRead assertCompleted assertThat size getOnNextEvents is
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void markConversationRead()
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: @NonNull
      @Override
      public Observable<Void> markRead(MarkConversationReadQuery query) {
          final Map<String, Object> params = new HashMap<>();
          params.put(MarkChatReadFunc.Fields.CHAT_ID, query.getConversationId());
          return mParseHelper.<ParseObject>callFunction(MarkChatReadFunc.NAME, params)
              .ignoreElements()
              .cast(Void.class)
              .subscribeOn(Schedulers.io());
      }
focal_method.class_method_signature: ParseConversationDataSource.markRead(MarkConversationReadQuery query)
focal_method.full_signature: @NonNull @Override public Observable<Void> markRead(MarkConversationReadQuery query)
focal_method.identifier: markRead
focal_method.invocations: put getConversationId subscribeOn cast ignoreElements callFunction io
focal_method.modifiers: @NonNull @Override public
focal_method.parameters: (MarkConversationReadQuery query)
focal_method.return: Observable<Void>
focal_method.signature: Observable<Void> markRead(MarkConversationReadQuery query)