2011-04-10 04:44:01 +02:00
|
|
|
|
using AutoMoq;
|
2010-09-24 08:16:43 +02:00
|
|
|
|
using Moq;
|
2011-06-02 06:50:10 +02:00
|
|
|
|
using NUnit.Framework;
|
2011-04-04 05:50:12 +02:00
|
|
|
|
using NzbDrone.Core.Providers.Core;
|
2010-10-21 03:49:23 +02:00
|
|
|
|
using NzbDrone.Core.Repository;
|
2011-05-19 05:55:35 +02:00
|
|
|
|
using NzbDrone.Core.Test.Framework;
|
2010-09-24 08:16:43 +02:00
|
|
|
|
using SubSonic.Repository;
|
|
|
|
|
|
|
|
|
|
namespace NzbDrone.Core.Test
|
|
|
|
|
{
|
|
|
|
|
[TestFixture]
|
2010-09-24 20:14:15 +02:00
|
|
|
|
// ReSharper disable InconsistentNaming
|
2011-05-19 05:55:35 +02:00
|
|
|
|
public class ConfigProviderTest : TestBase
|
2010-09-24 08:16:43 +02:00
|
|
|
|
{
|
|
|
|
|
[Test]
|
|
|
|
|
public void Overwrite_existing_value()
|
|
|
|
|
{
|
2010-09-24 20:14:15 +02:00
|
|
|
|
const string key = "MY_KEY";
|
|
|
|
|
const string value = "MY_VALUE";
|
2010-09-24 08:16:43 +02:00
|
|
|
|
|
2010-09-24 20:14:15 +02:00
|
|
|
|
//Arrange
|
2011-04-10 04:44:01 +02:00
|
|
|
|
var config = new Config {Key = key, Value = value};
|
2011-04-07 05:34:48 +02:00
|
|
|
|
|
|
|
|
|
var mocker = new AutoMoqer();
|
|
|
|
|
|
|
|
|
|
mocker.GetMock<IRepository>()
|
2011-04-10 04:44:01 +02:00
|
|
|
|
.Setup(r => r.Single<Config>(key))
|
|
|
|
|
.Returns(config);
|
2010-09-24 08:16:43 +02:00
|
|
|
|
|
|
|
|
|
//Act
|
2011-04-07 05:34:48 +02:00
|
|
|
|
mocker.Resolve<ConfigProvider>().SetValue(key, value);
|
2010-09-24 08:16:43 +02:00
|
|
|
|
|
|
|
|
|
//Assert
|
2011-04-07 05:34:48 +02:00
|
|
|
|
mocker.GetMock<IRepository>().Verify(c => c.Update(config));
|
|
|
|
|
mocker.GetMock<IRepository>().Verify(c => c.Add(It.IsAny<Config>()), Times.Never());
|
2010-09-24 08:16:43 +02:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Test]
|
|
|
|
|
public void Add_new_value()
|
|
|
|
|
{
|
2010-09-24 20:14:15 +02:00
|
|
|
|
const string key = "MY_KEY";
|
|
|
|
|
const string value = "MY_VALUE";
|
2010-09-24 08:16:43 +02:00
|
|
|
|
|
2010-09-24 20:14:15 +02:00
|
|
|
|
//Arrange
|
2011-04-07 05:34:48 +02:00
|
|
|
|
var mocker = new AutoMoqer();
|
|
|
|
|
|
|
|
|
|
mocker.GetMock<IRepository>()
|
2011-04-10 04:44:01 +02:00
|
|
|
|
.Setup(r => r.Single<Config>(It.IsAny<string>()))
|
|
|
|
|
.Returns<Config>(null)
|
|
|
|
|
.Verifiable();
|
2010-09-24 08:16:43 +02:00
|
|
|
|
|
|
|
|
|
//Act
|
2011-04-07 05:34:48 +02:00
|
|
|
|
mocker.Resolve<ConfigProvider>().SetValue(key, value);
|
2010-09-24 08:16:43 +02:00
|
|
|
|
|
|
|
|
|
//Assert
|
2011-04-07 05:34:48 +02:00
|
|
|
|
mocker.GetMock<IRepository>().Verify();
|
|
|
|
|
mocker.GetMock<IRepository>().Verify(r => r.Update(It.IsAny<Config>()), Times.Never());
|
2011-04-10 04:44:01 +02:00
|
|
|
|
mocker.GetMock<IRepository>().Verify(r => r.Add(It.Is<Config>(c => c.Key == key && c.Value == value)),
|
|
|
|
|
Times.Once());
|
2011-06-02 06:50:10 +02:00
|
|
|
|
|
|
|
|
|
Assert.Pass();
|
2010-09-24 08:16:43 +02:00
|
|
|
|
}
|
|
|
|
|
}
|
2011-04-10 04:44:01 +02:00
|
|
|
|
}
|