// Copyright (c) Microsoft. All rights reserved. using Microsoft.Agents.AI.Workflows.Declarative.PowerFx; using Microsoft.Agents.ObjectModel; using Microsoft.PowerFx.Types; namespace Microsoft.Agents.AI.Workflows.Declarative.UnitTests.PowerFx; public class WorkflowFormulaStateTests { internal WorkflowFormulaState State { get; } = new(RecalcEngineFactory.Create()); [Fact] public void GetWithImplicitScope() { // Arrange FormulaValue testValue = FormulaValue.New("test"); this.State.Set("key1", testValue); // Act FormulaValue result = this.State.Get("key1"); // Assert Assert.Equal(testValue, result); } [Fact] public void GetWithSpecifiedScope() { // Arrange FormulaValue testValue = FormulaValue.New("test"); this.State.Set("key1", testValue, VariableScopeNames.Global); // Act FormulaValue result = this.State.Get("key1", VariableScopeNames.Global); // Assert Assert.Equal(testValue, result); } [Fact] public void SetDefaultScope() { // Arrange FormulaValue testValue = FormulaValue.New("test"); // Act this.State.Set("key1", testValue); // Assert FormulaValue result = this.State.Get("key1"); Assert.Equal(testValue, result); } [Fact] public void SetSpecifiedScope() { // Arrange FormulaValue testValue = FormulaValue.New("test"); // Act this.State.Set("key1", testValue, VariableScopeNames.System); // Assert FormulaValue result = this.State.Get("key1", VariableScopeNames.System); Assert.Equal(testValue, result); } [Fact] public void SetOverwritesExistingValue() { // Arrange FormulaValue initialValue = FormulaValue.New("initial"); FormulaValue newValue = FormulaValue.New("new"); // Act this.State.Set("key1", initialValue); this.State.Set("key1", newValue); // Assert FormulaValue result = this.State.Get("key1"); Assert.Equal(newValue, result); } }