public void DefaultValueProvide_Should_Set_And_Get_Value() { // arrange & act var car = new Car { Name = "test" }; var initialValueProvider = new DefaultValueProvider <Car>(car); var car2 = new Car { Name = "test2" }; var valueProvider = new DefaultValueProvider <Car>(car2); valueProvider.SetValue(null, new Car { Name = "test3" }); // assert Assert.Equal("test", ((Car)initialValueProvider.GetValue(null)).Name); Assert.Equal("test3", ((Car)valueProvider.GetValue(null)).Name); }