17
17
18
18
namespace OpenCloud \Tests \ObjectStore \Resource ;
19
19
20
+ use Guzzle \Http \Message \Response ;
21
+ use OpenCloud \Common \Constants \Header ;
20
22
use OpenCloud \ObjectStore \Constants \UrlType ;
23
+ use OpenCloud \Tests \MockSubscriber ;
21
24
use OpenCloud \Tests \ObjectStore \ObjectStoreTestCase ;
22
25
23
26
class DataObjectTest extends ObjectStoreTestCase
@@ -104,10 +107,11 @@ public function test_Public_Urls()
104
107
105
108
public function test_Symlink_To ()
106
109
{
110
+ $ targetName = 'new_container/new_object ' ;
111
+ $ this ->addMockSubscriber (new Response (200 , array (Header::X_OBJECT_MANIFEST => $ targetName )));
107
112
$ 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 ());
111
115
}
112
116
113
117
/**
@@ -120,11 +124,27 @@ public function test_Symlink_To_Fails()
120
124
121
125
public function test_Symlink_From ()
122
126
{
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 ());
128
148
}
129
149
130
150
/**
0 commit comments