Exemplo n.º 1
0
            public override bool Equals(object obj)
            {
                ParameterExpressionFingerprint other = obj as ParameterExpressionFingerprint;

                return((other != null) &&
                       (this.ParameterIndex == other.ParameterIndex) &&
                       this.Equals(other));
            }
        public void Comparison_Inequality_Type() {
            // Arrange
            ExpressionType nodeType = ExpressionType.Parameter;
            Type type = typeof(object);
            int parameterIndex = 1;

            // Act
            ParameterExpressionFingerprint fingerprint1 = new ParameterExpressionFingerprint(nodeType, type, parameterIndex);
            ParameterExpressionFingerprint fingerprint2 = new ParameterExpressionFingerprint(nodeType, typeof(string), parameterIndex);

            // Assert
            Assert.AreNotEqual(fingerprint1, fingerprint2, "Fingerprints should not have been equal (differ by Type).");
        }
        public void Properties() {
            // Arrange
            ExpressionType expectedNodeType = ExpressionType.Parameter;
            Type expectedType = typeof(object);
            int expectedParameterIndex = 1;

            // Act
            ParameterExpressionFingerprint fingerprint = new ParameterExpressionFingerprint(expectedNodeType, expectedType, expectedParameterIndex);

            // Assert
            Assert.AreEqual(expectedNodeType, fingerprint.NodeType);
            Assert.AreEqual(expectedType, fingerprint.Type);
            Assert.AreEqual(expectedParameterIndex, fingerprint.ParameterIndex);
        }
        public void Comparison_Equality() {
            // Arrange
            ExpressionType nodeType = ExpressionType.Parameter;
            Type type = typeof(object);
            int parameterIndex = 1;

            // Act
            ParameterExpressionFingerprint fingerprint1 = new ParameterExpressionFingerprint(nodeType, type, parameterIndex);
            ParameterExpressionFingerprint fingerprint2 = new ParameterExpressionFingerprint(nodeType, type, parameterIndex);

            // Assert
            Assert.AreEqual(fingerprint1, fingerprint2, "Fingerprints should have been equal.");
            Assert.AreEqual(fingerprint1.GetHashCode(), fingerprint2.GetHashCode(), "Fingerprints should have been different.");
        }
Exemplo n.º 5
0
        public void Comparison_Inequality_Type()
        {
            // Arrange
            ExpressionType nodeType       = ExpressionType.Parameter;
            Type           type           = typeof(object);
            int            parameterIndex = 1;

            // Act
            ParameterExpressionFingerprint fingerprint1 = new ParameterExpressionFingerprint(nodeType, type, parameterIndex);
            ParameterExpressionFingerprint fingerprint2 = new ParameterExpressionFingerprint(nodeType, typeof(string), parameterIndex);

            // Assert
            Assert.NotEqual(fingerprint1, fingerprint2);
        }
Exemplo n.º 6
0
        public void Comparison_Inequality_Type()
        {
            // Arrange
            ExpressionType nodeType       = ExpressionType.Parameter;
            Type           type           = typeof(object);
            int            parameterIndex = 1;

            // Act
            ParameterExpressionFingerprint fingerprint1 = new ParameterExpressionFingerprint(nodeType, type, parameterIndex);
            ParameterExpressionFingerprint fingerprint2 = new ParameterExpressionFingerprint(nodeType, typeof(string), parameterIndex);

            // Assert
            Assert.AreNotEqual(fingerprint1, fingerprint2, "Fingerprints should not have been equal (differ by Type).");
        }
        public void Comparison_Inequality_Type()
        {
            // Arrange
            ExpressionType nodeType = ExpressionType.Parameter;
            Type type = typeof(object);
            int parameterIndex = 1;

            // Act
            ParameterExpressionFingerprint fingerprint1 = new ParameterExpressionFingerprint(nodeType, type, parameterIndex);
            ParameterExpressionFingerprint fingerprint2 = new ParameterExpressionFingerprint(nodeType, typeof(string), parameterIndex);

            // Assert
            Assert.NotEqual(fingerprint1, fingerprint2);
        }
Exemplo n.º 8
0
        public void Comparison_Equality()
        {
            // Arrange
            ExpressionType nodeType       = ExpressionType.Parameter;
            Type           type           = typeof(object);
            int            parameterIndex = 1;

            // Act
            ParameterExpressionFingerprint fingerprint1 = new ParameterExpressionFingerprint(nodeType, type, parameterIndex);
            ParameterExpressionFingerprint fingerprint2 = new ParameterExpressionFingerprint(nodeType, type, parameterIndex);

            // Assert
            Assert.Equal(fingerprint1, fingerprint2);
            Assert.Equal(fingerprint1.GetHashCode(), fingerprint2.GetHashCode());
        }
Exemplo n.º 9
0
        public void Properties()
        {
            // Arrange
            ExpressionType expectedNodeType       = ExpressionType.Parameter;
            Type           expectedType           = typeof(object);
            int            expectedParameterIndex = 1;

            // Act
            ParameterExpressionFingerprint fingerprint = new ParameterExpressionFingerprint(expectedNodeType, expectedType, expectedParameterIndex);

            // Assert
            Assert.Equal(expectedNodeType, fingerprint.NodeType);
            Assert.Equal(expectedType, fingerprint.Type);
            Assert.Equal(expectedParameterIndex, fingerprint.ParameterIndex);
        }
        public void Comparison_Equality()
        {
            // Arrange
            ExpressionType nodeType = ExpressionType.Parameter;
            Type type = typeof(object);
            int parameterIndex = 1;

            // Act
            ParameterExpressionFingerprint fingerprint1 = new ParameterExpressionFingerprint(nodeType, type, parameterIndex);
            ParameterExpressionFingerprint fingerprint2 = new ParameterExpressionFingerprint(nodeType, type, parameterIndex);

            // Assert
            Assert.Equal(fingerprint1, fingerprint2);
            Assert.Equal(fingerprint1.GetHashCode(), fingerprint2.GetHashCode());
        }
        public void Create_DegenerateParameter()
        {
            // Arrange
            ParameterExpression expression = Expression.Parameter(typeof(int), null);
            ParserContext       context    = new ParserContext()
            {
                ModelParameter = Expression.Parameter(typeof(string), null) // different ParameterExpression
            };

            // Act
            ParameterExpressionFingerprint fingerprint = ParameterExpressionFingerprint.Create(expression, context);

            // Assert
            Assert.IsNull(fingerprint, "Degenerate ParameterExpression cannot be parsed.");
        }
        public void Create_ModelParameter()
        {
            // Arrange
            ParameterExpression expression = Expression.Parameter(typeof(int), null);
            ParserContext       context    = new ParserContext()
            {
                ModelParameter = expression
            };

            // Act
            ParameterExpressionFingerprint fingerprint = ParameterExpressionFingerprint.Create(expression, context);

            // Assert
            Assert.IsNotNull(fingerprint);
        }
Exemplo n.º 13
0
        public void Comparison_Equality()
        {
            // Arrange
            ExpressionType nodeType       = ExpressionType.Parameter;
            Type           type           = typeof(object);
            int            parameterIndex = 1;

            // Act
            ParameterExpressionFingerprint fingerprint1 = new ParameterExpressionFingerprint(nodeType, type, parameterIndex);
            ParameterExpressionFingerprint fingerprint2 = new ParameterExpressionFingerprint(nodeType, type, parameterIndex);

            // Assert
            Assert.AreEqual(fingerprint1, fingerprint2, "Fingerprints should have been equal.");
            Assert.AreEqual(fingerprint1.GetHashCode(), fingerprint2.GetHashCode(), "Fingerprints should have been different.");
        }
        public void ToExpression()
        {
            // Arrange
            ParameterExpression expression = Expression.Parameter(typeof(int), null);
            ParserContext       context    = new ParserContext()
            {
                ModelParameter = expression
            };

            ParameterExpressionFingerprint fingerprint = ParameterExpressionFingerprint.Create(expression, context);

            // Act
            Expression result = fingerprint.ToExpression(context);

            // Assert
            Assert.AreEqual(expression, result, "Original model parameter should have been returned.");
        }