diff --git a/src/Umbraco.Tests/Persistence/Repositories/KeyValueRepositoryTests.cs b/src/Umbraco.Tests/Persistence/Repositories/KeyValueRepositoryTests.cs new file mode 100644 index 0000000000..92ebb03a32 --- /dev/null +++ b/src/Umbraco.Tests/Persistence/Repositories/KeyValueRepositoryTests.cs @@ -0,0 +1,61 @@ +using NUnit.Framework; +using Umbraco.Core.Persistence.Repositories.Implement; +using Umbraco.Core.Scoping; +using Umbraco.Infrastructure.Persistence.Repositories; +using Umbraco.Tests.TestHelpers; +using Umbraco.Tests.Testing; + +namespace Umbraco.Tests.Persistence.Repositories +{ + [TestFixture] + [UmbracoTest(Database = UmbracoTestOptions.Database.NewSchemaPerTest)] + public class KeyValueRepositoryTests : TestWithDatabaseBase + { + [Test] + public void CanSetAndGet() + { + var provider = TestObjects.GetScopeProvider(Logger); + + // Insert new key/value + using (var scope = provider.CreateScope()) + { + var repo = CreateRepository(provider); + repo.SetValue("foo", "bar"); + scope.Complete(); + } + + // Retrieve key/value + using (var scope = provider.CreateScope()) + { + var repo = CreateRepository(provider); + var value = repo.GetValue("foo"); + scope.Complete(); + + Assert.AreEqual("bar", value); + } + + // Update new key/value + using (var scope = provider.CreateScope()) + { + var repo = CreateRepository(provider); + repo.SetValue("foo", "buzz"); + scope.Complete(); + } + + // Retrieve key/value again + using (var scope = provider.CreateScope()) + { + var repo = CreateRepository(provider); + var value = repo.GetValue("foo"); + scope.Complete(); + + Assert.AreEqual("buzz", value); + } + } + + private IKeyValueRepository CreateRepository(IScopeProvider provider) + { + return new KeyValueRepository((IScopeAccessor) provider, Logger); + } + } +} diff --git a/src/Umbraco.Tests/Umbraco.Tests.csproj b/src/Umbraco.Tests/Umbraco.Tests.csproj index 16e4ca2c11..1527a8d4cc 100644 --- a/src/Umbraco.Tests/Umbraco.Tests.csproj +++ b/src/Umbraco.Tests/Umbraco.Tests.csproj @@ -148,6 +148,7 @@ +