Magnet implements View.OnTouchListener, View.OnClickListener, ViewTreeObserver.OnGlobalLayoutListener,
    SpringListener { public void destroy() { actor.removeAllListeners(); xSpring.setAtRest(); ySpring.setAtRest(); windowManager.removeView(iconView); context.unregisterReceiver(orientationChangeReceiver); if (removeView != null) { removeView.destroy(); } if (iconCallback != null) { iconCallback.onIconDestroyed(); } context = null; } Magnet(Context context); static Builder<Magnet> newBuilder(Context context); void show(); @Deprecated void setPosition(int x, int y, boolean animate); void setPosition(int x, int y); void setIconSize(int width, int height); void goToWall(); void destroy(); @Override void onGlobalLayout(); @Override boolean onTouch(View view, MotionEvent event); @Override void onClick(View view); @Override void onSpringUpdate(Spring spring); @Override void onSpringAtRest(Spring spring); @Override void onSpringActivate(Spring spring); @Override void onSpringEndStateChange(Spring spring);  }
@Test public void testDestroy() { magnet.show(); magnet.destroy(); verify(windowManagerMock).removeView(iconViewMock); verify(removeViewMock).destroy(); verify(iconCallbackMock).onIconDestroyed(); Context context = getInternalState(magnet, "context"); assertNull("mContext field must be set to null after destroy method call", context); }