Пример #1
0
        public void TestSqlConnectionExecuteNonQueryByExecutingAStoredProcedureWithMultipleOutputParameters()
        {
            using (var connection = new SqlConnection(Database.ConnectionStringForRepoDb))
            {
                // Setup
                var userId      = new DirectionalQueryField("UserId", typeof(int), ParameterDirection.Output);
                var serverName  = new DirectionalQueryField("ServerName", typeof(string), 256, ParameterDirection.Output);
                var dateTimeUtc = new DirectionalQueryField("DateTimeUtc", typeof(DateTime), ParameterDirection.Output);
                var param       = new[]
                {
                    userId,
                    serverName,
                    dateTimeUtc
                };

                // Act
                var result = connection.ExecuteNonQuery("[dbo].[sp_get_server_info_with_output]",
                                                        param: param,
                                                        commandType: CommandType.StoredProcedure);

                // Assert
                Assert.AreEqual(1000, userId.GetValue <int>());
                Assert.AreEqual("ServerName", serverName.GetValue <string>());
                Assert.AreEqual(DateTime.Parse("1970-01-01 23:59:59.999"), dateTimeUtc.GetValue <DateTime>());
            }
        }
Пример #2
0
        public void TestDirectionalQueryFieldObjectEqualityFromEqualsMethod()
        {
            // Prepare
            var objA = new DirectionalQueryField("FieldName", Operation.Equal, "Value1", ParameterDirection.Output);
            var objB = new DirectionalQueryField("FieldName", Operation.Equal, "Value2", ParameterDirection.Output);

            // Act
            var equal = Equals(objA, objB);

            // Assert
            Assert.IsTrue(equal);
        }
Пример #3
0
        public void TestDirectionalQueryFieldWithTypeHashCodeEquality()
        {
            // Prepare
            var objA = new DirectionalQueryField("FieldName", Operation.Equal, typeof(string), ParameterDirection.Output);
            var objB = new DirectionalQueryField("FieldName", Operation.NotEqual, typeof(string), ParameterDirection.Output);

            // Act
            var equal = (objA.GetHashCode() == objB.GetHashCode());

            // Assert
            Assert.IsFalse(equal);
        }
Пример #4
0
        public void TestDirectionalQueryFieldWithDifferentOperationHashCodeEquality()
        {
            // Prepare
            var objA = new DirectionalQueryField("FieldName", Operation.Equal, "Value1", ParameterDirection.Output);
            var objB = new DirectionalQueryField("FieldName", Operation.NotEqual, "Value2", ParameterDirection.Output);

            // Act
            var equal = (objA.GetHashCode() == objB.GetHashCode());

            // Assert
            Assert.IsFalse(equal);
        }
Пример #5
0
        public void TestDirectionalQueryFieldGetHashCodeInvocationOnEqualsNotNull()
        {
            // Prepare
            var mockOfFiled = new Mock <DirectionalQueryField>("DirectionalQueryFieldName", Operation.Equal, "Value1", ParameterDirection.Output);
            var otherFiled  = new DirectionalQueryField("DirectionalQueryFieldName", Operation.Equal, "Value1", ParameterDirection.Output);

            // Act
            mockOfFiled.Object.Equals(otherFiled);

            // Assert
            mockOfFiled.Verify(x => x.GetHashCode(), Times.Once);
        }
Пример #6
0
        public void TestDirectionalQueryFieldHashCodeEquality()
        {
            // Prepare
            var objA = new DirectionalQueryField("FieldName", "Value1", ParameterDirection.Output);
            var objB = new DirectionalQueryField("FieldName", "Value2", ParameterDirection.Output);

            // Act
            var equal = (objA.GetHashCode() == objB.GetHashCode());

            // Assert
            Assert.IsTrue(equal);
        }
Пример #7
0
        public void TestDirectionalQueryFieldGenericListContainability()
        {
            // Prepare
            var objA = new DirectionalQueryField("FieldName", Operation.Equal, "Value1", ParameterDirection.Output);
            var objB = new DirectionalQueryField("FieldName", Operation.Equal, "Value2", ParameterDirection.Output);
            var list = new List <DirectionalQueryField>();

            // Act
            list.Add(objA);
            var equal = list.Contains(objB);

            // Assert
            Assert.IsTrue(equal);
        }
Пример #8
0
        public void TestSqlConnectionExecuteNonQueryAsyncByExecutingAStoredProcedureWithMultipleParametersAndWithOuputParameter()
        {
            using (var connection = new SqlConnection(Database.ConnectionStringForRepoDb))
            {
                // Setup
                var output = new DirectionalQueryField("Output", typeof(int), ParameterDirection.Output);
                var param  = new[]
                {
                    new QueryField("Value1", 100),
                    new QueryField("Value2", 200),
                    output
                };

                // Act
                var result = connection.ExecuteNonQueryAsync("[dbo].[sp_multiply_with_output]",
                                                             param: param,
                                                             commandType: CommandType.StoredProcedure).Result;

                // Assert
                Assert.AreEqual(-1, result);
                Assert.AreEqual(20000, output.Parameter.Value);
            }
        }