Skip to content

Commit ceebd95

Browse files
committed
Added getManifest assertions to symlink tests
1 parent 6ce77ce commit ceebd95

File tree

1 file changed

+28
-8
lines changed

1 file changed

+28
-8
lines changed

tests/OpenCloud/Tests/ObjectStore/Resource/DataObjectTest.php

Lines changed: 28 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,10 @@
1717

1818
namespace OpenCloud\Tests\ObjectStore\Resource;
1919

20+
use Guzzle\Http\Message\Response;
21+
use OpenCloud\Common\Constants\Header;
2022
use OpenCloud\ObjectStore\Constants\UrlType;
23+
use OpenCloud\Tests\MockSubscriber;
2124
use OpenCloud\Tests\ObjectStore\ObjectStoreTestCase;
2225

2326
class DataObjectTest extends ObjectStoreTestCase
@@ -104,10 +107,11 @@ public function test_Public_Urls()
104107

105108
public function test_Symlink_To()
106109
{
110+
$targetName = 'new_container/new_object';
111+
$this->addMockSubscriber(new Response(200, array(Header::X_OBJECT_MANIFEST => $targetName)));
107112
$object = $this->container->dataObject('foobar');
108-
$this->assertInstanceOf('Guzzle\Http\Message\Response', $object->createSymlinkTo('new_container/new_object'));
109-
// @todo getManifest should return the manifest not null
110-
//$this->assertEquals('new_container/new_object', $object->getManifest());
113+
$this->assertInstanceOf('Guzzle\Http\Message\Response', $object->createSymlinkTo($targetName));
114+
$this->assertEquals($targetName, $object->getManifest());
111115
}
112116

113117
/**
@@ -120,11 +124,27 @@ public function test_Symlink_To_Fails()
120124

121125
public function test_Symlink_From()
122126
{
123-
$object = $this->container->dataObject('foobar');
124-
$symlink = $object->createSymlinkFrom('new_container/new_object');
125-
$this->assertInstanceOf('OpenCloud\ObjectStore\Resource\DataObject', $symlink);
126-
// @todo getManifest should return the manifest not null
127-
//$this->assertEquals('new_container/new_object', $symlink->getManifest());
127+
$symlinkName = 'new_container/new_object';
128+
129+
// We have to fill the mock response queue to properly get the correct X-Object-Manifest header
130+
// Container\dataObject( )
131+
// - Container\refresh( )
132+
$this->addMockSubscriber(new Response(200));
133+
// DataObject\createSymlinkFrom( )
134+
// - Container\createRefreshRequest( )
135+
$this->addMockSubscriber(new Response(200));
136+
// - CDNContainer\createRefreshRequest( )
137+
$this->addMockSubscriber(new Response(200));
138+
// - Container\objectExists( )
139+
$this->addMockSubscriber(new Response(200));
140+
// - Container\getPartialObject( )
141+
$this->addMockSubscriber(new Response(200));
142+
// - Container\uploadObject( )
143+
$this->addMockSubscriber(new Response(200, array(Header::X_OBJECT_MANIFEST => $symlinkName)));
144+
145+
$object = $this->container->dataObject('foobar')->createSymlinkFrom($symlinkName);
146+
$this->assertInstanceOf('OpenCloud\ObjectStore\Resource\DataObject', $object);
147+
$this->assertEquals($symlinkName, $object->getManifest());
128148
}
129149

130150
/**

0 commit comments

Comments
 (0)