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