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); }
TEST(ActivitySetTest, TestEnd) { MockActivityService service; MockBusClient busClient; busClient.AddMockService(service); ActivityPtr activity = Activity::PrepareAdoptedActivity(1); MojRefCountedPtr<ActivitySet> actSet(new ActivitySet(busClient)); actSet->AddActivity(activity); Start(busClient, actSet); End(busClient, actSet); }
void End(MockBusClient& busClient, MojRefCountedPtr<ActivitySet>& actSet) { MockDoneSlot endSlot; actSet->EndActivities(endSlot.GetSlot()); busClient.ProcessRequests(); ASSERT_TRUE( endSlot.Called() ); }
void Start(MockBusClient& busClient, MojRefCountedPtr<ActivitySet>& actSet) { MockDoneSlot startSlot; actSet->StartActivities(startSlot.GetSlot()); busClient.ProcessRequests(); ASSERT_TRUE( startSlot.Called() ); }
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(); }
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(); }
TEST(BufferedEmailParserTest, TestBodies) { MojRefCountedPtr<BufferedEmailParser> parser(new BufferedEmailParser()); MockBusClient busClient; FileCacheClient fileCacheClient(busClient); // Setup filecache MockFileCacheService fcService; busClient.AddMockService(fcService); // Setup channel factory boost::shared_ptr<MockAsyncIOChannelFactory> factory(new MockAsyncIOChannelFactory()); parser->SetChannelFactory(factory); parser->EnableHeaderParsing(); parser->EnableBodyParsing(fileCacheClient, 0); parser->Begin(); FeedParser(parser, "From: [email protected]\r\n"); FeedParser(parser, "Subject: Test bodies\r\n"); FeedParser(parser, "Content-type: multipart/alternative; boundary=BOUNDARY\r\n"); FeedParser(parser, "\r\n"); FeedParser(parser, "--BOUNDARY\r\n"); FeedParser(parser, "Content-type: text/plain\r\n"); FeedParser(parser, "\r\n"); FeedParser(parser, "BODY A LINE 1\r\n"); FeedParser(parser, "BODY A LINE 2\r\n"); FeedParser(parser, "--BOUNDARY\r\n"); FeedParser(parser, "Content-type: text/html\r\n"); FeedParser(parser, "\r\n"); FeedParser(parser, "BODY B LINE 1\r\n"); FeedParser(parser, "BODY B LINE 2\r\n"); FeedParser(parser, "--BOUNDARY--\r\n"); parser->End(); busClient.ProcessRequests(); string dataA = factory->GetWrittenData(fcService.GetPathFor(0)); EXPECT_EQ( "BODY A LINE 1\r\nBODY A LINE 2\r\n", dataA ); string dataB = factory->GetWrittenData(fcService.GetPathFor(1)); EXPECT_EQ( "BODY B LINE 1\r\nBODY B LINE 2\r\n", dataB ); }
TEST(ActivitySetTest, TestEndOrder) { MockActivityService service; MockBusClient busClient; busClient.AddMockService(service); MojRefCountedPtr<ActivitySet> actSet(new ActivitySet(busClient)); ActivityPtr activity1 = Activity::PrepareAdoptedActivity(1); actSet->AddActivity(activity1); ActivityPtr activity2 = Activity::PrepareAdoptedActivity(2); actSet->AddActivity(activity2); Start(busClient, actSet); activity1->SetEndOrder(Activity::EndOrder_Last); End(busClient, actSet); // TODO check order ended ASSERT_TRUE(activity1->IsEnded()); ASSERT_TRUE(activity2->IsEnded()); }