using FluentAssertions; using Microsoft.VisualStudio.TestTools.UnitTesting; using Moq; using System.Configuration; namespace SystemExtensions.DependencyInjection.Tests.Configuration { [TestClass] public class LiveUpdateableOptionsWrapperTests { private LiveUpdateableOptionsWrapper optionsWrapper; private readonly Mock optionsManagerMock = new(); [TestInitialize] public void TestInitialize() { this.optionsWrapper = new LiveUpdateableOptionsWrapper(this.optionsManagerMock.Object); } [TestMethod] public void GetValue_ReturnsValue() { this.optionsManagerMock .Setup(u => u.GetOptions()) .Returns("hello"); var value = this.optionsWrapper.Value; value.Should().Be("hello"); } [TestMethod] public void UpdateOption_CallsOptionsManager() { this.optionsManagerMock .Setup(u => u.UpdateOptions(It.IsAny())) .Verifiable(); this.optionsWrapper.UpdateOption(); this.optionsManagerMock.Verify(); } } }