@@ -17,7 +17,6 @@ import grails.util.Holders
17
17
import groovy.json.JsonBuilder
18
18
import org.apache.commons.fileupload.disk.DiskFileItem
19
19
import org.apache.commons.validator.UrlValidator
20
- import org.grails.plugins.codecs.HTMLCodec
21
20
import org.springframework.context.MessageSource
22
21
import org.springframework.context.i18n.LocaleContextHolder
23
22
import org.springframework.web.multipart.MultipartFile
@@ -34,7 +33,7 @@ import javax.servlet.http.Part
34
33
// Suppressed Methods counts since this class contains more than 30 methods.
35
34
@ConfineMetaClassChanges ([FileUploaderService , File ])
36
35
@Build ([UFile , UFileMoveHistory ])
37
- @SuppressWarnings (' MethodCount' )
36
+ @SuppressWarnings ([ ' MethodCount' , ' FileLengthRule ' ] )
38
37
class FileUploaderServiceSpec extends BaseFileUploaderServiceSpecSetup implements ServiceUnitTest<FileUploaderService > ,
39
38
BuildDataTest {
40
39
@@ -92,6 +91,7 @@ class FileUploaderServiceSpec extends BaseFileUploaderServiceSpecSetup implement
92
91
93
92
new FileGroup (_) >> fileGroupMock
94
93
fileGroupMock. cdnProvider >> provider
94
+ fileGroupMock. containerName >> ' test-bucket'
95
95
fileGroupMock. groupConfig >> [storageTypes : ' CDN' ]
96
96
97
97
when : ' The saveFile method is called'
@@ -100,7 +100,7 @@ class FileUploaderServiceSpec extends BaseFileUploaderServiceSpecSetup implement
100
100
then : ' UFile instance should be successfully saved'
101
101
ufileInstancefile. provider == provider
102
102
ufileInstancefile. extension == ' txt'
103
- ufileInstancefile. container == ' causecode-test'
103
+ ufileInstancefile. containerFromConfig == ' causecode-test'
104
104
ufileInstancefile. fileGroup == fileGroup
105
105
106
106
file. delete()
@@ -125,6 +125,7 @@ class FileUploaderServiceSpec extends BaseFileUploaderServiceSpecSetup implement
125
125
and : ' Mocked FileGroup class method call'
126
126
new FileGroup (_) >> fileGroupMock
127
127
fileGroupMock. cdnProvider >> CDNProvider . GOOGLE
128
+ fileGroupMock. containerName >> ' test-container'
128
129
fileGroupMock. groupConfig >> [storageTypes : ' CDN' ]
129
130
mockGetFileNameAndExtensions()
130
131
@@ -544,6 +545,7 @@ class FileUploaderServiceSpec extends BaseFileUploaderServiceSpecSetup implement
544
545
mockGetFileNameAndExtensions()
545
546
mockUploadFileMethod(true )
546
547
mockGetProviderInstance(' google' )
548
+ 4 * fileGroupMock. containerName >> ' test-container'
547
549
5 * fileGroupMock. cdnProvider >> {
548
550
return
549
551
} >> {
@@ -565,6 +567,7 @@ class FileUploaderServiceSpec extends BaseFileUploaderServiceSpecSetup implement
565
567
then : ' Method should return instance of UFile'
566
568
result. fileGroup == ' testGoogle'
567
569
result. type == UFileType . CDN_PUBLIC
570
+ result. containerName == ' test-container'
568
571
569
572
when : ' saveFile method is hit and file belongs to StandardMultiartFile'
570
573
mockUploadFileMethod(true )
@@ -608,6 +611,7 @@ class FileUploaderServiceSpec extends BaseFileUploaderServiceSpecSetup implement
608
611
609
612
then : ' Method should return saved UFile instance'
610
613
result. id != null
614
+ assert result. containerName == null
611
615
612
616
when : ' saveFile method is called and error occurs while saving file'
613
617
result = service. saveFile(' testLocal' , commonsMultipartFileInstance, ' test' )
@@ -787,6 +791,7 @@ class FileUploaderServiceSpec extends BaseFileUploaderServiceSpecSetup implement
787
791
and : ' Mocked FileGroup Instance'
788
792
new FileGroup (_) >> fileGroupMock
789
793
fileGroupMock. cdnProvider >> CDNProvider . GOOGLE
794
+ fileGroupMock. containerName >> ' test-container'
790
795
fileGroupMock. groupConfig >> [storageTypes : ' CDN' , checksum : [calculate : true , algorithm : Algorithm . SHA1 ]]
791
796
792
797
and : ' The saveFile method has been already called once for given file'
@@ -838,5 +843,32 @@ class FileUploaderServiceSpec extends BaseFileUploaderServiceSpecSetup implement
838
843
Exception exception = thrown(IllegalArgumentException )
839
844
exception. message == " No enum constant ${ Algorithm.canonicalName} .ABCD"
840
845
}
841
- }
842
846
847
+ void " test saveFile method when container name is not defined in the config" () {
848
+ given : ' Instances of CommonsMultipartFile to upload'
849
+ File fileInstance = getFileInstance(' /tmp/test.txt' )
850
+
851
+ DiskFileItem fileItem = getDiskFileItemInstance(fileInstance)
852
+ CommonsMultipartFile commonsMultipartFileInstance = new CommonsMultipartFile (fileItem)
853
+
854
+ and : ' Mocked methods of FileGroup to return empty container name'
855
+ mockFileGroupConstructor(' CDN' )
856
+ fileGroupMock. containerName >> {
857
+ return null
858
+ }
859
+
860
+ fileGroupMock. cdnProvider >> {
861
+ return CDNProvider . GOOGLE
862
+ }
863
+
864
+ and : ' Mocked getFileNameAndExtensions method of fileGroupMock'
865
+ mockGetFileNameAndExtensions()
866
+
867
+ when : ' saveFile is called and container name is not defined'
868
+ service. saveFile(' testGoogle' , commonsMultipartFileInstance, ' test' )
869
+
870
+ then : ' Method should throw StorageConfigurationException and message should match'
871
+ StorageConfigurationException exception = thrown(StorageConfigurationException )
872
+ exception. message == ' Container name not defined in the Config. Please define one.'
873
+ }
874
+ }
0 commit comments