Skip to content

Commit

Permalink
Adds tests around isReply, breaks up getDescription a bit
Browse files Browse the repository at this point in the history
  • Loading branch information
jacobemerick committed Nov 11, 2017
1 parent f4a532b commit 7cfe9f6
Show file tree
Hide file tree
Showing 2 changed files with 94 additions and 14 deletions.
33 changes: 22 additions & 11 deletions src/Cron/Process/Twitter.php
Original file line number Diff line number Diff line change
Expand Up @@ -183,17 +183,7 @@ protected function checkMetadataUpdated(array $event, stdclass $metadata)
protected function getDescription(stdclass $metadata)
{
$message = $metadata->text;

$entities = [];
if (isset($metadata->entities->urls)) {
$entities += $metadata->entities->urls;
}
if (isset($metadata->entities->media)) {
$entities += $metadata->entities->media;
}
usort($entities, function ($a, $b) {
return $a->indices[0] < $b->indices[0];
});
$entities = $this->getEntities($metadata->entities, [ 'media', 'urls' ]);

array_walk($entities, function ($entity) use (&$message) {
$message = (
Expand All @@ -213,6 +203,27 @@ protected function getDescription(stdclass $metadata)
);
}

/**
* @param stdclass $tweetEntities
* @param array $entityTypes
* @return array
*/
protected function getEntities(stdclass $tweetEntities, array $entityTypes)
{
$entities = [];
array_walk($entityTypes, function ($entityType) use ($tweetEntities, &$entities) {
if (isset($tweetEntities->{$entityType})) {
$entities += $tweetEntities->{$entityType};
}
});

usort($entities, function ($entityA, $entityB) {
return $entityA->indices[0] < $entityB->indices[0];
});

return $entities;
}

/**
* @param stdclass $metadata
* @return string
Expand Down
75 changes: 72 additions & 3 deletions tests/unit/Cron/Process/TwitterTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -1011,17 +1011,86 @@ public function testGetTweetMetadataFormatsMetadata()

public function testIsTweetReplyReturnsTrueIfMetadataIsReply()
{
$this->markTestIncomplete();
$metadata = [
'in_reply_to_user_id' => 123,
'text' => 'some text',
];

$tweet = [
'metadata' => json_encode($metadata),
];

$twitter = $this->getMockBuilder(Twitter::class)
->disableOriginalConstructor()
->setMethods()
->getMock();

$reflectedTwitter = new ReflectionClass(Twitter::class);

$reflectedIsTweetReplyMethod = $reflectedTwitter->getMethod('isTweetReply');
$reflectedIsTweetReplyMethod->setAccessible(true);

$result = $reflectedIsTweetReplyMethod->invokeArgs($twitter, [
$tweet,
]);

$this->assertTrue($result);
}

public function testIsTweetReplyReturnsTrueIfTextStartsWithSnail()
{
$this->markTestIncomplete();
$metadata = [
'in_reply_to_user_id' => null,
'text' => '@user some text',
];

$tweet = [
'metadata' => json_encode($metadata),
];

$twitter = $this->getMockBuilder(Twitter::class)
->disableOriginalConstructor()
->setMethods()
->getMock();

$reflectedTwitter = new ReflectionClass(Twitter::class);

$reflectedIsTweetReplyMethod = $reflectedTwitter->getMethod('isTweetReply');
$reflectedIsTweetReplyMethod->setAccessible(true);

$result = $reflectedIsTweetReplyMethod->invokeArgs($twitter, [
$tweet,
]);

$this->assertTrue($result);
}

public function testIsTweetReplyReturnsFalseIfNotReply()
{
$this->markTestIncomplete();
$metadata = [
'in_reply_to_user_id' => null,
'text' => 'some text',
];

$tweet = [
'metadata' => json_encode($metadata),
];

$twitter = $this->getMockBuilder(Twitter::class)
->disableOriginalConstructor()
->setMethods()
->getMock();

$reflectedTwitter = new ReflectionClass(Twitter::class);

$reflectedIsTweetReplyMethod = $reflectedTwitter->getMethod('isTweetReply');
$reflectedIsTweetReplyMethod->setAccessible(true);

$result = $reflectedIsTweetReplyMethod->invokeArgs($twitter, [
$tweet,
]);

$this->assertFalse($result);
}

public function testInsertTweetGetsDescription()
Expand Down

0 comments on commit 7cfe9f6

Please sign in to comment.