@@ -169,7 +169,58 @@ private async Task When_sending_silent_message_expect_message_received_in_channe
169169 Assert . AreEqual ( channelState2 . Messages . Last ( ) . Silent , true ) ;
170170 }
171171
172+ [ UnityTest ]
173+ public IEnumerator UploadFile ( )
174+ {
175+ yield return LowLevelClient . WaitForClientToConnect ( ) ;
176+
177+ //var filename = "pexels-rulo-davila-5380467.mp4"; //32MB
178+ var filename = "SampleVideo_1280x720_1mb.mp4" ; //1MB
179+ var videoFilePath = "Assets/Plugins/StreamChat/Tests/SampleFiles/" + filename ;
180+
181+ var videoClip = AssetDatabase . LoadAssetAtPath < VideoClip > ( videoFilePath ) ;
182+ Assert . NotNull ( videoClip ) ;
183+
184+ var videoFileContent = File . ReadAllBytes ( videoFilePath ) ;
185+ Assert . NotNull ( videoFileContent ) ;
186+ Assert . IsNotEmpty ( videoFileContent ) ;
187+
188+ var channelType = "messaging" ;
189+
190+ ChannelState channelState = null ;
191+ yield return CreateTempUniqueChannel ( channelType , new ChannelGetOrCreateRequest ( ) ,
192+ state => channelState = state ) ;
193+ var channelId = channelState . Channel . Id ;
194+
195+ var uploadFileTask =
196+ LowLevelClient . MessageApi . UploadFileAsync ( channelType , channelId , videoFileContent , "sample-file-1" ) ;
197+
198+ var fileUrl = "" ;
199+ yield return uploadFileTask . RunAsIEnumerator ( response => { fileUrl = response . File ; } ) ;
200+
201+ var sendMessageRequest = new SendMessageRequest
202+ {
203+ Message = new MessageRequest
204+ {
205+ Text = "Check out my cool video!" ,
206+ Attachments = new List < AttachmentRequest >
207+ {
208+ new AttachmentRequest
209+ {
210+ AssetUrl = fileUrl ,
211+ Type = "video"
212+ }
213+ }
214+ }
215+ } ;
216+
217+ var sendMessageTask = LowLevelClient . MessageApi . SendNewMessageAsync ( channelType , channelId , sendMessageRequest ) ;
172218
219+ yield return sendMessageTask . RunAsIEnumerator ( response =>
220+ {
221+ Assert . IsNotEmpty ( response . Message . Attachments ) ;
222+ } ) ;
223+ }
173224
174225 [ UnityTest ]
175226 public IEnumerator UploadImageWithResize ( )
@@ -228,6 +279,59 @@ private async Task UploadImageWithResizeAsync()
228279 Assert . AreEqual ( image . height , 500 ) ;
229280 }
230281
282+ [ UnityTest ]
283+ public IEnumerator DeleteFile ( )
284+ {
285+ yield return LowLevelClient . WaitForClientToConnect ( ) ;
286+
287+ //var filename = "pexels-rulo-davila-5380467.mp4"; //32MB
288+ var filename = "SampleVideo_1280x720_1mb.mp4" ; //1MB
289+ var videoFilePath = "Assets/Plugins/StreamChat/Tests/SampleFiles/" + filename ;
290+
291+ var videoClip = AssetDatabase . LoadAssetAtPath < VideoClip > ( videoFilePath ) ;
292+ Assert . NotNull ( videoClip ) ;
293+
294+ var videoFileContent = File . ReadAllBytes ( videoFilePath ) ;
295+ Assert . NotNull ( videoFileContent ) ;
296+ Assert . IsNotEmpty ( videoFileContent ) ;
297+
298+ var request = new ChannelGetOrCreateRequest ( ) ;
299+
300+ var channelType = "messaging" ;
301+
302+ ChannelState channelState = null ;
303+ yield return CreateTempUniqueChannel ( channelType , new ChannelGetOrCreateRequest ( ) ,
304+ state => channelState = state ) ;
305+ var channelId = channelState . Channel . Id ;
306+
307+ var uploadFileTask =
308+ LowLevelClient . MessageApi . UploadFileAsync ( channelType , channelId , videoFileContent , "sample-file-1" ) ;
309+
310+ var fileUrl = "" ;
311+ yield return uploadFileTask . RunAsIEnumerator ( response =>
312+ {
313+ Assert . IsNotEmpty ( response . File ) ;
314+ fileUrl = response . File ;
315+ } ) ;
316+
317+ byte [ ] result = null ;
318+ yield return DownloadVideoAsync ( fileUrl ) . RunAsIEnumerator ( response =>
319+ {
320+ result = response ;
321+ } ) ;
322+
323+ bool isEqual = videoFileContent . SequenceEqual ( result ) ;
324+ Debug . Log ( $ "resultsEqual: { isEqual } , videoFileContent: { videoFileContent . Length } , result: { result . Length } ") ;
325+
326+
327+ var _pathToFile = Path . Combine ( Application . persistentDataPath , "video.mp4" ) ;
328+ Debug . Log ( "m" + _pathToFile ) ;
329+ File . WriteAllBytes ( _pathToFile , result ) ;
330+
331+ var deleteFileTask = LowLevelClient . MessageApi . DeleteFileAsync ( channelType , channelId , fileUrl ) ;
332+
333+ yield return deleteFileTask . RunAsIEnumerator ( response => { } ) ;
334+ }
231335
232336 [ UnityTest ]
233337 public IEnumerator Add_reaction_score_to_existing_message ( )
@@ -443,4 +547,4 @@ await LowLevelClient.ChannelApi.UpdateChannelAsync(channelState.Channel.Type, ch
443547 }
444548 }
445549}
446- #endif
550+ #endif
0 commit comments