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 async Task CreateWithSqlInjectionTest() { var connectionFactory = new DefaultConnectionFactory(); var seasonDao = new GenericDao <Entities.Season>(connectionFactory); var expectedDomainObject = new Entities.Season() { Name = "'DELETE FROM [Hurace].[Sex];--", StartDate = DateTime.Now.AddDays(-365).Date, EndDate = DateTime.Now.Date }; var actualDomainObjectId = await seasonDao.CreateAsync(expectedDomainObject) .ConfigureAwait(false); var actualDomainObject = await seasonDao.GetByIdAsync(actualDomainObjectId) .ConfigureAwait(false); Assert.Equal(expectedDomainObject.Name, actualDomainObject.Name); Assert.Equal(expectedDomainObject.StartDate, actualDomainObject.StartDate); Assert.Equal(expectedDomainObject.EndDate, actualDomainObject.EndDate); var sexDao = new GenericDao <Entities.Sex>(connectionFactory); Assert.Equal(2, (await sexDao.GetAllConditionalAsync().ConfigureAwait(false)).Count()); }