public void GetSqlQueryIdByParameterId_Test()
        {
            // Arrange
            TestDbSet <Parameter> parameters = new TestDbSet <Parameter>()
            {
                new Parameter()
                {
                    ParameterId          = 0,
                    ParameterName        = "@Name",
                    ParameterRuName      = "RuName",
                    ParameterType        = "text",
                    ParameterCreatedDate = DateTime.Today
                },
                new Parameter()
                {
                    ParameterId          = 1,
                    ParameterName        = "@Age",
                    ParameterRuName      = "RuAge",
                    ParameterType        = "number",
                    ParameterCreatedDate = DateTime.Today.AddDays(-1)
                }
            };
            TestDbSet <SqlQuery> queries = new TestDbSet <SqlQuery>()
            {
                new SqlQuery()
                {
                    SqlQueryId          = 0,
                    SqlQueryName        = "SelectAllFromTable",
                    SqlQueryContent     = "Select * from Table",
                    SqlQueryCreatedDate = DateTime.Now
                },
                new SqlQuery()
                {
                    SqlQueryId          = 1,
                    SqlQueryName        = "DropTable",
                    SqlQueryContent     = "Drop table Table",
                    SqlQueryCreatedDate = DateTime.Today
                }
            };
            TestDbSet <SqlQueryParameter> queryParams = new TestDbSet <SqlQueryParameter>()
            {
                new SqlQueryParameter()
                {
                    SqlQueryParameterId = 0,
                    ParameterId         = 0,
                    SqlQueryId          = 1
                },
                new SqlQueryParameter()
                {
                    SqlQueryParameterId = 1,
                    ParameterId         = 1,
                    SqlQueryId          = 0
                }
            };

            Mock <IContext> mock = new Mock <IContext>();

            mock
            .Setup(p => p.Parameters)
            .Returns(parameters);
            mock
            .Setup(q => q.SqlQueries)
            .Returns(queries);
            mock
            .Setup(s => s.SqlQueryParameters)
            .Returns(queryParams);

            SqlQueryParameterRepository queryParamRepo = new SqlQueryParameterRepository(mock.Object);

            int        parameterId = parameters.First().ParameterId;
            List <int> queryIds    = queryParams.
                                     Where(p => p.ParameterId == parameterId).
                                     Select(q => q.SqlQueryId).
                                     ToList();

            // Act
            IEnumerable <int> funcResult = queryParamRepo.GetSqlQueryIdByParameterId(parameters.First().ParameterId);

            // Assert
            Assert.AreEqual(queryIds.Count(), funcResult.Count());
            Assert.AreEqual(queryIds.First(), funcResult.First());
        }
        public void TestInitialize()
        {
            parametersDbSet = new TestDbSet <Parameter>()
            {
                new Parameter()
                {
                    ParameterId          = 0,
                    ParameterName        = "@Name",
                    ParameterRuName      = "Имя",
                    ParameterType        = "text",
                    ParameterCreatedDate = DateTime.Today.AddDays(-1)
                },
                new Parameter()
                {
                    ParameterId          = 1,
                    ParameterName        = "@Age",
                    ParameterRuName      = "Возраст",
                    ParameterType        = "number",
                    ParameterCreatedDate = DateTime.Now
                },
                new Parameter()
                {
                    ParameterId          = 2,
                    ParameterName        = "@Position",
                    ParameterRuName      = "Должность",
                    ParameterType        = "text",
                    ParameterCreatedDate = DateTime.Today.AddDays(-2)
                },
                new Parameter()
                {
                    ParameterId          = 3,
                    ParameterName        = "@Skills",
                    ParameterRuName      = "Навыки",
                    ParameterType        = "text",
                    ParameterCreatedDate = DateTime.Today.AddDays(-4)
                },
                new Parameter()
                {
                    ParameterId          = 4,
                    ParameterName        = "@Address",
                    ParameterRuName      = "Адрес",
                    ParameterType        = "text",
                    ParameterCreatedDate = DateTime.Now
                },
                new Parameter()
                {
                    ParameterId          = 5,
                    ParameterName        = "@Phone",
                    ParameterRuName      = "Телефон",
                    ParameterType        = "phone",
                    ParameterCreatedDate = DateTime.Today.AddDays(-1)
                },
                new Parameter()
                {
                    ParameterId          = 6,
                    ParameterName        = "@Mail",
                    ParameterRuName      = "Почта",
                    ParameterType        = "email",
                    ParameterCreatedDate = DateTime.Today.AddDays(-2)
                }
            };
            queriesDbSet = new TestDbSet <SqlQuery>()
            {
                new SqlQuery()
                {
                    SqlQueryId          = 0,
                    SqlQueryName        = "SelectEmployeesByAgeAndPosition",
                    SqlQueryContent     = "Select age, position from Employees where age = @Age and position = @Postion",
                    SqlQueryCreatedDate = DateTime.Today
                },
                new SqlQuery()
                {
                    SqlQueryId          = 1,
                    SqlQueryName        = "SelectEmployeesByContacts",
                    SqlQueryContent     = "Select phone, mail from Employees where phone = @Phone and mail = @Mail",
                    SqlQueryCreatedDate = DateTime.Today.AddDays(-1)
                }
            };
            queryParametersDbSet = new TestDbSet <SqlQueryParameter>()
            {
                new SqlQueryParameter()
                {
                    SqlQueryParameterId = 0,
                    SqlQueryId          = 0,
                    ParameterId         = 1
                },
                new SqlQueryParameter()
                {
                    SqlQueryParameterId = 1,
                    SqlQueryId          = 0,
                    ParameterId         = 2
                },
                new SqlQueryParameter()
                {
                    SqlQueryParameterId = 2,
                    SqlQueryId          = 1,
                    ParameterId         = 5
                },
                new SqlQueryParameter()
                {
                    SqlQueryParameterId = 3,
                    SqlQueryId          = 1,
                    ParameterId         = 6
                }
            };

            mock = new Mock <IContext>();
            mock
            .Setup(p => p.Parameters)
            .Returns(parametersDbSet);
            mock
            .Setup(s => s.SqlQueries)
            .Returns(queriesDbSet);
            mock
            .Setup(q => q.SqlQueryParameters)
            .Returns(queryParametersDbSet);

            queryParamRepo = new SqlQueryParameterRepository(mock.Object);
        }