예제 #1
0
        public void ReplaceCourseNameWithCourseID()
        {
            HistoricDataReader reader       = new HistoricDataReader();      // @"C:\Users\carra\Documents\HotTipster\HotTipsHistoricData.txt");
            IList <RaceCourse> rcList       = ReadWriteToSQLite.RetrieveRaceCourseNamesFromDB();
            List <HorseBet>    historicBets = reader.ListOfHistoricHorseBetsOriginal();

            foreach (var bet in historicBets)
            {
                var id = (from rc in rcList
                          where rc.RaceCourseName == bet.RaceCourseName
                          select rc.RaceCourseID).ToArray();
                bet.CourseID = id[0];
            }

            List <HorseBet> actualResult   = historicBets;
            List <HorseBet> expectedResult = expectedResult = reader.ListOfHistoricHorseBetsWithCourseID();

            Assert.AreEqual(expectedResult.Count, actualResult.Count);
            Assert.AreEqual(expectedResult[0].CourseID, actualResult[0].CourseID);
            Assert.AreEqual(expectedResult[0].RaceCourseName, actualResult[0].RaceCourseName);
            Assert.AreEqual(expectedResult[0].RaceDate, actualResult[0].RaceDate);
            Assert.AreEqual(expectedResult[10].CourseID, actualResult[10].CourseID);
            Assert.AreEqual(expectedResult[10].RaceCourseName, actualResult[10].RaceCourseName);
            Assert.AreEqual(expectedResult[10].RaceDate, actualResult[10].RaceDate);
            //Assert.AreEqual(expectedResult[0], actualResult[0]); //Error = Assert.AreEqual failed. Expected:<HotTipster.HorseBet>. Actual:<HotTipster.HorseBet>.

            //CollectionAssert.AreEquivalent(expectedResult, actualResult); // Can't get this to work
        }
예제 #2
0
        private void btnAddBet_Click(object sender, EventArgs e)
        {
            string   racecourseName = cboRaceCourses.SelectedItem.ToString();
            DateTime raceDate       = dtpRaceDate.Value;
            Decimal  betAmount      = decimal.Parse(txtBetAmount.Text);
            bool     result;

            if (rdoWin.Checked)
            {
                result = true;
            }
            else
            {
                result = false;
            }

            List <RaceCourse> rcList = new List <RaceCourse>();

            rcList = ReadWriteToSQLite.RetrieveRaceCourseNamesFromDB();
            var id = (from rc in rcList
                      where rc.RaceCourseName == racecourseName
                      select rc.RaceCourseID).ToArray();
            int raceCourseID = id[0];

            dbaccess.InsertNewBet(raceCourseID, raceDate, result, betAmount);

            //reset form
            cboRaceCourses.SelectedIndex = 0;
            dtpRaceDate.Value            = DateTime.Today;
            txtBetAmount.Clear();
            rdoWin.Checked = true;
        }
예제 #3
0
        public void TestAddNewRaceCourseUsingExistingName()
        {
            ReadWriteToSQLite dataWriter = new ReadWriteToSQLite();
            List <RaceCourse> beforeList = ReadWriteToSQLite.RetrieveRaceCourseNamesFromDB();

            dataWriter.InsertNewRaceCourse("Aintree");
            List <RaceCourse> afterList = ReadWriteToSQLite.RetrieveRaceCourseNamesFromDB();

            Assert.AreEqual(afterList.Count, beforeList.Count);
        }
예제 #4
0
        public void TestAddNewRaceCourse()
        {
            ReadWriteToSQLite dataWriter = new ReadWriteToSQLite();
            List <RaceCourse> beforeList = ReadWriteToSQLite.RetrieveRaceCourseNamesFromDB();

            dataWriter.InsertNewRaceCourse("Ballinrobe");
            List <RaceCourse> afterList = ReadWriteToSQLite.RetrieveRaceCourseNamesFromDB();

            Assert.AreEqual(afterList.Count, beforeList.Count + 1);
        }
예제 #5
0
        public void TestInsertNewHorseBet()
        {
            ReadWriteToSQLite dataWriter = new ReadWriteToSQLite();
            List <HorseBet>   beforeList = ReadWriteToSQLite.RetrieveHorseBetsFromDB();

            dataWriter.InsertNewBet(3, new DateTime(2018, 2, 25), true, 25.00M);
            List <HorseBet> afterList = ReadWriteToSQLite.RetrieveHorseBetsFromDB();

            Assert.AreEqual(afterList.Count, beforeList.Count + 1);
        }
예제 #6
0
        public static List <string> ListOfRaceCourseNamesForAddBetComboBox()
        {
            //no unit test - rely on test for retrieve racecourse list from DB and observation of result in combo box
            //ReadWriteToSQLite reader = new ReadWriteToSQLite();
            List <RaceCourse> rcList = ReadWriteToSQLite.RetrieveRaceCourseNamesFromDB();
            var comboList            = (from rc in rcList
                                        select rc.RaceCourseName).ToList();

            return(comboList);
        }
예제 #7
0
        private void btnSaveNewRaceCourse_Click(object sender, EventArgs e)
        {
            string            name   = txtAddNewRaceCourse.Text;
            ReadWriteToSQLite writer = new ReadWriteToSQLite();

            writer.InsertNewRaceCourse(name);
            AddBetInformation bet = new AddBetInformation();

            bet.Show();
            this.Close();
        }
예제 #8
0
        public static List <HorseBet> AddCoursenNameToRetrievedHorseBetData(List <HorseBet> bets)
        {
            List <RaceCourse> rcList = ReadWriteToSQLite.RetrieveRaceCourseNamesFromDB();

            foreach (var bet in bets)
            {
                var id = (from rc in rcList
                          where rc.RaceCourseID == bet.CourseID
                          select rc.RaceCourseName).ToArray();
                bet.RaceCourseName = id[0];
            }

            return(bets);
        }
예제 #9
0
        public HotTipsterMenu()
        {
            InitializeComponent();
            ReadWriteToSQLite  sqldb  = new ReadWriteToSQLite();
            HistoricDataReader reader = new HistoricDataReader();            // @"C:\Users\carra\Documents\HotTipster\HotTipsHistoricData.txt"); //Replace with directory ref?

            if (!File.Exists(Directory.GetCurrentDirectory() + Path.DirectorySeparatorChar + "HotTipster.db"))
            {
                sqldb.CreateDatabase();
                sqldb.InsertExistingRaceCoursesIntoDB();
                //sqldb.InsertListOfBets(reader.ListOfHistoricHorseBetsOriginal());
                sqldb.InsertListOfBets(HorseBet.AddCourseIDToHistoricBetData());
            }
        }
예제 #10
0
        public static List <HorseBet> AddCourseIDToHistoricBetData()
        {
            //ReadWriteToSQLite writer = new ReadWriteToSQLite();
            HistoricDataReader reader       = new HistoricDataReader();      //@"C:\Users\carra\Documents\HotTipster\HotTipsHistoricData.txt");
            List <RaceCourse>  rcList       = ReadWriteToSQLite.RetrieveRaceCourseNamesFromDB();
            List <HorseBet>    historicBets = reader.ListOfHistoricHorseBetsOriginal();

            foreach (var bet in historicBets)
            {
                var id = (from rc in rcList
                          where rc.RaceCourseName == bet.RaceCourseName
                          select rc.RaceCourseID).ToArray();
                bet.CourseID = id[0];
            }

            return(historicBets);
        }
예제 #11
0
        public void AddCourseIDToHistoricBetData()
        {
            List <HorseBet>   bets;
            ReadWriteToSQLite dataWriter = new ReadWriteToSQLite();

            dataWriter.CreateDatabase();
            dataWriter.InsertExistingRaceCoursesIntoDB();
            bets = HorseBet.AddCourseIDToHistoricBetData();

            HorseBet test = new HorseBet("Aintree", new DateTime(2017, 5, 12), 11.58m, true, 0);

            //CollectionAssert.Contains(bets, test);
            Assert.IsTrue(bets.Any(bet => bet.CourseID == 1));
            Assert.IsTrue(bets.Any(bet => bet.CourseID == 6));
            Assert.IsTrue(bets.Any(bet => bet.CourseID == 13));
            Assert.IsTrue(bets.Any(bet => bet.CourseID == 18));
            Assert.IsFalse(bets.Any(bet => bet.CourseID == 20));
        }
예제 #12
0
        public void TestBetListAddedToDatabase()
        {
            List <HorseBet> test = new List <HorseBet>();

            test.Add(new HorseBet("Aintree", new DateTime(2017, 5, 12), 11.58m, true, 1));

            ReadWriteToSQLite writer = new ReadWriteToSQLite();

            writer.InsertListOfBets(test);
            List <HorseBet> retrievedBet = new List <HorseBet>();

            retrievedBet = ReadWriteToSQLite.RetrieveHorseBetsFromDB();

            Assert.AreEqual(test[0].CourseID, retrievedBet[0].CourseID);
            Assert.AreEqual(test[0].BetAmount, retrievedBet[0].BetAmount);
            Assert.AreEqual(test[0].BetResult, retrievedBet[0].BetResult);
            Assert.AreEqual(test[0].RaceDate, retrievedBet[0].RaceDate);
            Assert.AreEqual(test.Count(), retrievedBet.Count());
        }
예제 #13
0
        public void check18RaceCourseNamesAddedToDB()
        {
            List <RaceCourse> expectedListRaceCourses = new List <RaceCourse>();
            List <string>     expectedNames           = new List <string> {
                "Aintree", "Ascot", "Ayr", "Bangor", "Chester", "Cork",
                "Doncaster", "Dundalk", "Fairyhouse", "Goodwood", "Haydock", "Kelso", "Kilbeggan",
                "Perth", "Punchestown", "Sandown", "Towcester", "York"
            };
            int idReference = 1;

            foreach (var name in expectedNames)
            {
                RaceCourse rc = new RaceCourse();
                rc.RaceCourseID   = idReference;
                rc.RaceCourseName = name;
                expectedListRaceCourses.Add(rc);
                idReference++;
            }


            List <RaceCourse> ActualRaceCourseList = new List <RaceCourse>();
            SqliteConnection  dbConnection         = new SqliteConnection("Filename=HotTipster.db");

            using (dbConnection)
            {
                dbConnection.Open();
                dataWriter.InsertExistingRaceCoursesIntoDB();
                ActualRaceCourseList = ReadWriteToSQLite.RetrieveRaceCourseNamesFromDB();
                dbConnection.Close();
            }

            int expectedLength = expectedListRaceCourses.Count;             //number of unique racecourse names in historic data
            int actualLenght   = ActualRaceCourseList.Count;

            Assert.AreEqual(expectedLength, actualLenght);
            Assert.AreEqual(expectedListRaceCourses[0].RaceCourseID, ActualRaceCourseList[0].RaceCourseID);
            Assert.AreEqual(expectedListRaceCourses[0].RaceCourseName, ActualRaceCourseList[0].RaceCourseName);
            Assert.AreEqual(expectedListRaceCourses[0].RaceCourseName, "Aintree");
            Assert.IsInstanceOfType(ActualRaceCourseList[0], typeof(RaceCourse));
            Assert.IsInstanceOfType(expectedListRaceCourses[0], typeof(RaceCourse));
            //CollectionAssert.AreEquivalent(expectedListRaceCourses, ActualRaceCourseList, "Message",new RaceCourseComparer()); can't get this to pass even though both lists are the same
        }