You can use reflection to get the DragCallback
field form Behavior of the AppBarLayout. That field is private and getter is not available probably not to distort the behavior.
private AppBarLayout.Behavior.DragCallback getDragCallback(AppBarLayout appBarLayout){
CoordinatorLayout.LayoutParams layoutParams = (CoordinatorLayout.LayoutParams) appBarLayout.getLayoutParams();
CoordinatorLayout.Behavior behavior = layoutParams.getBehavior();
if(behavior != null){
try {
Field mDragCallbackField = behavior.getClass().getDeclaredField("mDragCallback");
mDragCallbackField.setAccessible(true);
AppBarLayout.Behavior.DragCallback dragCallback = (AppBarLayout.Behavior.DragCallback) mDragCallbackField.get(behavior);
return dragCallback;
} catch (NoSuchFieldException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
return null;
}
Then just assertNotNull(getDragCallback(mAppBarLayout))
;