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

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  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. [Trait("Category", "UnitV1")]
  10. public class ImageMessageTests
  11. {
  12. [Fact]
  13. public async Task ItCreateFromLocalImage()
  14. {
  15. var image = Path.Combine("testData", "images", "background.png");
  16. var binary = File.ReadAllBytes(image);
  17. var base64 = Convert.ToBase64String(binary);
  18. var imageMessage = new ImageMessage(Role.User, BinaryData.FromBytes(binary, "image/png"));
  19. imageMessage.MimeType.Should().Be("image/png");
  20. imageMessage.BuildDataUri().Should().Be($"data:image/png;base64,{base64}");
  21. }
  22. [Fact]
  23. public async Task ItCreateFromUrl()
  24. {
  25. var image = Path.Combine("testData", "images", "background.png");
  26. var fullPath = Path.GetFullPath(image);
  27. var localUrl = new Uri(fullPath).AbsoluteUri;
  28. var imageMessage = new ImageMessage(Role.User, localUrl);
  29. imageMessage.Url.Should().Be(localUrl);
  30. imageMessage.MimeType.Should().Be("image/png");
  31. imageMessage.Data.Should().BeNull();
  32. }
  33. [Fact]
  34. public async Task ItCreateFromBase64Url()
  35. {
  36. var image = Path.Combine("testData", "images", "background.png");
  37. var binary = File.ReadAllBytes(image);
  38. var base64 = Convert.ToBase64String(binary);
  39. var base64Url = $"data:image/png;base64,{base64}";
  40. var imageMessage = new ImageMessage(Role.User, base64Url);
  41. imageMessage.BuildDataUri().Should().Be(base64Url);
  42. imageMessage.MimeType.Should().Be("image/png");
  43. }
  44. }