示例#1
0
        public void DeleteByPartitionMultiple()
        {
            var random = new Random();
            var table  = new AzureTable <EntityWithDataStore>(CloudStorageAccount.DevelopmentStorageAccount, new TestStoreValidator());

            table.EnsureExist();
            var partition = Guid.NewGuid().ToString();
            int multiple  = random.Next(1, 10);

            for (int i = 0; i < multiple; i++)
            {
                var entity = new EntityWithDataStore()
                {
                    RowKey       = Guid.NewGuid().ToString(),
                    PartitionKey = partition,
                    ToTest       = random.Next()
                };
                table.AddEntity(entity);
            }

            var items = table.QueryByPartition(partition);

            Assert.IsNotNull(items);
            var list = items.ToList();

            Assert.AreEqual <int>(multiple, list.Count());

            table.DeleteByPartition(partition);
            items = table.QueryByPartition(partition);
            Assert.IsNotNull(items);
            list = items.ToList();
            Assert.AreEqual <int>(0, list.Count());
        }
示例#2
0
        public void AddOrUpdateEntitiesValidationThrows()
        {
            var table    = new AzureTable <EntityWithDataStore>(CloudStorageAccount.DevelopmentStorageAccount, new TestStoreValidator());
            var entities = new List <EntityWithDataStore>();
            var entity   = new EntityWithDataStore()
            {
                PartitionKey = StringHelper.ValidString(),
                RowKey       = StringHelper.ValidString(),
                ToTest       = 11
            };

            entities.Add(entity);
            entity = new EntityWithDataStore()
            {
                PartitionKey = StringHelper.ValidString(),
                RowKey       = StringHelper.ValidString(),
                ToTest       = -100
            };
            entities.Add(entity);
            entity = new EntityWithDataStore()
            {
                PartitionKey = StringHelper.ValidString(),
                RowKey       = StringHelper.ValidString(),
                ToTest       = -22
            };
            entities.Add(entity);
            table.AddOrUpdateEntity(entities);
        }
示例#3
0
        private string SetupData()
        {
            var table = new AzureTable <EntityWithDataStore>(CloudStorageAccount.DevelopmentStorageAccount);

            table.EnsureExist();
            var partition = Guid.NewGuid().ToString();
            var entities  = new List <EntityWithDataStore>(1010);

            Parallel.For(
                0,
                1010,
                (i, loopState) =>
            {
                var entity = new EntityWithDataStore()
                {
                    RowKey       = Guid.NewGuid().ToString(),
                    PartitionKey = partition,
                    Hex          = StringHelper.ValidString(),
                    Index        = i,
                };
                table.AddEntity(entity);
            });

            return(partition);
        }
示例#4
0
        public void QueryByRowSmallRandom()
        {
            var table = new AzureTable <EntityWithDataStore>(CloudStorageAccount.DevelopmentStorageAccount, new TestStoreValidator());

            table.EnsureExist();
            var row      = Guid.NewGuid().ToString();
            var entities = new List <EntityWithDataStore>(1010);
            var random   = new Random();
            var count    = random.Next(1, 100);

            Parallel.For(
                0,
                count + 5,
                (i, loopState) =>
            {
                var entity = new EntityWithDataStore()
                {
                    RowKey       = row,
                    PartitionKey = Guid.NewGuid().ToString(),
                };
                table.AddEntity(entity);
            });

            var returned = table.QueryByRow(row, count).ToList();

            Assert.AreEqual <int>(count, returned.Count);
        }
示例#5
0
        public void AddEntityValidationThrows()
        {
            var table  = new AzureTable <EntityWithDataStore>(CloudStorageAccount.DevelopmentStorageAccount, new TestStoreValidator());
            var entity = new EntityWithDataStore()
            {
                PartitionKey = StringHelper.ValidString(),
                RowKey       = StringHelper.ValidString(),
                ToTest       = -1
            };

            table.AddEntity(entity);
        }
示例#6
0
        public void AddUpdateEntitiesDeleteEntities()
        {
            Random random = new Random();
            var    table  = new AzureTable <EntityWithDataStore>(CloudStorageAccount.DevelopmentStorageAccount, new TestStoreValidator());

            table.DeleteIfExist();
            table.EnsureExist();
            var entities = new List <EntityWithDataStore>();
            var entity   = new EntityWithDataStore()
            {
                RowKey       = Guid.NewGuid().ToString(),
                PartitionKey = Guid.NewGuid().ToString(),
                ToTest       = random.Next()
            };

            entities.Add(entity);
            entity = new EntityWithDataStore()
            {
                RowKey       = Guid.NewGuid().ToString(),
                PartitionKey = Guid.NewGuid().ToString(),
                ToTest       = random.Next()
            };
            entities.Add(entity);
            entity = new EntityWithDataStore()
            {
                RowKey       = Guid.NewGuid().ToString(),
                PartitionKey = Guid.NewGuid().ToString(),
                ToTest       = random.Next()
            };
            entities.Add(entity);
            table.AddOrUpdateEntity(entities);

            var returned = from data in table.Query
                           select data;

            Assert.AreEqual <int>(entities.Count, returned.ToList().Count);

            foreach (var e in entities)
            {
                e.ToTest = random.Next();
            }

            table.AddOrUpdateEntity(entities);

            table.DeleteEntity(entities);
        }
示例#7
0
        public void AddUpdateEntityDeleteEntity()
        {
            Random random = new Random();
            var    table  = new AzureTable <EntityWithDataStore>(CloudStorageAccount.DevelopmentStorageAccount, new TestStoreValidator());

            table.EnsureExist();
            var entity = new EntityWithDataStore()
            {
                RowKey       = Guid.NewGuid().ToString(),
                PartitionKey = Guid.NewGuid().ToString(),
                ToTest       = random.Next()
            };

            table.AddOrUpdateEntity(entity);

            var returned = table.QueryBy(entity.PartitionKey, entity.RowKey);

            Assert.IsNotNull(returned);
            Assert.AreEqual <string>(entity.PartitionKey, returned.PartitionKey);
            Assert.AreEqual <string>(entity.RowKey, returned.RowKey);
            Assert.AreEqual <int>(entity.ToTest, returned.ToTest);

            entity.ToTest = random.Next();

            table.AddOrUpdateEntity(entity);

            var updated = (from data in table.Query
                           where data.PartitionKey == entity.PartitionKey && data.RowKey == entity.RowKey
                           select data).SingleOrDefault();

            Assert.IsNotNull(returned);
            Assert.AreEqual <string>(entity.PartitionKey, updated.PartitionKey);
            Assert.AreEqual <string>(entity.RowKey, updated.RowKey);
            Assert.AreEqual <int>(entity.ToTest, updated.ToTest);

            table.DeleteEntity(entity);
        }
示例#8
0
        public void DeleteByPartitionSingle()
        {
            var random = new Random();
            var table  = new AzureTable <EntityWithDataStore>(CloudStorageAccount.DevelopmentStorageAccount, new TestStoreValidator());

            table.EnsureExist();
            var entity = new EntityWithDataStore()
            {
                RowKey       = Guid.NewGuid().ToString(),
                PartitionKey = Guid.NewGuid().ToString(),
                ToTest       = random.Next()
            };

            table.AddEntity(entity);

            table.DeleteByPartition(entity.PartitionKey);

            var returned = table.QueryByPartition(entity.PartitionKey);

            Assert.IsNotNull(returned);
            var list = returned.ToList();

            Assert.AreEqual <int>(0, list.Count());
        }