Files
YMhut-box-C-/src/YMhut.Box.Tests/MediaVolumeModelTests.cs
T
QWQLwToo 7ecc6a8923
build-winui / winui (push) Has been cancelled
Add WinUI and core source
2026-06-26 13:27:13 +08:00

40 lines
1.5 KiB
C#

using Microsoft.VisualStudio.TestTools.UnitTesting;
using YMhut.Box.Core.Media;
namespace YMhut.Box.Tests;
[TestClass]
public sealed class MediaVolumeModelTests
{
[TestMethod]
public void FromPercentClampsAndMapsOutputModes()
{
var silent = MediaVolumeModel.FromPercent(-5);
Assert.AreEqual(0, silent.Percent);
Assert.AreEqual(0, silent.PlatformVolume, 0.001);
Assert.AreEqual(0, silent.AudioGain, 0.001);
Assert.AreEqual(MediaVolumeOutputMode.Silent, silent.Mode);
var normal = MediaVolumeModel.FromPercent(80);
Assert.AreEqual(80, normal.Percent);
Assert.AreEqual(0.8, normal.PlatformVolume, 0.001);
Assert.AreEqual(0.8, normal.AudioGain, 0.001);
Assert.AreEqual(MediaVolumeOutputMode.Normal, normal.Mode);
var boosted = MediaVolumeModel.FromPercent(120);
Assert.AreEqual(120, boosted.Percent);
Assert.AreEqual(1.0, boosted.PlatformVolume, 0.001);
Assert.AreEqual(1.2, boosted.AudioGain, 0.001);
Assert.AreEqual(MediaVolumeOutputMode.Boosted, boosted.Mode);
}
[TestMethod]
public void FormatPercentNamesMutedAndBoostedStates()
{
Assert.AreEqual("0%(静音)", MediaVolumeModel.FormatPercent(0, "zh-CN"));
Assert.AreEqual("120%(增强音量)", MediaVolumeModel.FormatPercent(120, "zh-CN"));
Assert.AreEqual("0% (Muted)", MediaVolumeModel.FormatPercent(0, "en-US"));
Assert.AreEqual("120% (Boosted)", MediaVolumeModel.FormatPercent(120, "en-US"));
}
}