public void GetWrapper_OfInterface_WrappedValuesAreImmutatableByDefault() { //Arrange var instance = new MyInterfaceImplementation(); var wrapper = sut.GetWrapper <MyInterface>()(instance); //Act var exception = Record.Exception(() => wrapper.MyValue = 5); //Assert exception.Should().NotBeNull(); }
public void GetWrapper_OfInterface_WrapperAlsoImplementsICanSwitchBackAndToReadOnly() { //Arrange var instance = new MyInterfaceImplementation(); //Act var wrapper = sut.GetWrapper <MyInterface>() (instance); //Assert wrapper.Should().NotBeNull(); wrapper.Should().BeAssignableTo <ICanSwitchBackAndToReadOnly>(); }
public void GetWrapper_OfInterface_SucceedsAndReturnsFactoryThatWrapsPassedVariable() { //Arrange var instance = new MyInterfaceImplementation(); //Act var wrapper = sut.GetWrapper <MyInterface>() (instance); //Assert wrapper.Should().NotBeNull(); wrapper.Should().BeAssignableTo <MyInterface>(); }
public void GetWrapper_OfInterface_WhenWrapperIsSetToReadonlyAnyAttemptsToEditStateShouldThrow() { //Arrange var instance = new MyInterfaceImplementation(); var wrapper = sut.GetWrapper <MyInterface>()(instance); (wrapper as ICanSwitchBackAndToReadOnly).CanEdit = false; //Act var exception = Record.Exception(() => wrapper.MyValue = 5); //Assert exception.Should().NotBeNull(); }