public async Task TestSingleItemOperation()
        {
            var mockConfigProvider = GetMockConfigurationProvider();
            var mockSessionStoreSerializerFactory = GetMockSessionStoreSerializerFactory();

            var mockSessionProviderFactory = GetSessionProviderFactory(mockSessionStoreSerializerFactory, mockConfigProvider);
            var sessionStore = new Tavisca.Common.Plugins.SessionStore.SessionStore(mockSessionProviderFactory);

            var mockData = new SampleClass()
            {
                Id = 123, Data = "Kratos"
            };
            var key      = Guid.NewGuid().ToString();
            var category = "spartan";
            await sessionStore.AddAsync(new DataItem <SampleClass>(new ItemKey(category, key), mockData));

            var readData = await sessionStore.GetAsync <SampleClass>(new ItemKey(category, key), CancellationToken.None);

            Assert.NotNull(readData);
            Assert.Equal(mockData.Id, readData.Id);
            Assert.Equal(mockData.Data, readData.Data);
        }
        public async Task TestMultiItemOperation()
        {
            var mockConfigProvider = GetMockConfigurationProvider();
            var mockSessionStoreSerializerFactory = GetMockSessionStoreSerializerFactory();


            var mockSessionProviderFactory = GetSessionProviderFactory(mockSessionStoreSerializerFactory, mockConfigProvider);
            var sessionStore = new Tavisca.Common.Plugins.SessionStore.SessionStore(mockSessionProviderFactory);

            var key           = Guid.NewGuid().ToString();
            var category_base = "spartan";
            var itemCount     = 100;
            var categories    = new string[itemCount];

            for (var i = 0; i < itemCount; i++)
            {
                categories[i] = category_base + i;
            }
            var id        = 1;
            var dataItems = categories
                            .Select(x => new DataItem <SampleClass>(new ItemKey(x, key), new SampleClass()
            {
                Id = id++, Data = id.ToString()
            })).ToArray();

            await sessionStore.AddMultipleAsync(dataItems);

            var itemKeys  = categories.Select(x => new ItemKey(x, key)).ToArray();
            var readItems = await sessionStore.GetMultipleAsync <SampleClass>(itemKeys);

            foreach (var dataItem in dataItems)
            {
                var match = readItems.SingleOrDefault(x => x.Key.Equals(dataItem.Key));
                Assert.NotNull(match);
                Assert.Equal(dataItem.Value.Id, match.Value.Id);
                Assert.Equal(dataItem.Value.Data, match.Value.Data);
            }
        }