Skip to content

Commit e837854

Browse files
authored
Readd UploadFile & DeleteFile tests (#158)
1 parent 575e348 commit e837854

1 file changed

Lines changed: 105 additions & 1 deletion

File tree

Assets/Plugins/StreamChat/Tests/LowLevelClient/Integration/MessagesApiIntegrationTests.cs

Lines changed: 105 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)