@@ -136,21 +136,6 @@ public Void answer(InvocationOnMock invocation) {
136136 }
137137 };
138138
139- private Answer <Void > onListFilesFailure = new Answer <Void >() {
140- @ Override
141- public Void answer (InvocationOnMock invocation ) {
142- Object [] args = invocation .getArguments ();
143- RPCRequest message = (RPCRequest ) args [0 ];
144- if (message instanceof ListFiles ){
145- int correlationId = message .getCorrelationID ();
146- ListFilesResponse listFilesResponse = new ListFilesResponse ();
147- listFilesResponse .setSuccess (false );
148- message .getOnRPCResponseListener ().onResponse (correlationId , listFilesResponse );
149- }
150- return null ;
151- }
152- };
153-
154139 private Answer <Void > onPutFileSuccess = new Answer <Void >() {
155140 @ Override
156141 public Void answer (InvocationOnMock invocation ) {
@@ -182,59 +167,69 @@ public Void answer(InvocationOnMock invocation) {
182167 }
183168 };
184169
185- private Answer <Void > onSendRequestsSuccess = new Answer <Void >() {
170+ private Answer <Void > onListDeleteRequestSuccess = new Answer <Void >() {
186171 @ Override
187172 public Void answer (InvocationOnMock invocation ) {
188173 Object [] args = invocation .getArguments ();
189174 List <RPCRequest > rpcs = (List <RPCRequest >) args [0 ];
190175 OnMultipleRequestListener listener = (OnMultipleRequestListener ) args [1 ];
191- if (rpcs .get (0 ) instanceof PutFile ) {
192- for (RPCRequest message : rpcs ){
176+ if (rpcs .get (0 ) instanceof DeleteFile ) {
177+ for (RPCRequest message : rpcs ) {
193178 int correlationId = message .getCorrelationID ();
194179 listener .addCorrelationId (correlationId );
195- PutFileResponse putFileResponse = new PutFileResponse ();
196- putFileResponse .setSuccess (true );
197- listener .onResponse (correlationId , putFileResponse );
180+ DeleteFileResponse deleteFileResponse = new DeleteFileResponse ();
181+ deleteFileResponse .setSuccess (true );
182+ listener .onResponse (correlationId , deleteFileResponse );
198183 }
184+ listener .onFinished ();
199185 }
200186 return null ;
201187 }
202188 };
203189
204- private Answer <Void > onListDeleteRequestSuccess = new Answer <Void >() {
190+ private Answer <Void > onListDeleteRequestFail = new Answer <Void >() {
205191 @ Override
206192 public Void answer (InvocationOnMock invocation ) {
207193 Object [] args = invocation .getArguments ();
208194 List <RPCRequest > rpcs = (List <RPCRequest >) args [0 ];
209195 OnMultipleRequestListener listener = (OnMultipleRequestListener ) args [1 ];
210196 if (rpcs .get (0 ) instanceof DeleteFile ) {
197+ Result resultCode = Result .REJECTED ;
211198 for (RPCRequest message : rpcs ) {
212199 int correlationId = message .getCorrelationID ();
213200 listener .addCorrelationId (correlationId );
214201 DeleteFileResponse deleteFileResponse = new DeleteFileResponse ();
215202 deleteFileResponse .setSuccess (true );
216- listener .onResponse (correlationId , deleteFileResponse );
203+ listener .onError (correlationId , resultCode , "Binary data empty" );
217204 }
218205 listener .onFinished ();
219206 }
220207 return null ;
221208 }
222209 };
223210
224- private Answer <Void > onListDeleteRequestFail = new Answer <Void >() {
211+ private Answer <Void > onSendRequestsFailPartialOnError = new Answer <Void >() {
225212 @ Override
226- public Void answer (InvocationOnMock invocation ) {
213+ public Void answer (InvocationOnMock invocation ) throws Throwable {
227214 Object [] args = invocation .getArguments ();
228215 List <RPCRequest > rpcs = (List <RPCRequest >) args [0 ];
229216 OnMultipleRequestListener listener = (OnMultipleRequestListener ) args [1 ];
230- if (rpcs .get (0 ) instanceof DeleteFile ) {
217+ if (rpcs .get (0 ) instanceof PutFile ) {
231218 Result resultCode = Result .REJECTED ;
219+ boolean flip = false ;
232220 for (RPCRequest message : rpcs ) {
233221 int correlationId = message .getCorrelationID ();
234222 listener .addCorrelationId (correlationId );
235- DeleteFileResponse deleteFileResponse = new DeleteFileResponse ();
236- deleteFileResponse .setSuccess (true );
237- listener .onError (correlationId , resultCode , "Binary data empty" );
223+ PutFileResponse putFileResponse = new PutFileResponse ();
224+ if (flip ) {
225+ putFileResponse .setSuccess (true );
226+ flip = false ;
227+ listener .onResponse (correlationId , putFileResponse );
228+ } else {
229+ flip = true ;
230+ putFileResponse .setSuccess (false );
231+ listener .onError (correlationId , resultCode , "Binary data empty" );
232+ }
238233 }
239234 listener .onFinished ();
240235 }
@@ -436,12 +431,16 @@ public void onComplete(Map<String, String> errors) {
436431 verify (internalInterface , times (5 )).sendRequests (any (List .class ),any (OnMultipleRequestListener .class ));
437432 }
438433
439- public void testInitializationSuccess (){
434+ /**
435+ * Testing the initialization of FileManager
436+ */
437+ public void testInitializationSuccess () {
440438 ISdl internalInterface = mock (ISdl .class );
441439
442- doAnswer (onListFilesSuccess ).when (internalInterface ).sendRPCRequest (any (ListFiles .class ));
440+ doAnswer (onListFilesSuccess ).when (internalInterface ).sendRPC (any (ListFiles .class ));
443441
444- final FileManager fileManager = new FileManager (internalInterface , mTestContext );
442+ FileManagerConfig fileManagerConfig = new FileManagerConfig ();
443+ final FileManager fileManager = new FileManager (internalInterface , mTestContext , fileManagerConfig );
445444 fileManager .start (new CompletionListener () {
446445 @ Override
447446 public void onComplete (boolean success ) {
@@ -453,22 +452,6 @@ public void onComplete(boolean success) {
453452 });
454453 }
455454
456- public void testInitializationFailure (){
457- ISdl internalInterface = mock (ISdl .class );
458-
459- doAnswer (onListFilesFailure ).when (internalInterface ).sendRPCRequest (any (ListFiles .class ));
460-
461- final FileManager fileManager = new FileManager (internalInterface , mTestContext );
462- fileManager .start (new CompletionListener () {
463- @ Override
464- public void onComplete (boolean success ) {
465- assertFalse (success );
466- assertEquals (fileManager .getState (), BaseSubManager .ERROR );
467- assertEquals (BaseFileManager .SPACE_AVAILABLE_MAX_VALUE , fileManager .getBytesAvailable ());
468- }
469- });
470- }
471-
472455 /**
473456 * Test file upload, success
474457 */
@@ -498,13 +481,17 @@ public void onComplete(boolean success) {
498481 assertEquals (Test .GENERAL_INT , fileManager .getBytesAvailable ());
499482 }
500483
484+ /**
485+ * Testing failed file upload.
486+ */
501487 public void testFileUploadFailure () {
502488 ISdl internalInterface = mock (ISdl .class );
503489
504- doAnswer (onListFilesSuccess ).when (internalInterface ).sendRPCRequest (any (ListFiles .class ));
505- doAnswer (onPutFileFailure ).when (internalInterface ).sendRPCRequest (any (PutFile .class ));
490+ doAnswer (onListFilesSuccess ).when (internalInterface ).sendRPC (any (ListFiles .class ));
491+ doAnswer (onPutFileFailure ).when (internalInterface ).sendRPC (any (PutFile .class ));
506492
507- final FileManager fileManager = new FileManager (internalInterface , mTestContext );
493+ FileManagerConfig fileManagerConfig = new FileManagerConfig ();
494+ final FileManager fileManager = new FileManager (internalInterface , mTestContext , fileManagerConfig );
508495 fileManager .start (new CompletionListener () {
509496 @ Override
510497 public void onComplete (boolean success ) {
@@ -610,12 +597,16 @@ public void onComplete(Map<String, String> errors) {
610597 verify (internalInterface , times (1 )).sendRequests (any (List .class ), any (OnMultipleRequestListener .class ));
611598 }
612599
613- public void testInvalidSdlFileInput (){
600+ /**
601+ * Test to make sure you cannot upload an SdlFile with invalid data
602+ */
603+ public void testInvalidSdlFileInput () {
614604 ISdl internalInterface = mock (ISdl .class );
615605
616- doAnswer (onListFilesSuccess ).when (internalInterface ).sendRPCRequest (any (ListFiles .class ));
606+ doAnswer (onListFilesSuccess ).when (internalInterface ).sendRPC (any (ListFiles .class ));
617607
618- final FileManager fileManager = new FileManager (internalInterface , mTestContext );
608+ FileManagerConfig fileManagerConfig = new FileManagerConfig ();
609+ final FileManager fileManager = new FileManager (internalInterface , mTestContext , fileManagerConfig );
619610 fileManager .start (new CompletionListener () {
620611 @ Override
621612 public void onComplete (boolean success ) {
@@ -646,6 +637,12 @@ public void onComplete(boolean success) {
646637 });
647638 }
648639
640+ /**
641+ * Used to try and upload SdlFiles with invalid data, throw an assert error if file uploads
642+ *
643+ * @param fileManager - FileManager used to manage and upload files
644+ * @param sdlFile - SdlFile with invalid data to test uploading
645+ */
649646 private void checkForUploadFailure (FileManager fileManager , SdlFile sdlFile ){
650647 boolean error = false ;
651648
@@ -661,6 +658,10 @@ public void onComplete(boolean success) {}
661658 assertTrue (error );
662659 }
663660
661+ /**
662+ * Test Invalid SdlArtWork FileTypes
663+ * SdlArtwork FileTypes can only be: GRAPHIC_BMP, GRAPHIC_PNG or GRAPHIC_JPEG
664+ */
664665 public void testInvalidSdlArtworkInput (){
665666 SdlArtwork sdlArtwork = new SdlArtwork ();
666667 // Set invalid type
@@ -715,99 +716,65 @@ public void onComplete(Map<String, String> errors) {
715716 });
716717 }
717718
718- public void testMultipleFileUploadPartialFailure (){
719- final String failureReason = "No space available" ;
720-
719+ /**
720+ * Testing uploading multiple files with some failing.
721+ */
722+ public void testMultipleFileUploadPartialFailure () {
721723 ISdl internalInterface = mock (ISdl .class );
722724
723- doAnswer (onListFilesSuccess ).when (internalInterface ).sendRPCRequest (any (ListFiles .class ));
725+ doAnswer (onListFilesSuccess ).when (internalInterface ).sendRPC (any (ListFiles .class ));
726+ doAnswer (onSendRequestsFailPartialOnError ).when (internalInterface ).sendRequests (any (List .class ), any (OnMultipleRequestListener .class ));
724727
725- Answer <Void > onSendRequestsFailure = new Answer <Void >() {
726- private int responseNum = 0 ;
727- @ Override
728- public Void answer (InvocationOnMock invocation ) {
729- Object [] args = invocation .getArguments ();
730- List <RPCRequest > rpcs = (List <RPCRequest >) args [0 ];
731- OnMultipleRequestListener listener = (OnMultipleRequestListener ) args [1 ];
732- if (rpcs .get (0 ) instanceof PutFile ){
733- for (RPCRequest message : rpcs ){
734- int correlationId = message .getCorrelationID ();
735- listener .addCorrelationId (correlationId );
736- PutFileResponse putFileResponse = new PutFileResponse ();
737- if (responseNum ++ % 2 == 0 ){
738- listener .onError (correlationId , Result .OUT_OF_MEMORY , failureReason );
739- }else {
740- putFileResponse .setSuccess (true );
741- listener .onResponse (correlationId , putFileResponse );
742- }
743- }
744- }
745- return null ;
746- }
747- };
748- doAnswer (onSendRequestsFailure ).when (internalInterface ).sendRequests (any (List .class ), any (OnMultipleRequestListener .class ));
728+ SdlFile validFile2 = new SdlFile ();
729+ validFile2 .setName (Test .GENERAL_STRING + "2" );
730+ validFile2 .setFileData (Test .GENERAL_BYTE_ARRAY );
731+ validFile2 .setPersistent (false );
732+ validFile2 .setType (FileType .GRAPHIC_JPEG );
749733
750- final FileManager fileManager = new FileManager (internalInterface , mTestContext );
751- fileManager .start (new CompletionListener () {
752- @ Override
753- public void onComplete (boolean success ) {
754- assertTrue (success );
755- final String baseFileName = "file" ;
756- int fileNum = 0 ;
757- final List <SdlFile > filesToUpload = new ArrayList <>();
758- SdlFile sdlFile = new SdlFile ();
759- sdlFile .setName (baseFileName + fileNum ++);
760- Uri uri = Uri .parse ("android.resource://" + mTestContext .getPackageName () + "/drawable/ic_sdl" );
761- sdlFile .setUri (uri );
762- filesToUpload .add (sdlFile );
734+ SdlFile validFile3 = new SdlFile ();
735+ validFile3 .setName (Test .GENERAL_STRING + "3" );
736+ validFile3 .setFileData (Test .GENERAL_BYTE_ARRAY );
737+ validFile3 .setPersistent (false );
738+ validFile3 .setType (FileType .GRAPHIC_JPEG );
763739
764- sdlFile = new SdlFile ();
765- sdlFile .setName (baseFileName + fileNum ++);
766- sdlFile .setResourceId (com .smartdevicelink .test .R .drawable .ic_sdl );
767- filesToUpload .add (sdlFile );
740+ validFile .setType (FileType .AUDIO_WAVE );
768741
769- sdlFile = new SdlFile ();
770- sdlFile .setName (baseFileName + fileNum ++);
771- sdlFile .setFileData (Test .GENERAL_BYTE_ARRAY );
772- sdlFile .setPersistent (true );
773- sdlFile .setType (FileType .BINARY );
774- filesToUpload .add (sdlFile );
742+ final List <SdlFile > filesToUpload = new ArrayList <>();
743+ filesToUpload .add (validFile );
744+ filesToUpload .add (validFile2 );
745+ filesToUpload .add (validFile3 );
775746
747+ FileManagerConfig fileManagerConfig = new FileManagerConfig ();
748+ fileManagerConfig .setArtworkRetryCount (0 );
749+ fileManagerConfig .setFileRetryCount (0 );
750+ final FileManager fileManager = new FileManager (internalInterface , mTestContext , fileManagerConfig );
751+ fileManager .start (new CompletionListener () {
752+ @ Override
753+ public void onComplete (boolean success ) {
776754 fileManager .uploadFiles (filesToUpload ,
777755 new MultipleFileCompletionListener () {
778756 @ Override
779757 public void onComplete (Map <String , String > errors ) {
780- assertNotNull (errors );
781- for (int i = 0 ; i < filesToUpload .size (); i ++){
782- if (i % 2 == 0 ){
783- assertTrue (errors .containsKey (filesToUpload .get (i ).getName ()));
784- assertEquals (FileManager .buildErrorString (Result .OUT_OF_MEMORY ,
785- failureReason ), errors .get (filesToUpload .get (i ).getName ()));
786- }else {
787- assertFalse (errors .containsKey (filesToUpload .get (i ).getName ()));
788- }
789- }
790- List <String > uploadedFileNames = fileManager .getRemoteFileNames ();
791- for (int i = 0 ; i < filesToUpload .size (); i ++){
792- if (i % 2 == 0 ){
793- assertFalse (uploadedFileNames .contains (filesToUpload .get (i ).getName ()));
794- }else {
795- assertTrue (uploadedFileNames .contains (filesToUpload .get (i ).getName ()));
796- }
797- }
758+ assertTrue (errors .size () == 2 );
798759 }
799760 });
800761 }
801762 });
763+ assertFalse (fileManager .hasUploadedFile (validFile ) && fileManager .hasUploadedFile (validFile3 ));
764+ assertTrue (fileManager .hasUploadedFile (validFile2 ));
802765 }
803766
767+ /**
768+ * Testing uploading multiple SdlArtwork files.
769+ */
804770 public void testMultipleArtworkUploadSuccess (){
805771 ISdl internalInterface = mock (ISdl .class );
806772
807- doAnswer (onListFilesSuccess ).when (internalInterface ).sendRPCRequest (any (ListFiles .class ));
808- doAnswer (onSendRequestsSuccess ).when (internalInterface ).sendRequests (any (List .class ), any (OnMultipleRequestListener .class ));
773+ doAnswer (onListFilesSuccess ).when (internalInterface ).sendRPC (any (ListFiles .class ));
774+ doAnswer (onListFileUploadSuccess ).when (internalInterface ).sendRequests (any (List .class ), any (OnMultipleRequestListener .class ));
809775
810- final FileManager fileManager = new FileManager (internalInterface , mTestContext );
776+ FileManagerConfig fileManagerConfig = new FileManagerConfig ();
777+ final FileManager fileManager = new FileManager (internalInterface , mTestContext , fileManagerConfig );
811778 fileManager .start (new CompletionListener () {
812779 @ Override
813780 public void onComplete (boolean success ) {
@@ -843,16 +810,20 @@ public void onComplete(Map<String, String> errors) {
843810 });
844811 }
845812
813+ /**
814+ * Testing uploading persistent SdlFile
815+ */
846816 public void testPersistentFileUploaded (){
847817 ISdl internalInterface = mock (ISdl .class );
848818
849- doAnswer (onListFilesSuccess ).when (internalInterface ).sendRPCRequest (any (ListFiles .class ));
819+ doAnswer (onListFilesSuccess ).when (internalInterface ).sendRPC (any (ListFiles .class ));
850820
851821 final SdlFile file = new SdlFile ();
852822 file .setName (Test .GENERAL_STRING_LIST .get (0 ));
853823 file .setPersistent (true );
854824
855- final FileManager fileManager = new FileManager (internalInterface , mTestContext );
825+ FileManagerConfig fileManagerConfig = new FileManagerConfig ();
826+ final FileManager fileManager = new FileManager (internalInterface , mTestContext , fileManagerConfig );
856827 fileManager .start (new CompletionListener () {
857828 @ Override
858829 public void onComplete (boolean success ) {
0 commit comments