diff --git a/backend/CircleForms.Tests/CircleForms.Tests.csproj b/backend/CircleForms.Tests/CircleForms.Tests.csproj
new file mode 100644
index 00000000..e5793e24
--- /dev/null
+++ b/backend/CircleForms.Tests/CircleForms.Tests.csproj
@@ -0,0 +1,32 @@
+
+
+
+ net6.0
+ enable
+
+ false
+
+
+
+
+
+
+
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+ all
+
+
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+ all
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/backend/CircleForms.Tests/Unit/Database/Services/RedisCacheRepositoryTests.cs b/backend/CircleForms.Tests/Unit/Database/Services/RedisCacheRepositoryTests.cs
new file mode 100644
index 00000000..11b1e0d4
--- /dev/null
+++ b/backend/CircleForms.Tests/Unit/Database/Services/RedisCacheRepositoryTests.cs
@@ -0,0 +1,180 @@
+
+using System;
+using System.Collections.Generic;
+using System.Threading.Tasks;
+using CircleForms.Database.Models.Users;
+using CircleForms.Database.Services;
+using CircleForms.Database.Services.Extensions;
+using CircleForms.Tests.Utils;
+using Microsoft.Extensions.Logging.Abstractions;
+using MongoDB.Bson;
+using Moq;
+using StackExchange.Redis;
+using Xunit;
+using JsonConvert = Newtonsoft.Json.JsonConvert;
+
+namespace CircleForms.Tests.Unit.Database.Services
+{
+ public class RedisCacheRepositoryTests
+ {
+ private readonly RedisCacheRepository _cache;
+ private readonly Mock _redisDatabaseMock;
+
+ public RedisCacheRepositoryTests()
+ {
+ _redisDatabaseMock = new Mock(MockBehavior.Strict);
+
+ var redisMock = new Mock();
+ redisMock.Setup(x => x.GetDatabase(It.IsAny(), It.IsAny