autogen/dotnet/test/AutoGen.Tests/ImageMessageTests.cs
Griffin Bassman 9af6883fbe
fix: dotnet test CI and standardize test categories (#5286)
Co-authored-by: Ryan Sweet <rysweet@microsoft.com>
2025-02-03 11:49:08 -05:00

54 lines
1.7 KiB
C#

// Copyright (c) Microsoft Corporation. All rights reserved.
// ImageMessageTests.cs
using System;
using System.IO;
using System.Threading.Tasks;
using FluentAssertions;
using Xunit;
namespace AutoGen.Tests;
[Trait("Category", "UnitV1")]
public class ImageMessageTests
{
[Fact]
public async Task ItCreateFromLocalImage()
{
var image = Path.Combine("testData", "images", "background.png");
var binary = File.ReadAllBytes(image);
var base64 = Convert.ToBase64String(binary);
var imageMessage = new ImageMessage(Role.User, BinaryData.FromBytes(binary, "image/png"));
imageMessage.MimeType.Should().Be("image/png");
imageMessage.BuildDataUri().Should().Be($"data:image/png;base64,{base64}");
}
[Fact]
public async Task ItCreateFromUrl()
{
var image = Path.Combine("testData", "images", "background.png");
var fullPath = Path.GetFullPath(image);
var localUrl = new Uri(fullPath).AbsoluteUri;
var imageMessage = new ImageMessage(Role.User, localUrl);
imageMessage.Url.Should().Be(localUrl);
imageMessage.MimeType.Should().Be("image/png");
imageMessage.Data.Should().BeNull();
}
[Fact]
public async Task ItCreateFromBase64Url()
{
var image = Path.Combine("testData", "images", "background.png");
var binary = File.ReadAllBytes(image);
var base64 = Convert.ToBase64String(binary);
var base64Url = $"data:image/png;base64,{base64}";
var imageMessage = new ImageMessage(Role.User, base64Url);
imageMessage.BuildDataUri().Should().Be(base64Url);
imageMessage.MimeType.Should().Be("image/png");
}
}