You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

ImageMessageTests.cs 1.7 kB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. // Copyright (c) Microsoft Corporation. All rights reserved.
  2. // ImageMessageTests.cs
  3. using System;
  4. using System.IO;
  5. using System.Threading.Tasks;
  6. using FluentAssertions;
  7. using Xunit;
  8. namespace AutoGen.Tests;
  9. public class ImageMessageTests
  10. {
  11. [Fact]
  12. public async Task ItCreateFromLocalImage()
  13. {
  14. var image = Path.Combine("testData", "images", "background.png");
  15. var binary = File.ReadAllBytes(image);
  16. var base64 = Convert.ToBase64String(binary);
  17. var imageMessage = new ImageMessage(Role.User, BinaryData.FromBytes(binary, "image/png"));
  18. imageMessage.MimeType.Should().Be("image/png");
  19. imageMessage.BuildDataUri().Should().Be($"data:image/png;base64,{base64}");
  20. }
  21. [Fact]
  22. public async Task ItCreateFromUrl()
  23. {
  24. var image = Path.Combine("testData", "images", "background.png");
  25. var fullPath = Path.GetFullPath(image);
  26. var localUrl = new Uri(fullPath).AbsoluteUri;
  27. var imageMessage = new ImageMessage(Role.User, localUrl);
  28. imageMessage.Url.Should().Be(localUrl);
  29. imageMessage.MimeType.Should().Be("image/png");
  30. imageMessage.Data.Should().BeNull();
  31. }
  32. [Fact]
  33. public async Task ItCreateFromBase64Url()
  34. {
  35. var image = Path.Combine("testData", "images", "background.png");
  36. var binary = File.ReadAllBytes(image);
  37. var base64 = Convert.ToBase64String(binary);
  38. var base64Url = $"data:image/png;base64,{base64}";
  39. var imageMessage = new ImageMessage(Role.User, base64Url);
  40. imageMessage.BuildDataUri().Should().Be(base64Url);
  41. imageMessage.MimeType.Should().Be("image/png");
  42. }
  43. }