public void Overwrite_existing_value() { const string key = "MY_KEY"; const string value = "MY_VALUE"; //Arrange var repo = new Mock<IRepository>(); var config = new Config { Key = key, Value = value }; repo.Setup(r => r.Single<Config>(key)).Returns(config); var target = new ConfigProvider(repo.Object); //Act target.SetValue(key, value); //Assert repo.Verify(c => c.Update(config)); repo.Verify(c => c.Add(It.IsAny<Config>()), Times.Never()); }
public void Add_new_value() { const string key = "MY_KEY"; const string value = "MY_VALUE"; //Arrange var repo = new Mock<IRepository>(); repo.Setup(r => r.Single<Config>(It.IsAny<string>())).Returns<Config>(null).Verifiable(); var target = new ConfigProvider(repo.Object); //Act target.SetValue(key, value); //Assert repo.Verify(); repo.Verify(r => r.Update(It.IsAny<Config>()), Times.Never()); repo.Verify(r => r.Add(It.Is<Config>(c => c.Key == key && c.Value == value)), Times.Once()); }