| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- using XafPet.Desktop.PetEngine;
- using Xunit;
- namespace XafPet.Desktop.Tests;
- public class StateManagerTests
- {
- [Fact]
- public void AllTasksCompleted_ReturnsHappy()
- {
- var tasks = new List<CfcTask>
- {
- new() { Id = 1, Title = "喝水", Status = "COMPLETED" },
- new() { Id = 2, Title = "运动", Status = "COMPLETED" }
- };
- var state = StateManager.MapState(tasks, null, null, false);
- Assert.Equal(PetState.Happy, state);
- }
- [Fact]
- public void SomeTasksPending_ReturnsBusy()
- {
- var tasks = new List<CfcTask>
- {
- new() { Id = 1, Title = "喝水", Status = "COMPLETED" },
- new() { Id = 2, Title = "运动", Status = "PENDING" }
- };
- var state = StateManager.MapState(tasks, null, null, false);
- Assert.Equal(PetState.Busy, state);
- }
- [Fact]
- public void NoTasks_ReturnsIdle()
- {
- var state = StateManager.MapState(new List<CfcTask>(), null, null, false);
- Assert.Equal(PetState.Idle, state);
- }
- [Fact]
- public void CheckinDone_OverridesToExcited()
- {
- var state = StateManager.MapState(new List<CfcTask>(), null,
- new DailyCheckin { Checked = true, Items = new List<string> { "water" } }, false);
- Assert.Equal(PetState.Excited, state);
- }
- [Fact]
- public void LowBodyEnergy_ReturnsTired()
- {
- var energy = new EnergyOverview
- {
- Dimensions = new List<DimensionValue>
- {
- new() { Dimension = "身", Value = 20, Color = "#FF8C42" },
- new() { Dimension = "智", Value = 80, Color = "#6366F1" }
- }
- };
- var state = StateManager.MapState(new List<CfcTask>(), energy, null, false);
- Assert.Equal(PetState.Tired, state);
- }
- [Fact]
- public void AllDimensionsLow_ReturnsSad()
- {
- var energy = new EnergyOverview
- {
- Dimensions = new List<DimensionValue>
- {
- new() { Dimension = "身", Value = 15, Color = "#FF8C42" },
- new() { Dimension = "智", Value = 20, Color = "#6366F1" },
- new() { Dimension = "富", Value = 25, Color = "#F59E0B" }
- }
- };
- var state = StateManager.MapState(new List<CfcTask>(), energy, null, false);
- Assert.Equal(PetState.Sad, state);
- }
- [Fact]
- public void HighBodyEnergy_ReturnsEnergetic()
- {
- var energy = new EnergyOverview
- {
- Dimensions = new List<DimensionValue>
- {
- new() { Dimension = "身", Value = 90, Color = "#FF8C42" }
- }
- };
- var state = StateManager.MapState(new List<CfcTask>(), energy, null, false);
- Assert.Equal(PetState.Energetic, state);
- }
- [Fact]
- public void UserInactive_ReturnsSleeping()
- {
- var state = StateManager.MapState(new List<CfcTask>(), null, null, true);
- Assert.Equal(PetState.Sleeping, state);
- }
- [Fact]
- public void StateToCamelCase_ConvertsEnumName()
- {
- Assert.Equal("waitingForInteraction",
- StateManager.StateToCamelCase(PetState.WaitingForInteraction));
- Assert.Equal("miniGame", StateManager.StateToCamelCase(PetState.MiniGame));
- Assert.Equal("idle", StateManager.StateToCamelCase(PetState.Idle));
- }
- }
|