Ejemplo n.º 1
0
        public void SightDelete()
        {
            AbstractConnection abstractConnection = ConnectionFactory.CreateConnection();

            abstractConnection.Open();
            TouristDataSet      ds = new TouristDataSet();
            SightDataAccessor   sightDataAccessor   = new SightDataAccessor();
            AbstractTransaction abstractTransaction = abstractConnection.BeginTransaction();

            //Читаем данные с БД в датасет и смотрим число строк
            sightDataAccessor.ReadData(abstractTransaction, abstractConnection, ds);
            int countElements = ds.Sight.Count;

            ds.Sight.Clear();

            //Добавляем строку в датасет и записываем в БД
            ds.Sight.AddSightRow("String", "ToDelete");
            sightDataAccessor.WriteData(abstractTransaction, abstractConnection, ds);

            //Чистим датасет, записываем в него ещё раз и удаляем из него последнюю запись
            ds.Sight.Clear();
            sightDataAccessor.ReadData(abstractTransaction, abstractConnection, ds);
            ds.Sight[countElements].Delete();

            //Пишем в БД и снова читаем из неё в датасет
            sightDataAccessor.WriteData(abstractTransaction, abstractConnection, ds);
            ds.Sight.Clear();
            sightDataAccessor.ReadData(abstractTransaction, abstractConnection, ds);

            abstractTransaction.Commit();
            abstractConnection.Close();

            //Смотрим число строк до всех манипуляций и после
            Assert.AreEqual(ds.Sight.Count, countElements);
        }
Ejemplo n.º 2
0
        public void SightReadNotEmptyTable()
        {
            AbstractConnection abstractConnection = ConnectionFactory.CreateConnection();

            abstractConnection.Open();
            TouristDataSet      ds = new TouristDataSet();
            SightDataAccessor   sightDataAccessor   = new SightDataAccessor();
            AbstractTransaction abstractTransaction = abstractConnection.BeginTransaction();

            //Читаем строки с БД и смотрим их число
            sightDataAccessor.ReadData(abstractTransaction, abstractConnection, ds);
            int countElements = ds.Sight.Count;

            //Добавляем строку и пишем в базу
            ds.Sight.AddSightRow("Памятник Ленину", "Обычный памятник в городе");
            sightDataAccessor.WriteData(abstractTransaction, abstractConnection, ds);
            ds.Sight.Clear();

            //Читаем снова и смотрим на последнюю строку
            sightDataAccessor.ReadData(abstractTransaction, abstractConnection, ds);

            abstractTransaction.Commit();
            abstractConnection.Close();
            Assert.AreEqual("Памятник Ленину", ds.Sight[countElements].sight_name);
            Assert.AreEqual("Обычный памятник в городе", ds.Sight[countElements].sight_descr);
        }
Ejemplo n.º 3
0
        public void SightInsert()
        {
            AbstractConnection abstractConnection = ConnectionFactory.CreateConnection();

            abstractConnection.Open();
            TouristDataSet      ds = new TouristDataSet();
            SightDataAccessor   sightDataAccessor   = new SightDataAccessor();
            AbstractTransaction abstractTransaction = abstractConnection.BeginTransaction();

            //Читаем данные с БД, считаем число записей в датасете
            sightDataAccessor.ReadData(abstractTransaction, abstractConnection, ds);
            int countElement = ds.Sight.Count;

            //Добавляем строку в датасет, сохраняем в БД, снова читаем в датасет
            ds.Sight.AddSightRow("Insert", "Str.");
            sightDataAccessor.WriteData(abstractTransaction, abstractConnection, ds);
            ds.Sight.Clear();
            sightDataAccessor.ReadData(abstractTransaction, abstractConnection, ds);

            abstractTransaction.Commit();
            abstractConnection.Close();

            Assert.AreEqual("Insert", ds.Sight[countElement].sight_name);
            Assert.AreEqual("Str.", ds.Sight[countElement].sight_descr);
        }
Ejemplo n.º 4
0
 public BusinessLogic()
 {
     sightDataAccessor      = new SightDataAccessor();
     tourDataAccessor       = new TourDataAccessor();
     instructorDataAccessor = new InstructorDataAccessor();
     tourTypeDataAccessor   = new TourTypeDataAccessor();
     scheduleDataAccessor   = new ScheduleDataAccessor();
 }
Ejemplo n.º 5
0
        public void SightUpdate()
        {
            AbstractConnection abstractConnection = ConnectionFactory.CreateConnection();

            abstractConnection.Open();
            TouristDataSet      ds = new TouristDataSet();
            SightDataAccessor   sightDataAccessor   = new SightDataAccessor();
            AbstractTransaction abstractTransaction = abstractConnection.BeginTransaction();

            //Читаем и проверяем, что в таблице хоть что-то есть
            sightDataAccessor.ReadData(abstractTransaction, abstractConnection, ds);
            int countElement = ds.Sight.Count;

            if (countElement == 0)
            {
                //Если ничего нет, добавляем 1 строку
                ds.Sight.AddSightRow("Insert", "Str.");
                sightDataAccessor.WriteData(abstractTransaction, abstractConnection, ds);
            }
            //Читаем снова, пересчитываем число строк
            ds.Sight.Clear();
            sightDataAccessor.ReadData(abstractTransaction, abstractConnection, ds);
            countElement = ds.Sight.Count;

            //Проверяем, что число строк >= 1
            Assert.GreaterOrEqual(countElement, 1);

            //Меняем поле и пишем в БД
            ds.Sight[countElement - 1].sight_descr = "Hello from Update";
            sightDataAccessor.WriteData(abstractTransaction, abstractConnection, ds);
            ds.Sight.Clear();

            //Читаем снова и сравниваем
            sightDataAccessor.ReadData(abstractTransaction, abstractConnection, ds);

            abstractTransaction.Commit();
            abstractConnection.Close();
            Assert.AreEqual("Hello from Update", ds.Sight[countElement - 1].sight_descr);
        }
Ejemplo n.º 6
0
        public void SightReadEmptyTable()
        {
            AbstractConnection abstractConnection = ConnectionFactory.CreateConnection();

            abstractConnection.Open();
            TouristDataSet      ds = new TouristDataSet();
            TourDataAccessor    tourDataAccessor    = new TourDataAccessor();
            SightDataAccessor   sightDataAccessor   = new SightDataAccessor();
            AbstractTransaction abstractTransaction = abstractConnection.BeginTransaction();

            //Чтение в датасет и удаление оттуда всех записей
            tourDataAccessor.ReadData(abstractTransaction, abstractConnection, ds);
            sightDataAccessor.ReadData(abstractTransaction, abstractConnection, ds);
            for (int i = 0; i < ds.Tour.Count; i++)
            {
                ds.Tour[i].Delete();
            }
            for (int i = 0; i < ds.Sight.Count; i++)
            {
                ds.Sight[i].Delete();
            }

            //Сохранение в БД
            tourDataAccessor.WriteData(abstractTransaction, abstractConnection, ds);
            sightDataAccessor.WriteData(abstractTransaction, abstractConnection, ds);

            ds.Tour.Clear();
            ds.Sight.Clear();

            //Чтение в датасет из пустой таблицы
            sightDataAccessor.ReadData(abstractTransaction, abstractConnection, ds);
            int countElement = ds.Sight.Count;

            abstractTransaction.Commit();
            abstractConnection.Close();

            Assert.AreEqual(0, countElement);
        }
Ejemplo n.º 7
0
        public void TourReadNotEmptyTable()
        {
            AbstractConnection abstractConnection = ConnectionFactory.CreateConnection();

            abstractConnection.Open();
            TouristDataSet       ds = new TouristDataSet();
            TourDataAccessor     tourDataAccessor     = new TourDataAccessor();
            SightDataAccessor    sightDataAccessor    = new SightDataAccessor();
            TourTypeDataAccessor tourTypeDataAccessor = new TourTypeDataAccessor();
            ScheduleDataAccessor scheduleDataAccessor = new ScheduleDataAccessor();
            AbstractTransaction  abstractTransaction  = abstractConnection.BeginTransaction();

            //Читаем строки с БД и смотрим их число
            tourDataAccessor.ReadData(abstractTransaction, abstractConnection, ds);
            sightDataAccessor.ReadData(abstractTransaction, abstractConnection, ds);
            scheduleDataAccessor.ReadData(abstractTransaction, abstractConnection, ds);
            tourTypeDataAccessor.ReadData(abstractTransaction, abstractConnection, ds);
            int countElements = ds.Tour.Count;

            //Проверка, есть ли значения в таблицах расписания, экскурсии и типа экскурсии. Если значения нет, записываем его и считываем еще раз
            if (ds.Sight.Count == 0)
            {
                ds.Sight.AddSightRow("Первое название экскурсии", "Первое описание экскурсии");
                sightDataAccessor.WriteData(abstractTransaction, abstractConnection, ds);
            }
            if (ds.Schedule.Count == 0)
            {
                DateTime currentDateTime = DateTime.Now;
                currentDateTime = new DateTime(currentDateTime.Year, currentDateTime.Month, currentDateTime.Day,
                                               currentDateTime.Hour, currentDateTime.Minute, currentDateTime.Second);
                ds.Schedule.AddScheduleRow(currentDateTime);
                scheduleDataAccessor.WriteData(abstractTransaction, abstractConnection, ds);
            }
            if (ds.TourType.Count == 0)
            {
                ds.TourType.AddTourTypeRow("Первая строка списка туров");
                tourTypeDataAccessor.WriteData(abstractTransaction, abstractConnection, ds);
            }
            //Чистим таблицы датасета и читаем заново данные с базы
            ds.Tour.Clear();
            ds.Sight.Clear();
            ds.Schedule.Clear();
            ds.TourType.Clear();
            tourDataAccessor.ReadData(abstractTransaction, abstractConnection, ds);
            sightDataAccessor.ReadData(abstractTransaction, abstractConnection, ds);
            scheduleDataAccessor.ReadData(abstractTransaction, abstractConnection, ds);
            tourTypeDataAccessor.ReadData(abstractTransaction, abstractConnection, ds);

            //Сохраняем ID первой записи таблиц
            Int32 savedSightId    = ds.Sight[0].id;
            Int32 savedScheduleId = ds.Schedule[0].id;
            Int32 savedTourTypeId = ds.TourType[0].id;

            //Добавляем строку и пишем в базу
            ds.Tour.AddTourRow("Тур городской", "Тур по городу", ds.Sight[0], ds.Schedule[0], ds.TourType[0]);
            tourDataAccessor.WriteData(abstractTransaction, abstractConnection, ds);
            ds.Tour.Clear();

            //Читаем снова и смотрим на последнюю строку
            tourDataAccessor.ReadData(abstractTransaction, abstractConnection, ds);

            abstractTransaction.Commit();
            abstractConnection.Close();
            Assert.AreEqual("Тур городской", ds.Tour[countElements].tour_name);
            Assert.AreEqual("Тур по городу", ds.Tour[countElements].tour_descr);
            Assert.AreEqual(savedSightId, ds.Tour[countElements].id_sight);
            Assert.AreEqual(savedScheduleId, ds.Tour[countElements].id_schedule);
            Assert.AreEqual(savedTourTypeId, ds.Tour[countElements].id_tour_type);
        }
Ejemplo n.º 8
0
        public void TourDelete()
        {
            AbstractConnection abstractConnection = ConnectionFactory.CreateConnection();

            abstractConnection.Open();
            TouristDataSet       ds = new TouristDataSet();
            TourDataAccessor     tourDataAccessor     = new TourDataAccessor();
            SightDataAccessor    sightDataAccessor    = new SightDataAccessor();
            TourTypeDataAccessor tourTypeDataAccessor = new TourTypeDataAccessor();
            ScheduleDataAccessor scheduleDataAccessor = new ScheduleDataAccessor();
            AbstractTransaction  abstractTransaction  = abstractConnection.BeginTransaction();

            //Читаем строки с БД и смотрим их число
            tourDataAccessor.ReadData(abstractTransaction, abstractConnection, ds);
            sightDataAccessor.ReadData(abstractTransaction, abstractConnection, ds);
            scheduleDataAccessor.ReadData(abstractTransaction, abstractConnection, ds);
            tourTypeDataAccessor.ReadData(abstractTransaction, abstractConnection, ds);
            int countElements = ds.Tour.Count;

            //Проверка, есть ли значения в таблицах расписания, экскурсии и типа экскурсии. Если значения нет, записываем его и считываем еще раз
            if (ds.Sight.Count == 0)
            {
                ds.Sight.AddSightRow("Первое название экскурсии", "Первое описание экскурсии");
                sightDataAccessor.WriteData(abstractTransaction, abstractConnection, ds);
            }
            if (ds.Schedule.Count == 0)
            {
                DateTime currentDateTime = DateTime.Now;
                currentDateTime = new DateTime(currentDateTime.Year, currentDateTime.Month, currentDateTime.Day,
                                               currentDateTime.Hour, currentDateTime.Minute, currentDateTime.Second);
                ds.Schedule.AddScheduleRow(currentDateTime);
                scheduleDataAccessor.WriteData(abstractTransaction, abstractConnection, ds);
            }
            if (ds.TourType.Count == 0)
            {
                ds.TourType.AddTourTypeRow("Первая строка списка туров");
                tourTypeDataAccessor.WriteData(abstractTransaction, abstractConnection, ds);
            }
            //Чистим таблицы датасета и читаем заново данные с базы
            ds.Tour.Clear();
            ds.Sight.Clear();
            ds.Schedule.Clear();
            ds.TourType.Clear();
            tourDataAccessor.ReadData(abstractTransaction, abstractConnection, ds);
            sightDataAccessor.ReadData(abstractTransaction, abstractConnection, ds);
            scheduleDataAccessor.ReadData(abstractTransaction, abstractConnection, ds);
            tourTypeDataAccessor.ReadData(abstractTransaction, abstractConnection, ds);

            //Добавляем строку и пишем в базу
            ds.Tour.AddTourRow("Тур для удаления", "Тур по удалению", ds.Sight[0], ds.Schedule[0], ds.TourType[0]);
            tourDataAccessor.WriteData(abstractTransaction, abstractConnection, ds);

            //Чистим датасет, записываем в него ещё раз и удаляем из него последнюю запись
            ds.Tour.Clear();
            tourDataAccessor.ReadData(abstractTransaction, abstractConnection, ds);
            ds.Tour[countElements].Delete();

            //Пишем в БД и снова читаем из неё в датасет
            tourDataAccessor.WriteData(abstractTransaction, abstractConnection, ds);
            ds.Tour.Clear();
            tourDataAccessor.ReadData(abstractTransaction, abstractConnection, ds);

            abstractTransaction.Commit();
            abstractConnection.Close();

            //Смотрим число строк до всех манипуляций и после
            Assert.AreEqual(ds.Tour.Count, countElements);
        }