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());
        }
        private static Entities.EntityObjectBase GenerateTestableCompareObject(Type currentDomainType)
        {
            Entities.EntityObjectBase testObject;

            switch (currentDomainType.Name)
            {
            case nameof(Entities.Country):
                testObject = new Entities.Country()
                {
                    Id   = 5,
                    Name = "SUI"
                };
                return(testObject);

            case nameof(Entities.Race):
                testObject = new Entities.Race()
                {
                    Id                = 13,
                    RaceTypeId        = 0,
                    FirstStartListId  = 13,
                    SecondStartListId = 87,
                    NumberOfSensors   = 5,
                    Description       = "The ancient origins of skiing can be traced back to prehistoric " +
                                        "times in Russia, Finland, Sweden and Norway where varying sizes and shapes" +
                                        " of wooden planks were preserved in peat bogs. Skis were first invented to" +
                                        " cross wetlands and marshes in the winter when they froze over.",
                    VenueId = 4,
                    Date    = new DateTime(2019, 12, 03),
                    GenderSpecificRaceId = 1
                };
                return(testObject);

            case nameof(Entities.RaceData):
                testObject = new Entities.RaceData()
                {
                    Id          = 311,
                    StartListId = 6,
                    SkierId     = 452,
                    RaceStateId = 0
                };
                return(testObject);

            case nameof(Entities.RaceState):
                testObject = new Entities.RaceState()
                {
                    Id    = 2,
                    Label = "NichtAbgeschlossen"
                };
                return(testObject);

            case nameof(Entities.RaceType):
                testObject = new Entities.RaceType()
                {
                    Id    = 0,
                    Label = "Riesentorlauf"
                };
                return(testObject);

            case nameof(Entities.Season):
                testObject = new Entities.Season()
                {
                    Id        = 1,
                    Name      = "Jährliche Saison 2020",
                    StartDate = new DateTime(2020, 1, 1),
                    EndDate   = new DateTime(2020, 12, 31)
                };
                return(testObject);

            case nameof(Entities.SeasonPlan):
                testObject = new Entities.SeasonPlan()
                {
                    Id       = 53,
                    VenueId  = 22,
                    SeasonId = 1
                };
                return(testObject);

            case nameof(Entities.Sex):
                testObject = new Entities.Sex()
                {
                    Id    = 0,
                    Label = "Weiblich"
                };
                return(testObject);

            case nameof(Entities.Skier):
                testObject = new Entities.Skier()
                {
                    Id          = 120,
                    FirstName   = "Marcel",
                    LastName    = "Hirscher",
                    DateOfBirth = new DateTime(1989, 3, 2),
                    CountryId   = 3,
                    SexId       = 1,
                    ImageUrl    = "https://data.fis-ski.com/general/load-competitor-picture/106332.html",
                    IsRemoved   = false
                };
                return(testObject);

            case nameof(Entities.StartList):
                testObject = new Entities.StartList()
                {
                    Id = 41
                };
                return(testObject);

            case nameof(Entities.StartPosition):
                testObject = new Entities.StartPosition()
                {
                    Id          = 53,
                    SkierId     = 150,
                    StartListId = 1,
                    Position    = 2
                };
                return(testObject);

            case nameof(Entities.TimeMeasurement):
                testObject = new Entities.TimeMeasurement()
                {
                    Id          = 226,
                    SensorId    = 4,
                    Measurement = 24074,
                    RaceDataId  = 37,
                    IsValid     = true
                };
                return(testObject);

            case nameof(Entities.Venue):
                testObject = new Entities.Venue()
                {
                    Id        = 20,
                    Name      = "Kitzbuehel",
                    CountryId = 3
                };
                return(testObject);

            default:
                throw new ArgumentException($"DomainType {nameof(currentDomainType)} is not recognized");
            }
        }