using AutoMoq; using MbUnit.Framework; using Moq; using NzbDrone.Core.Providers.Core; using NzbDrone.Core.Repository; using SubSonic.Repository; namespace NzbDrone.Core.Test { [TestFixture] // ReSharper disable InconsistentNaming public class DbConfigControllerTest { [Test] public void Overwrite_existing_value() { const string key = "MY_KEY"; const string value = "MY_VALUE"; //Arrange var config = new Config {Key = key, Value = value}; var mocker = new AutoMoqer(); mocker.GetMock() .Setup(r => r.Single(key)) .Returns(config); //Act mocker.Resolve().SetValue(key, value); //Assert mocker.GetMock().Verify(c => c.Update(config)); mocker.GetMock().Verify(c => c.Add(It.IsAny()), Times.Never()); } [Test] public void Add_new_value() { const string key = "MY_KEY"; const string value = "MY_VALUE"; //Arrange var mocker = new AutoMoqer(); mocker.GetMock() .Setup(r => r.Single(It.IsAny())) .Returns(null) .Verifiable(); //Act mocker.Resolve().SetValue(key, value); //Assert mocker.GetMock().Verify(); mocker.GetMock().Verify(r => r.Update(It.IsAny()), Times.Never()); mocker.GetMock().Verify(r => r.Add(It.Is(c => c.Key == key && c.Value == value)), Times.Once()); } } }