@Override public void fireCancelEvent(final DatabaseError error) { eventListener.onCancelled(error); }
@Override public void fireEvent(final DataEvent eventData) { if (isZombied()) { return; } switch (eventData.getEventType()) { case CHILD_ADDED: eventListener.onChildAdded(eventData.getSnapshot(), eventData.getPreviousName()); break; case CHILD_CHANGED: eventListener.onChildChanged(eventData.getSnapshot(), eventData.getPreviousName()); break; case CHILD_MOVED: eventListener.onChildMoved(eventData.getSnapshot(), eventData.getPreviousName()); break; case CHILD_REMOVED: eventListener.onChildRemoved(eventData.getSnapshot()); break; default: // Shouldn't ever happen. No-op } }
private void callOnChildRemoved() { childEventListener.getValue().onChildRemoved(mockDataSnapshot); }
private void callOnChildMoved(String previousChildName) { childEventListener.getValue().onChildMoved(mockDataSnapshot, previousChildName); }
private void callOnChildAdded(String previousChildName) { childEventListener.getValue().onChildAdded(mockDataSnapshot, previousChildName); }
private void callOnChildChanged(String previousChildName) { childEventListener.getValue().onChildChanged(mockDataSnapshot, previousChildName); }
@Test public void testObserveChildEvent_Removed() { TestSubscriber<RxFirebaseChildEvent<TestData>> testSubscriber = new TestSubscriber<>(); RxFirebaseDatabase.observeChildEvent(mockDatabase, TestData.class) .subscribeOn(Schedulers.immediate()) .subscribe(testSubscriber); ArgumentCaptor<ChildEventListener> argument = ArgumentCaptor.forClass(ChildEventListener.class); verify(mockDatabase).addChildEventListener(argument.capture()); argument.getValue().onChildRemoved(mockFirebaseDataSnapshot); testSubscriber.assertNoErrors(); testSubscriber.assertValueCount(1); testSubscriber.assertReceivedOnNext(Collections.singletonList(testChildEventRemoved)); testSubscriber.assertNotCompleted(); testSubscriber.unsubscribe(); }
@Test public void testObserveChildEvent_Moved() { TestSubscriber<RxFirebaseChildEvent<TestData>> testSubscriber = new TestSubscriber<>(); RxFirebaseDatabase.observeChildEvent(mockDatabase, TestData.class) .subscribeOn(Schedulers.immediate()) .subscribe(testSubscriber); ArgumentCaptor<ChildEventListener> argument = ArgumentCaptor.forClass(ChildEventListener.class); verify(mockDatabase).addChildEventListener(argument.capture()); argument.getValue().onChildMoved(mockFirebaseDataSnapshot, "root"); testSubscriber.assertNoErrors(); testSubscriber.assertValueCount(1); testSubscriber.assertReceivedOnNext(Collections.singletonList(testChildEventMoved)); testSubscriber.assertNotCompleted(); testSubscriber.unsubscribe(); }
@Test public void testObserveChildEvent_Added() { TestSubscriber<RxFirebaseChildEvent<TestData>> testSubscriber = new TestSubscriber<>(); RxFirebaseDatabase.observeChildEvent(mockDatabase, TestData.class) .subscribeOn(Schedulers.immediate()) .subscribe(testSubscriber); ArgumentCaptor<ChildEventListener> argument = ArgumentCaptor.forClass(ChildEventListener.class); verify(mockDatabase).addChildEventListener(argument.capture()); argument.getValue().onChildAdded(mockFirebaseDataSnapshot, "root"); testSubscriber.assertNoErrors(); testSubscriber.assertValueCount(1); testSubscriber.assertReceivedOnNext(Collections.singletonList(testChildEventAdded)); testSubscriber.assertNotCompleted(); testSubscriber.unsubscribe(); }
@Test public void testObserveChildEvent_Changed() { TestSubscriber<RxFirebaseChildEvent<TestData>> testSubscriber = new TestSubscriber<>(); RxFirebaseDatabase.observeChildEvent(mockDatabase, TestData.class) .subscribeOn(Schedulers.immediate()) .subscribe(testSubscriber); ArgumentCaptor<ChildEventListener> argument = ArgumentCaptor.forClass(ChildEventListener.class); verify(mockDatabase).addChildEventListener(argument.capture()); argument.getValue().onChildChanged(mockFirebaseDataSnapshot, "root"); testSubscriber.assertNoErrors(); testSubscriber.assertValueCount(1); testSubscriber.assertReceivedOnNext(Collections.singletonList(testChildEventChanged)); testSubscriber.assertNotCompleted(); testSubscriber.unsubscribe(); }
private void callChildOnCancelled() { childEventListener.getValue().onCancelled(mockDatabaseError); }
@Test public void testObserveChildEventRemoved() { TestSubscriber<RxFirebaseChildEvent<ChildData>> testObserver = RxFirebaseDatabase .observeChildEvent(databaseReference, ChildData.class) .test(); ArgumentCaptor<ChildEventListener> argument = ArgumentCaptor.forClass(ChildEventListener.class); verify(databaseReference).addChildEventListener(argument.capture()); argument.getValue().onChildRemoved(dataSnapshot); testObserver.assertNoErrors() .assertValueCount(1) .assertValueSet(Collections.singletonList(childEventRemoved)) .assertNotComplete() .dispose(); }
@Test public void testObserveChildEventMoved() { TestSubscriber<RxFirebaseChildEvent<ChildData>> testObserver = RxFirebaseDatabase .observeChildEvent(databaseReference, ChildData.class) .test(); ArgumentCaptor<ChildEventListener> argument = ArgumentCaptor.forClass(ChildEventListener.class); verify(databaseReference).addChildEventListener(argument.capture()); argument.getValue().onChildMoved(dataSnapshot, PREVIOUS_CHILD_NAME); testObserver.assertNoErrors() .assertValueCount(1) .assertValueSet(Collections.singletonList(childEventMoved)) .assertNotComplete() .dispose(); }
@Test public void testObserveChildEventAdded() { TestSubscriber<RxFirebaseChildEvent<ChildData>> testObserver = RxFirebaseDatabase .observeChildEvent(databaseReference, ChildData.class) .test(); ArgumentCaptor<ChildEventListener> argument = ArgumentCaptor.forClass(ChildEventListener.class); verify(databaseReference).addChildEventListener(argument.capture()); argument.getValue().onChildAdded(dataSnapshot, PREVIOUS_CHILD_NAME); testObserver.assertNoErrors() .assertValueCount(1) .assertValueSet(Collections.singletonList(childEventAdded)) .assertNotComplete() .dispose(); }
@Test public void testObserveChildEventChanged() { TestSubscriber<RxFirebaseChildEvent<ChildData>> testObserver = RxFirebaseDatabase .observeChildEvent(databaseReference, ChildData.class) .test(); ArgumentCaptor<ChildEventListener> argument = ArgumentCaptor.forClass(ChildEventListener.class); verify(databaseReference).addChildEventListener(argument.capture()); argument.getValue().onChildChanged(dataSnapshot, PREVIOUS_CHILD_NAME); testObserver.assertNoErrors() .assertValueCount(1) .assertValueSet(Collections.singletonList(childEventChanged)) .assertNotComplete() .dispose(); }
@Test public void testObserveChildEvent_Cancelled() { TestSubscriber<RxFirebaseChildEvent<TestData>> testSubscriber = new TestSubscriber<>(); RxFirebaseDatabase.observeChildEvent(mockDatabase, TestData.class) .subscribeOn(Schedulers.immediate()) .subscribe(testSubscriber); ArgumentCaptor<ChildEventListener> argument = ArgumentCaptor.forClass(ChildEventListener.class); verify(mockDatabase).addChildEventListener(argument.capture()); argument.getValue().onCancelled(DatabaseError.fromCode(DatabaseError.DISCONNECTED)); testSubscriber.assertError(RxFirebaseDataException.class); testSubscriber.assertNotCompleted(); testSubscriber.unsubscribe(); }
@Test public void testObserveChildEventCancelled() { TestSubscriber<RxFirebaseChildEvent<ChildData>> testObserver = RxFirebaseDatabase .observeChildEvent(databaseReference, ChildData.class) .test(); ArgumentCaptor<ChildEventListener> argument = ArgumentCaptor.forClass(ChildEventListener.class); verify(databaseReference).addChildEventListener(argument.capture()); argument.getValue().onCancelled(DatabaseError.fromCode(DatabaseError.DISCONNECTED)); testObserver.assertError(RxFirebaseDataException.class) .assertNotComplete() .dispose(); }