public void test_registerSocialize() {
    NotificationRegistrationState notificationRegistrationState =
        AndroidMock.createMock(NotificationRegistrationState.class);
    notificationRegistrationState.setPendingSocializeRequestTime(AndroidMock.anyLong());
    notificationRegistrationState.save(getContext());

    final SocializeSession session = AndroidMock.createMock(SocializeSession.class);
    final String registrationId = "foobar";

    SocializeUserSystem userSystem =
        new SocializeUserSystem(null) {
          @Override
          public void authenticate(
              Context context,
              SocializeAuthListener listener,
              SocializeSessionConsumer sessionConsumer) {
            listener.onAuthSuccess(session);
          }
        };

    SocializeNotificationRegistrationSystem system =
        new SocializeNotificationRegistrationSystem() {
          @Override
          protected void doRegistrationSocialize(
              Context context, SocializeSession session, String registrationId) {
            addResult(0, session);
          }
        };

    system.setUserSystem(userSystem);
    system.setNotificationRegistrationState(notificationRegistrationState);

    AndroidMock.replay(notificationRegistrationState, session);

    system.registerSocialize(getContext(), registrationId);

    AndroidMock.verify(notificationRegistrationState, session);

    SocializeSession result = getResult(0);

    assertSame(session, result);
  }