public async Task UpdateMultipleDomainObjectsTests()
        {
            var raceDao = new GenericDao <Entities.Race>(new DefaultConnectionFactory());

            var comparisonRaceIds = new int[] { 10, 20, 30 };

            var updateCondition = new QueryConditionBuilder()
                                  .DeclareConditionNode(
                QueryConditionNodeType.Or,
                () => new QueryConditionBuilder()
                .DeclareCondition(nameof(Entities.EntityObjectBase.Id), QueryConditionType.Equals, comparisonRaceIds[0]),
                () => new QueryConditionBuilder()
                .DeclareConditionNode(
                    QueryConditionNodeType.Or,
                    () => new QueryConditionBuilder()
                    .DeclareCondition(nameof(Entities.EntityObjectBase.Id), QueryConditionType.Equals, comparisonRaceIds[1]),
                    () => new QueryConditionBuilder()
                    .DeclareCondition(nameof(Entities.EntityObjectBase.Id), QueryConditionType.Equals, comparisonRaceIds[2])))
                                  .Build();

            var expectedNumberOfSensors = 10;
            var expectedDate            = DateTime.Now.Date.AddYears(1);

            foreach (var raceId in comparisonRaceIds)
            {
                var raceEntity = await raceDao.GetByIdAsync(raceId).ConfigureAwait(false);

                Assert.NotEqual(expectedNumberOfSensors, raceEntity.NumberOfSensors);
                Assert.NotEqual(expectedDate, raceEntity.Date);
            }

            var updateColumns = new
            {
                NumberOfSensors = expectedNumberOfSensors,
                Date            = expectedDate
            };

            var affectedRows = await raceDao.UpdateAsync(updateColumns, updateCondition).ConfigureAwait(false);

            Assert.Equal(comparisonRaceIds.Length, affectedRows);

            foreach (var raceId in comparisonRaceIds)
            {
                var raceEntity = await raceDao.GetByIdAsync(raceId).ConfigureAwait(false);

                Assert.Equal(expectedNumberOfSensors, raceEntity.NumberOfSensors);
                Assert.Equal(expectedDate, raceEntity.Date);
            }
        }
        public void UpdateWithInvalidNewObject()
        {
            var skierDao = new GenericDao <Entities.Skier>(new DefaultConnectionFactory());

            Assert.ThrowsAsync <ArgumentNullException>(() => skierDao.UpdateAsync(null));
        }