1414 * limitations under the License.
1515 */
1616
17- /*global describe, it, beforeEach */
17+ /*global describe, it, beforeEach, before, after */
1818
1919'use strict' ;
2020
2121var assert = require ( 'assert' ) ;
22- var duplexify = require ( 'duplexify ' ) ;
22+ var mockery = require ( 'mockery ' ) ;
2323var request = require ( 'request' ) ;
24+ var Stream = require ( 'stream' ) ;
2425var util = require ( '../../lib/common/util.js' ) ;
2526
2627function FakeFile ( bucket , name , metadata ) {
@@ -29,33 +30,24 @@ function FakeFile(bucket, name, metadata) {
2930 this . metadata = metadata ;
3031 this . createWriteStream = function ( options ) {
3132 this . metadata = options . metadata ;
32- var dup = duplexify ( ) ;
33- dup . _write = function ( ) {
34- dup . emit ( 'complete' ) ;
33+ var ws = new Stream . Writable ( ) ;
34+ ws . write = function ( ) {
35+ ws . emit ( 'complete' ) ;
3536 } ;
36- return dup ;
37+ return ws ;
3738 } ;
3839}
3940
40- var Bucket = require ( 'sandboxed-module' )
41- . require ( '../../lib/storage/bucket.js' , {
42- requires : {
43- './file.js' : FakeFile ,
44- request : fakeRequest
45- }
46- } ) ;
47-
4841var request_Cached = request ;
4942var request_Override ;
5043
5144function fakeRequest ( ) {
5245 var args = [ ] . slice . apply ( arguments ) ;
53- var results = ( request_Override || request_Cached ) . apply ( null , args ) ;
54- request_Override = null ;
55- return results ;
46+ return ( request_Override || request_Cached ) . apply ( null , args ) ;
5647}
5748
5849describe ( 'Bucket' , function ( ) {
50+ var Bucket ;
5951 var BUCKET_NAME = 'test-bucket' ;
6052 var bucket ;
6153 var options = {
@@ -64,7 +56,23 @@ describe('Bucket', function() {
6456 }
6557 } ;
6658
59+ before ( function ( ) {
60+ mockery . registerMock ( './file.js' , FakeFile ) ;
61+ mockery . registerMock ( 'request' , fakeRequest ) ;
62+ mockery . enable ( {
63+ useCleanCache : true ,
64+ warnOnUnregistered : false
65+ } ) ;
66+ Bucket = require ( '../../lib/storage/bucket.js' ) ;
67+ } ) ;
68+
69+ after ( function ( ) {
70+ mockery . deregisterAll ( ) ;
71+ mockery . disable ( ) ;
72+ } ) ;
73+
6774 beforeEach ( function ( ) {
75+ request_Override = null ;
6876 bucket = new Bucket ( options , BUCKET_NAME ) ;
6977 } ) ;
7078
@@ -351,13 +359,14 @@ describe('Bucket', function() {
351359 var fakeFile = new FakeFile ( bucket , 'file-name' ) ;
352360 var options = { destination : fakeFile } ;
353361 fakeFile . createWriteStream = function ( options ) {
354- var dup = duplexify ( ) ;
362+ var ws = new Stream . Writable ( ) ;
363+ ws . write = util . noop ;
355364 setImmediate ( function ( ) {
356365 var expectedContentType = 'application/json; charset=utf-8' ;
357366 assert . equal ( options . metadata . contentType , expectedContentType ) ;
358367 done ( ) ;
359368 } ) ;
360- return dup ;
369+ return ws ;
361370 } ;
362371 bucket . upload ( filepath , options , assert . ifError ) ;
363372 } ) ;
@@ -366,13 +375,14 @@ describe('Bucket', function() {
366375 var fakeFile = new FakeFile ( bucket , 'file-name' ) ;
367376 var options = { destination : fakeFile } ;
368377 fakeFile . createWriteStream = function ( options ) {
369- var dup = duplexify ( ) ;
378+ var ws = new Stream . Writable ( ) ;
379+ ws . write = util . noop ;
370380 setImmediate ( function ( ) {
371381 var expectedContentType = 'text/plain; charset=utf-8' ;
372382 assert . equal ( options . metadata . contentType , expectedContentType ) ;
373383 done ( ) ;
374384 } ) ;
375- return dup ;
385+ return ws ;
376386 } ;
377387 bucket . upload ( textFilepath , options , assert . ifError ) ;
378388 } ) ;
@@ -382,12 +392,13 @@ describe('Bucket', function() {
382392 var metadata = { contentType : 'made-up-content-type' } ;
383393 var options = { destination : fakeFile , metadata : metadata } ;
384394 fakeFile . createWriteStream = function ( options ) {
385- var dup = duplexify ( ) ;
395+ var ws = new Stream . Writable ( ) ;
396+ ws . write = util . noop ;
386397 setImmediate ( function ( ) {
387398 assert . equal ( options . metadata . contentType , metadata . contentType ) ;
388399 done ( ) ;
389400 } ) ;
390- return dup ;
401+ return ws ;
391402 } ;
392403 bucket . upload ( filepath , options , assert . ifError ) ;
393404 } ) ;
@@ -396,12 +407,13 @@ describe('Bucket', function() {
396407 var fakeFile = new FakeFile ( bucket , 'file-name' ) ;
397408 var options = { destination : fakeFile , resumable : false } ;
398409 fakeFile . createWriteStream = function ( options ) {
399- var dup = duplexify ( ) ;
410+ var ws = new Stream . Writable ( ) ;
411+ ws . write = util . noop ;
400412 setImmediate ( function ( ) {
401413 assert . strictEqual ( options . resumable , false ) ;
402414 done ( ) ;
403415 } ) ;
404- return dup ;
416+ return ws ;
405417 } ;
406418 bucket . upload ( filepath , options , assert . ifError ) ;
407419 } ) ;
@@ -411,11 +423,11 @@ describe('Bucket', function() {
411423 var fakeFile = new FakeFile ( bucket , 'file-name' ) ;
412424 var options = { destination : fakeFile } ;
413425 fakeFile . createWriteStream = function ( ) {
414- var dup = duplexify ( ) ;
426+ var ws = new Stream . Writable ( ) ;
415427 setImmediate ( function ( ) {
416- dup . emit ( 'error' , error ) ;
428+ ws . emit ( 'error' , error ) ;
417429 } ) ;
418- return dup ;
430+ return ws ;
419431 } ;
420432 bucket . upload ( filepath , options , function ( err ) {
421433 assert . equal ( err , error ) ;
0 commit comments