Beispiel #1
0
        public async Task AddOrUpdateEntitiesWithNullParameterAsync()
        {
            // Arrange
            Mock <ITableRequestExecutor <Country> > mock = MocksFactory.GetQueryExecutorMock <Country>();
            CloudTableClient tableClient = ObjectsFactory.GetCloudTableClient();
            var context = new TableSet <Country>(tableClient)
            {
                RequestExecutor = mock.Object
            };

            IEnumerable <Country> result = null;

            // Act
            try
            {
                result = await context.AddOrUpdateAsync((IEnumerable <Country>) null, CancellationToken.None);
            }
            catch (ArgumentNullException)
            {
            }

            // Assert
            Assert.Null(result);
            mock.Verify(executor => executor.ExecuteBatches(It.IsAny <IEnumerable <Country> >(), It.IsAny <Func <ITableEntity, TableOperation> >()), Times.Never());
        }
Beispiel #2
0
        public void CreateExecutorWithNullEntityConverterParameter()
        {
            // Arrange
            Mock <ICloudTable> cloudTableMock = MocksFactory.GetCloudTableMock();

            // Act && Assert
            Assert.Throws <ArgumentNullException>(() => new TableRequestExecutorFactory <Country>(cloudTableMock.Object, null));
        }
        public void CreateTableQueryProviderWithNullEntityConverter()
        {
            // Arrange
            Mock <ICloudTable> cloudTableMock = MocksFactory.GetCloudTableMock();

            // Act && Assert
            Assert.Throws <ArgumentNullException>(() => new TableQueryProvider <Country>(cloudTableMock.Object, null));
        }
Beispiel #4
0
        public void CreateExecutorWithNullCloudTableParameter()
        {
            // Arrange
            Mock <ITableEntityConverter <Country> > entityConverterMock = MocksFactory.GetTableEntityConverterMock <Country>();

            // Act && Assert
            Assert.Throws <ArgumentNullException>(() => new TableRequestExecutorFactory <Country>(null, entityConverterMock.Object));
        }
        public void CreateExecutorWithNullBatchPartitioner()
        {
            // Arrange
            Mock <ICloudTable> cloudTableMock = MocksFactory.GetCloudTableMock();
            Mock <ITableEntityConverter <Country> > entityConverterMock = MocksFactory.GetTableEntityConverterMock <Country>();

            // Act && Assert
            Assert.Throws <ArgumentNullException>(() => new TableRequestSequentialExecutor <Country>(cloudTableMock.Object, entityConverterMock.Object, null));
        }
        public void ExecuteAsyncWithNullExpression()
        {
            // Arrange
            Mock <ICloudTable> cloudTableMock = MocksFactory.GetCloudTableMock();
            var converter = new TableEntityConverter <Country>();
            var provider  = new TableQueryProvider <Country>(cloudTableMock.Object, converter);

            // Act && Assert
            Assert.Throws <ArgumentNullException>(() => provider.ExecuteAsync(null));
        }
        public void ExecuteBatchesWithNullEntities()
        {
            // Arrange
            Mock <ICloudTable> cloudTableMock = MocksFactory.GetCloudTableMock();
            Mock <ITableEntityConverter <Country> > entityConverterMock  = MocksFactory.GetTableEntityConverterMock <Country>();
            Mock <ITableBatchPartitioner>           batchPartitionerMock = MocksFactory.GetTableBatchPartitionerMock();
            var executor = new TableRequestSequentialExecutor <Country>(cloudTableMock.Object, entityConverterMock.Object, batchPartitionerMock.Object);

            // Act && Assert
            Assert.Throws <ArgumentNullException>(() => executor.ExecuteBatches(null, null));
        }
        public Task ExecuteBatchesWithoutResultAsyncWithNullEntities()
        {
            // Arrange
            Mock <ICloudTable> cloudTableMock = MocksFactory.GetCloudTableMock();
            Mock <ITableEntityConverter <Country> > entityConverterMock  = MocksFactory.GetTableEntityConverterMock <Country>();
            Mock <ITableBatchPartitioner>           batchPartitionerMock = MocksFactory.GetTableBatchPartitionerMock();
            var executor = new TableRequestSequentialExecutor <Country>(cloudTableMock.Object, entityConverterMock.Object, batchPartitionerMock.Object);

            // Act && Assert
            return(Assert.ThrowsAsync <ArgumentNullException>(() => executor.ExecuteBatchesWithoutResultAsync(null, null, CancellationToken.None)));
        }
Beispiel #9
0
        public void ExecuteBatchesWithoutResultAsyncWithNullOperation()
        {
            // Arrange
            Mock <ICloudTable> cloudTableMock = MocksFactory.GetCloudTableMock();
            Mock <ITableEntityConverter <Country> > entityConverterMock  = MocksFactory.GetTableEntityConverterMock <Country>();
            Mock <ITableBatchPartitioner>           batchPartitionerMock = MocksFactory.GetTableBatchPartitionerMock();
            var executor = new TableRequestParallelExecutor <Country>(cloudTableMock.Object, entityConverterMock.Object, batchPartitionerMock.Object);
            var entities = ObjectsFactory.GetCountries();

            // Act && Assert
            Assert.Throws <ArgumentNullException>(() => executor.ExecuteBatchesWithoutResultAsync(entities, null, CancellationToken.None));
        }
Beispiel #10
0
        public async Task SetUp()
        {
            serviceProvideMock = MocksFactory.ServiceProvider();
            loggerMock         = MocksFactory.GetLogger <JobExecutor>();

            jobExecutor = new JobExecutor(
                loggerMock,
                serviceProvideMock,
                new ExecutionCache()
                );

            await jobExecutor.StopAsync(new CancellationToken(true));
        }
        public void CreateExecutor()
        {
            // Arrange
            Mock <ICloudTable> cloudTableMock = MocksFactory.GetCloudTableMock();
            Mock <ITableEntityConverter <Country> > entityConverterMock  = MocksFactory.GetTableEntityConverterMock <Country>();
            Mock <ITableBatchPartitioner>           batchPartitionerMock = MocksFactory.GetTableBatchPartitionerMock();

            // Act
            var result = new TableRequestSequentialExecutor <Country>(cloudTableMock.Object, entityConverterMock.Object, batchPartitionerMock.Object);

            // Assert
            Assert.NotNull(result);
        }
Beispiel #12
0
        public void CreateExecutorWithInvalidMode()
        {
            // Arrange
            Mock <ITableEntityConverter <Country> > entityConverterMock = MocksFactory.GetTableEntityConverterMock <Country>();
            Mock <ICloudTable> cloudTableMock = MocksFactory.GetCloudTableMock();
            var executorFactory = new TableRequestExecutorFactory <Country>(cloudTableMock.Object, entityConverterMock.Object);
            ITableRequestExecutor <Country> executor = null;

            // Act
            Assert.Throws <ArgumentOutOfRangeException>(() => executor = executorFactory.Create((ExecutionMode)2));

            // Assert
            Assert.Null(executor);
        }
Beispiel #13
0
        public void CreateSequentialExecutor()
        {
            // Arrange
            Mock <ITableEntityConverter <Country> > entityConverterMock = MocksFactory.GetTableEntityConverterMock <Country>();
            Mock <ICloudTable> cloudTableMock = MocksFactory.GetCloudTableMock();
            var executorFactory = new TableRequestExecutorFactory <Country>(cloudTableMock.Object, entityConverterMock.Object);

            // Act
            ITableRequestExecutor <Country> executor = executorFactory.Create(ExecutionMode.Sequential);

            // Assert
            Assert.NotNull(executor);
            Assert.IsType <TableRequestSequentialExecutor <Country> >(executor);
            Assert.Equal(cloudTableMock.Object, executorFactory.CloudTable);
        }
        public void RemoveEmptyCollection()
        {
            // Arrange
            Mock <ITableRequestExecutor <Country> > mock = MocksFactory.GetQueryExecutorMock <Country>();
            CloudTableClient tableClient = ObjectsFactory.GetCloudTableClient();
            var context = new TableSet <Country>(tableClient)
            {
                RequestExecutor = mock.Object
            };

            var countries = new List <Country>();

            // Act
            context.Remove(countries);
        }
        public void ExecuteBatchesEvenWhenNotEvaluated()
        {
            // Arrange
            Mock <ICloudTable> cloudTableMock = MocksFactory.GetCloudTableMock();
            Mock <ITableEntityConverter <Country> > entityConverterMock  = MocksFactory.GetTableEntityConverterMock <Country>();
            Mock <ITableBatchPartitioner>           batchPartitionerMock = MocksFactory.GetTableBatchPartitionerMock();
            var executor = new TableRequestSequentialExecutor <Country>(cloudTableMock.Object, entityConverterMock.Object, batchPartitionerMock.Object);
            var entities = ObjectsFactory.GetCountries();

            // Act
            // We don't evaluate the call as we're not interested in the resulting entities. This should still execute the operations.
            executor.ExecuteBatches(entities, TableOperation.Insert);

            // Assert
            cloudTableMock.Verify(t => t.ExecuteBatch(It.IsAny <TableBatchOperation>()));
        }
        public void RemoveEntitiesWithNullParameter()
        {
            // Arrange
            Mock <ITableRequestExecutor <Country> > mock = MocksFactory.GetQueryExecutorMock <Country>();
            CloudTableClient tableClient = ObjectsFactory.GetCloudTableClient();
            var context = new TableSet <Country>(tableClient)
            {
                RequestExecutor = mock.Object
            };

            // Act
            Assert.Throws <ArgumentNullException>(() => context.Remove((IList <Country>)null));

            // Assert
            mock.Verify(executor => executor.ExecuteBatches(It.IsAny <IList <Country> >(), It.IsAny <Func <ITableEntity, TableOperation> >()), Times.Never());
        }
        public async Task ExecuteBatchesWithoutResultAsync()
        {
            // Arrange
            Mock <ICloudTable> cloudTableMock = MocksFactory.GetCloudTableMock();
            Mock <ITableEntityConverter <Country> > entityConverterMock  = MocksFactory.GetTableEntityConverterMock <Country>();
            Mock <ITableBatchPartitioner>           batchPartitionerMock = MocksFactory.GetTableBatchPartitionerMock();
            var executor = new TableRequestSequentialExecutor <Country>(cloudTableMock.Object, entityConverterMock.Object, batchPartitionerMock.Object);
            var entities = ObjectsFactory.GetCountries();

            // Act
            await executor.ExecuteBatchesWithoutResultAsync(entities, TableOperation.Insert, CancellationToken.None);

            // Assert
            entityConverterMock.Verify(p => p.GetEntity(It.IsAny <Country>()), Times.Exactly(2));
            batchPartitionerMock.Verify(p => p.GetBatches(It.IsAny <IEnumerable <ITableEntity> >(), It.IsAny <Func <ITableEntity, TableOperation> >()), Times.Once());
        }
        public void ExecuteBatches()
        {
            // Arrange
            Mock <ICloudTable> cloudTableMock = MocksFactory.GetCloudTableMock();
            Mock <ITableEntityConverter <Country> > entityConverterMock  = MocksFactory.GetTableEntityConverterMock <Country>();
            Mock <ITableBatchPartitioner>           batchPartitionerMock = MocksFactory.GetTableBatchPartitionerMock();
            var executor = new TableRequestSequentialExecutor <Country>(cloudTableMock.Object, entityConverterMock.Object, batchPartitionerMock.Object);
            var entities = ObjectsFactory.GetCountries();

            // Act
            var result = executor.ExecuteBatches(entities, TableOperation.Insert).ToList();

            // Assert
            Assert.IsAssignableFrom <IEnumerable <Country> >(result);
            entityConverterMock.Verify(p => p.GetEntity(It.IsAny <Country>()), Times.Exactly(2));
            batchPartitionerMock.Verify(p => p.GetBatches(It.IsAny <IEnumerable <ITableEntity> >(), It.IsAny <Func <ITableEntity, TableOperation> >()), Times.Once());
        }
        public async Task RemoveEntitiesAsync()
        {
            // Arrange
            Mock <ITableRequestExecutor <Country> > mock = MocksFactory.GetQueryExecutorMock <Country>();
            CloudTableClient tableClient = ObjectsFactory.GetCloudTableClient();
            var context = new TableSet <Country>(tableClient)
            {
                RequestExecutor = mock.Object
            };

            IList <Country> countries = ObjectsFactory.GetCountries();

            // Act
            await context.RemoveAsync(countries);

            // Assert
            mock.Verify(executor => executor.ExecuteBatchesWithoutResultAsync(countries, TableOperation.Delete, It.IsAny <CancellationToken>()));
        }
        public void RemoveEntities()
        {
            // Arrange
            Mock <ITableRequestExecutor <Country> > mock = MocksFactory.GetQueryExecutorMock <Country>();
            CloudTableClient tableClient = ObjectsFactory.GetCloudTableClient();
            var context = new TableSet <Country>(tableClient)
            {
                RequestExecutor = mock.Object
            };

            IList <Country> countries = ObjectsFactory.GetCountries();

            // Act
            context.Remove(countries);

            // Assert
            mock.Verify(executor => executor.ExecuteBatchesWithoutResult(countries, TableOperation.Delete), Times.Once());
        }
Beispiel #21
0
        public void AddOrUpdateEmptyCollection()
        {
            // Arrange
            Mock <ITableRequestExecutor <Country> > mock = MocksFactory.GetQueryExecutorMock <Country>();
            CloudTableClient tableClient = ObjectsFactory.GetCloudTableClient();
            var context = new TableSet <Country>(tableClient)
            {
                RequestExecutor = mock.Object
            };

            var countries = new List <Country>();

            // Act
            var result = context.AddOrUpdate(countries);

            // Assert
            Assert.NotNull(result);
            Assert.Equal(countries, result);
        }
Beispiel #22
0
        public void AddOrUpdateEntitiesWithNullParameter()
        {
            // Arrange
            Mock <ITableRequestExecutor <Country> > mock = MocksFactory.GetQueryExecutorMock <Country>();
            CloudTableClient tableClient = ObjectsFactory.GetCloudTableClient();
            var context = new TableSet <Country>(tableClient)
            {
                RequestExecutor = mock.Object
            };

            IEnumerable <Country> result = null;

            // Act
            Assert.Throws <ArgumentNullException>(() => { result = context.AddOrUpdate((IEnumerable <Country>)null); });

            // Assert
            Assert.Null(result);
            mock.Verify(executor => executor.ExecuteBatches(It.IsAny <IEnumerable <Country> >(), It.IsAny <Func <ITableEntity, TableOperation> >()), Times.Never());
        }
Beispiel #23
0
        public async Task AddOrUpdateEntitiesAsync()
        {
            // Arrange
            Mock <ITableRequestExecutor <Country> > mock = MocksFactory.GetQueryExecutorMock <Country>();
            CloudTableClient tableClient = ObjectsFactory.GetCloudTableClient();
            var context = new TableSet <Country>(tableClient)
            {
                RequestExecutor = mock.Object
            };

            var countries = ObjectsFactory.GetCountries();

            // Act
            var result = await context.AddOrUpdateAsync(countries);

            // Assert
            Assert.NotNull(result);
            mock.Verify(executor => executor.ExecuteBatchesAsync(countries, TableOperation.InsertOrReplace, It.IsAny <CancellationToken>()));
            Assert.Equal(countries, result);
        }
Beispiel #24
0
        public void AddOrUpdateEntities()
        {
            // Arrange
            Mock <ITableRequestExecutor <Country> > mock = MocksFactory.GetQueryExecutorMock <Country>();
            CloudTableClient tableClient = ObjectsFactory.GetCloudTableClient();
            var context = new TableSet <Country>(tableClient)
            {
                RequestExecutor = mock.Object
            };

            var countries = ObjectsFactory.GetCountries();

            // Act
            var result = context.AddOrUpdate(countries);

            // Assert
            Assert.NotNull(result);
            mock.Verify(executor => executor.ExecuteBatches(countries, TableOperation.InsertOrReplace), Times.Once());
            Assert.Equal(countries, result);
        }
        public void AddEntity_FluentMapping()
        {
            // Arrange
            Mock <ITableRequestExecutor <Address> > mock = MocksFactory.GetQueryExecutorMock <Address>();
            CloudTableClient tableClient = ObjectsFactory.GetCloudTableClient();
            var context = new TableSet <Address>(tableClient)
            {
                RequestExecutor = mock.Object
            };

            Address model = ObjectsFactory.GetAddress();

            // Act
            Address result = context.Add(model);

            // Assert
            Assert.NotNull(result);
            mock.Verify(executor => executor.Execute(model, TableOperation.Insert), Times.Once());
            Assert.Equal(model, result);
        }
        public void AddEntity()
        {
            // Arrange
            Mock <ITableRequestExecutor <Country> > mock = MocksFactory.GetQueryExecutorMock <Country>();
            CloudTableClient tableClient = ObjectsFactory.GetCloudTableClient();
            var context = new TableSet <Country>(tableClient)
            {
                RequestExecutor = mock.Object
            };

            Country country = ObjectsFactory.GetCountry();

            // Act
            Country result = context.Add(country);

            // Assert
            Assert.NotNull(result);
            mock.Verify(executor => executor.Execute(country, TableOperation.Insert), Times.Once());
            Assert.Equal(country, result);
        }
        public async Task AddEntityAsync()
        {
            // Arrange
            Mock <ITableRequestExecutor <Country> > mock = MocksFactory.GetQueryExecutorMock <Country>();
            CloudTableClient tableClient = ObjectsFactory.GetCloudTableClient();
            var context = new TableSet <Country>(tableClient)
            {
                RequestExecutor = mock.Object
            };

            Country country = ObjectsFactory.GetCountry();

            // Act
            Country result = await context.AddAsync(country);

            // Assert
            Assert.NotNull(result);
            mock.Verify(executor => executor.ExecuteAsync(country, TableOperation.Insert, It.IsAny <CancellationToken>()));
            Assert.Equal(country, result);
        }
        public async Task RemoveEntityWithNullParameterAsync()
        {
            // Arrange
            Mock <ITableRequestExecutor <Country> > mock = MocksFactory.GetQueryExecutorMock <Country>();
            CloudTableClient tableClient = ObjectsFactory.GetCloudTableClient();
            var context = new TableSet <Country>(tableClient)
            {
                RequestExecutor = mock.Object
            };

            // Act
            try
            {
                await context.RemoveAsync((Country)null, CancellationToken.None);
            }
            catch (ArgumentNullException)
            {
            }

            // Assert
            mock.Verify(executor => executor.Execute(It.IsAny <Country>(), It.IsAny <Func <ITableEntity, TableOperation> >()), Times.Never());
        }