Пример #1
0
TEST(ActivityTest, TestAdopt)
{
    MockActivityService		mockActivityService;
    MockBusClient			serviceClient;

    MojInt32 activityId = 1;
    ActivityPtr activity = Activity::PrepareAdoptedActivity(activityId);

    ASSERT_TRUE( activity->CanAdopt() );

    activity->Adopt(serviceClient);

    ASSERT_TRUE( !activity->CanAdopt() );

    // Check adopt response
    MockRequestPtr req = serviceClient.GetLastRequest();
    CheckRequest(req, "com.palm.activitymanager", "adopt");
    ASSERT_EQ( activityId, GetActivityId(req->GetPayload()) );

    // Reply to adopt
    mockActivityService.HandleRequest(req);

    ASSERT_TRUE( activity->IsActive() );

    activity->Complete(serviceClient);
}
Пример #2
0
void ImapSessionCommand::AddActivity(const ActivityPtr& activity)
{
	if(activity.get()) {
		m_commandActivitySet->AddActivity(activity);

		// Attempt to adopt immediately (async) to avoid blocking ActivityManager queue
		activity->Adopt(m_session.GetBusClient());
	}
}
UpdateAccountCommand::UpdateAccountCommand(ImapClient& client, ActivityPtr activity, bool credentialsChanged)
: ImapClientCommand(client),
  m_activitySet(new ActivitySet(client)),
  m_credentialsChanged(credentialsChanged),
  m_getAccountTransportSlot(this, &UpdateAccountCommand::GetAccountTransportResponse),
  m_updateFolderActivitiesSlot(this, &UpdateAccountCommand::UpdateFolderActivitiesDone),
  m_endActivitiesSlot(this, &UpdateAccountCommand::ActivitiesEnded),
  m_notifySmtpSlot(this, &UpdateAccountCommand::NotifySmtpResponse)
{
	// FIXME wait for adoption to complete
	// EndActivities will wait for us, but it's not as polite
	if(activity.get() && activity->CanAdopt()) {
		m_activitySet->AddActivity(activity);

		activity->Adopt(client);
		activity->SetEndOrder(Activity::EndOrder_Last);
	}
}
Пример #4
0
TEST(ActivityTest, TestAdoptFailure)
{
    MockActivityService		mockActivityService;
    MockBusClient			serviceClient;

    MojInt32 activityId = 1;
    ActivityPtr activity = Activity::PrepareAdoptedActivity(activityId);
    MojRefCountedPtr<MockActivitySlots> slots(new MockActivitySlots(activity));

    activity->Adopt(serviceClient);
    MockRequestPtr req = serviceClient.GetLastRequest();

    // Should handle the error and pass it along to the error slot
    slots->ExpectError();
    MojObject response;
    req->ReplyNow(response, MojErrInternal);
    slots->Check();
}
Пример #5
0
TEST(ActivityTest, TestActivityManagerOffline)
{
    MockActivityService		mockActivityService;
    MockBusClient			serviceClient;

    mockActivityService.SetOffline(true);

    MojInt32 activityId = 1;
    ActivityPtr activity = Activity::PrepareAdoptedActivity(activityId);
    MojRefCountedPtr<MockActivitySlots> slots(new MockActivitySlots(activity));

    activity->Adopt(serviceClient);
    MockRequestPtr req = serviceClient.GetLastRequest();

    // Should handle the error and pass it along to the error slot
    slots->ExpectError();
    mockActivityService.HandleRequest(req);
    slots->Check();
}