Beispiel #1
0
        public void AddQuery_CheckVariantAnswersCount()
        {
            var query = new Query();

            query.Text = "text1";
            var variant1 = new VariantAnsver();

            variant1.Text = "variant1";
            var variant2 = new VariantAnsver();

            variant2.Text = "variant2";
            var variant3 = new VariantAnsver();

            variant3.Text        = "variant3";
            query.VariantsAnsver = new List <VariantAnsver>()
            {
                variant1, variant2, variant3
            };

            QueryRepo repo = new QueryRepo(_db);

            repo.Add(query);

            var querysList = repo.GetAll();

            Assert.AreEqual(3, querysList.First().VariantsAnsver.Count);

            var variantAnswersTextList = querysList.First().VariantsAnsver.Select(e => e.Text);

            Assert.That(variantAnswersTextList, Has.Member("variant1"));
            Assert.That(variantAnswersTextList, Has.Member("variant2"));
            Assert.That(variantAnswersTextList, Has.Member("variant3"));
        }
        public void GetRestaurantsInQueryShouldNotThrowExceptionIfIdIsInDB(int Id, bool useAsync)
        {
            //Arrange
            var options = new DbContextOptionsBuilder <Project2DBContext>()
                          .UseInMemoryDatabase(databaseName: "StaticFilledQueryDB")
                          .Options;
            bool      result = true;
            QueryRepo qRepo;

            //Act
            using (var context = new Project2DBContext(options))
            {
                qRepo = new QueryRepo(context);
                if (useAsync)
                {
                    qRepo.GetRestaurantsInQueryAsync(Id).Wait();
                }
                else
                {
                    qRepo.GetRestaurantsInQuery(Id);
                }
            }
            //If exception is throw, test will exit before reaching Assert
            //Assert
            Assert.True(result);
        }
Beispiel #3
0
        public void AddQuery_CheckOnlyQueryCount()
        {
            var query = new Query();

            query.Text = "text1";
            var variant1 = new VariantAnsver();

            variant1.Text = "variant1";
            var variant2 = new VariantAnsver();

            variant2.Text = "variant2";
            var variant3 = new VariantAnsver();

            variant3.Text        = "variant3";
            query.VariantsAnsver = new List <VariantAnsver>()
            {
                variant1, variant2, variant3
            };

            QueryRepo repo = new QueryRepo(_db);

            repo.Add(query);

            var querysList = repo.GetAll();

            Assert.AreEqual(1, querysList.Count);
        }
        public void GetQueriesShouldNotThrowExceptionIfDBIsEmpty()
        {
            //Arrange
            var options = new DbContextOptionsBuilder <Project2DBContext>()
                          .UseInMemoryDatabase(databaseName: "EmptyDB1")
                          .Options;

            bool      result = true;
            QueryRepo qRepo;

            //Act
            using (var context = new Project2DBContext(options))
            {
                qRepo = new QueryRepo(context);
                try
                {
                    qRepo.GetQueries();
                }
                catch
                {
                    result = false;
                }
            }
            //Assert
            Assert.True(result);
        }
        public void GetRestaurantsInQueryShouldReturnAllRestaurantsFromJunctionTable(int Id, bool useAsync)
        {
            //Arrange
            var options = new DbContextOptionsBuilder <Project2DBContext>()
                          .UseInMemoryDatabase(databaseName: "StaticFilledQueryDB")
                          .Options;

            List <Restaurant> rl;
            QueryRepo         qRepo;

            //Act
            using (var context = new Project2DBContext(options))
            {
                qRepo = new QueryRepo(context);
                if (useAsync)
                {
                    rl = qRepo.GetRestaurantsInQueryAsync(Id).Result;
                }
                else
                {
                    rl = qRepo.GetRestaurantsInQuery(Id);
                }
            }

            //Assert
            Assert.Equal(Id, rl.Count);
        }
        public void GetQueryByIDShouldReturnQueryWithMatchingId(int Id, bool useAsync)
        {
            //Arrange
            var options = new DbContextOptionsBuilder <Project2DBContext>()
                          .UseInMemoryDatabase(databaseName: "StaticFilledQueryDB")
                          .Options;

            Query     q;
            QueryRepo qRepo;

            //Act
            using (var context = new Project2DBContext(options))
            {
                qRepo = new QueryRepo(context);
                if (useAsync)
                {
                    q = qRepo.GetQueryByIDAsync(Id).Result;
                }
                else
                {
                    q = qRepo.GetQueryByID(Id);
                }
            }

            //Assert
            Assert.Equal(Id, q.Id);
        }
        public void DBContainsQueryShouldReturnFalseIfQueryIdNotInDB(int Id, bool useAsync)
        {
            //Arrange
            var options = new DbContextOptionsBuilder <Project2DBContext>()
                          .UseInMemoryDatabase(databaseName: "StaticFilledQueryDB")
                          .Options;
            bool      result;
            QueryRepo qRepo;

            //Act
            using (var context = new Project2DBContext(options))
            {
                qRepo = new QueryRepo(context);
                if (useAsync)
                {
                    result = qRepo.DBContainsQueryAsync(Id).Result;
                }
                else
                {
                    result = qRepo.DBContainsQuery(Id);
                }
            }
            //Assert
            Assert.False(result);
        }
        public void DBContainsQueryShouldReturnFalseIfIfDBIsEmpty(int Id, bool useAsync)
        {
            //Arrange
            var options = new DbContextOptionsBuilder <Project2DBContext>()
                          .UseInMemoryDatabase(databaseName: "EmptyQueryDB3")
                          .Options;
            bool      result;
            QueryRepo qRepo;

            //Act
            using (var context = new Project2DBContext(options))
            {
                qRepo = new QueryRepo(context);
                if (useAsync)
                {
                    result = qRepo.DBContainsQueryAsync(Id).Result;
                }
                else
                {
                    result = qRepo.DBContainsQuery(Id);
                }
            }
            //If exception is throw, test will exit before reaching Assert
            //Assert
            Assert.False(result);
        }
        public void InitializeDatabase(MyContext db)
        {
            if (!Database.Exists(db.Database.Connection.ConnectionString))
                db.Database.Create();

            QueryRepo queryRepo = new QueryRepo(db);

            if (queryRepo.GetAll().Count == 0)
            {
                var query1 = new Query();
                query1.Text = "Какую форму имеет планета земля?";
                query1.Point = 1;
                var variant11 = new VariantAnsver();
                variant11.Text = "круг";
                var variant22 = new VariantAnsver();
                variant22.Text = "квадрат";
                var variant33 = new VariantAnsver();
                variant33.Text = "эллипсоид вращения";
                variant33.IsRight = true;
                query1.VariantsAnsver = new List<VariantAnsver>() { variant11, variant22, variant33 };

                queryRepo.Add(query1);

                var query2 = new Query();
                query2.Text = "К какому семейству относится арбуз?";
                query2.Point = 2;
                var variant111 = new VariantAnsver();
                variant111.Text = "ягода";
                variant111.IsRight = true;
                var variant222 = new VariantAnsver();
                variant222.Text = "фрукт";
                var variant333 = new VariantAnsver();
                variant333.Text = "плотоядное животное";
                query2.VariantsAnsver = new List<VariantAnsver>() { variant111, variant222, variant333 };

                queryRepo.Add(query2);

                var query3 = new Query();
                query3.Text = "Какую цель преследовали США применив ядерное оружие против Японии?";
                query3.Point = 3;
                var variant1111 = new VariantAnsver();
                variant1111.Text = "Сократить жертвы среди мирных жителей";
                var variant2222 = new VariantAnsver();
                variant2222.Text = "Напугать СССР";
                variant2222.IsRight = true;
                var variant3333 = new VariantAnsver();
                variant3333.Text = "Испытать новое оружие";
                variant3333.IsRight = true;
                query3.VariantsAnsver = new List<VariantAnsver>() { variant1111, variant2222, variant3333 };

                queryRepo.Add(query3);
            }
        }
        public void GetQueriesShouldReturnAListWithProperNumberOfQueriess()
        {
            //Arrange
            var options = new DbContextOptionsBuilder <Project2DBContext>()
                          .UseInMemoryDatabase(databaseName: "StaticFilledQueryDB")
                          .Options;
            QueryRepo    qRepo;
            List <Query> qList;

            //Act
            using (var context = new Project2DBContext(options))
            {
                qRepo = new QueryRepo(context);
                qList = qRepo.GetQueries().ToList();
            }
            //Assert
            Assert.Equal(15, qList.Count);
        }
        public void GetRestaurantsInQueryShouldThrowExceptionIfIdNotFound(int Id, bool useAsync)
        {
            //Arrange
            var options = new DbContextOptionsBuilder <Project2DBContext>()
                          .UseInMemoryDatabase(databaseName: "StaticFilledQueryDB")
                          .Options;

            bool      result = false;
            QueryRepo qRepo;

            //Act
            using (var context = new Project2DBContext(options))
            {
                qRepo = new QueryRepo(context);
                try
                {
                    if (useAsync)
                    {
                        qRepo.GetRestaurantsInQueryAsync(Id).Wait();
                    }
                    else
                    {
                        qRepo.GetRestaurantsInQuery(Id);
                    }
                }
                catch (NotSupportedException)
                {
                    result = true;
                }
                catch (AggregateException)
                {
                    result = true;
                }
            }
            //Assert
            Assert.True(result);
        }
        public void AddQueryShouldAddCorrectQueryToDB(string username)
        {
            //Arrange
            var options = new DbContextOptionsBuilder <Project2DBContext>()
                          .UseInMemoryDatabase(databaseName: "EmptyQueryAddTesting2DB")
                          .Options;

            Query q = new Query {
                Username = username, QueryTime = DateTime.Now
            };
            QueryRepo qRepo;
            Query     result;

            //Act
            using (var context = new Project2DBContext(options))
            {
                qRepo = new QueryRepo(context);
                qRepo.AddQuery(q);
                result = context.Query.Find(q.Id);
            }

            //Assert
            Assert.Equal(q, result);
        }
Beispiel #13
0
 public SingleBatchRunForm(QueryRepo gbaQuery)
 {
     InitializeComponent();
     _gbaQuery = gbaQuery;
     dataGridView1.Hide();
 }
        public void GetAll_WithPersonAnswers()
        {
            //-------вопросы--------------↓
            QueryRepo queryRepo = new QueryRepo(_db);

            var query1 = new Query();

            query1.Text  = "Какую форму имеет планета земля";
            query1.Point = 1;
            var variant11 = new VariantAnsver();

            variant11.Text = "круг";
            var variant22 = new VariantAnsver();

            variant22.Text = "квадрат";
            var variant33 = new VariantAnsver();

            variant33.Text        = "эллипсоид вращения";
            variant33.IsRight     = true;
            query1.VariantsAnsver = new List <VariantAnsver>()
            {
                variant11, variant22, variant33
            };

            queryRepo.Add(query1);

            var query2 = new Query();

            query2.Text  = "К какому семейству относится арбуз";
            query2.Point = 2;
            var variant111 = new VariantAnsver();

            variant111.Text    = "ягода";
            variant111.IsRight = true;
            var variant222 = new VariantAnsver();

            variant222.Text = "фрукт";
            var variant333 = new VariantAnsver();

            variant333.Text       = "плотоядное животное";
            query2.VariantsAnsver = new List <VariantAnsver>()
            {
                variant111, variant222, variant333
            };

            queryRepo.Add(query2);

            var query3 = new Query();

            query3.Text  = "Какую цель преследовали США применив ядерное оружие проитв Японии?";
            query3.Point = 3;
            var variant1111 = new VariantAnsver();

            variant1111.Text = "Сохранить жизни людей";
            var variant2222 = new VariantAnsver();

            variant2222.Text    = "Напугать СССР";
            variant2222.IsRight = true;
            var variant3333 = new VariantAnsver();

            variant3333.Text      = "Испытать новое оружие";
            variant3333.IsRight   = true;
            query3.VariantsAnsver = new List <VariantAnsver>()
            {
                variant1111, variant2222, variant3333
            };

            queryRepo.Add(query3);
            //-------вопросы--------------↑

            //--------пользователь с ответами↓
            Person pers1 = new Person();

            pers1.Surname    = "фамилия1";
            pers1.Firstname  = "имя1";
            pers1.Patronymic = "отчество1";

            PersonsAnswers personAnswers1 = new PersonsAnswers();

            personAnswers1.PersonId      = pers1.Id;
            personAnswers1.Query         = query1;
            personAnswers1.VariantAnsver = variant11;

            PersonsAnswers personAnswers2 = new PersonsAnswers();

            personAnswers2.PersonId      = pers1.Id;
            personAnswers2.Query         = query2;
            personAnswers2.VariantAnsver = variant111;

            pers1.PersonsAnswers = new List <PersonsAnswers>()
            {
                personAnswers1, personAnswers2
            };

            PersonRepo personRepo = new PersonRepo(_db);

            personRepo.Add(pers1);
            //--------пользователь с ответами↑

            var resultPerosn = personRepo.GetAll();

            Assert.AreEqual(1, resultPerosn.Count);

            Assert.AreEqual(2, resultPerosn.First().PersonsAnswers.Count);
        }
 public async Task <ContractQueryConfiguration> GetAsync(long subscriberId, long eventHandlerId)
 {
     return(await QueryRepo.LoadContractQueryConfiguration(
                subscriberId, eventHandlerId, ContractRepo, ParameterRepo).ConfigureAwait(false));
 }