Exemple #1
0
        public async Task TestNestedRepository()
        {
            var repositoryInner = new IdentityRepository(new NullLogger <IdentityRepository>(), Redis);
            var repository      = new SimpleItemRepository(new NullLogger <SimpleItemRepository>(), Redis, repositoryInner);

            var transaction = Redis.StartTransaction();
            var tasks       = new List <Task>();

            for (int i = 0; i < 2; i++)
            {
                tasks.Add(repository.Save(new SimpleItem {
                    Id = i
                }, transaction));
            }

            await transaction.Commit();

            await Task.WhenAll(tasks);

            var all = await repository.LoadAll(repository.Entity.AllIndex).ToArray();

            Assert.AreEqual(2, all.Length);

            tasks.Clear();
            transaction = Redis.StartTransaction();
            for (int i = 0; i < 2; i++)
            {
                tasks.Add(repository.Delete(i.ToString()));
            }

            await transaction.Commit();

            await Task.WhenAll(tasks);

            all = await repository.LoadAll(repository.Entity.AllIndex).ToArray();

            Assert.AreEqual(0, all.Length);
        }