예제 #1
0
        public void ImplementsEquatable_Properly(JsonFieldColumn first, object second, bool expectedValue, string reason)
        {
            _outputHelper.WriteLine($"First element : {first}");
            _outputHelper.WriteLine($"second second : {second}");

            // Act
            bool actual = first.Equals(second);

            // Assert
            actual.Should()
            .Be(expectedValue, reason);
        }
예제 #2
0
        public void CtorFeedsProperty(string columnName, string path)
        {
            // Arrange
            FieldColumn f = new FieldColumn(columnName);

            // Act
            JsonFieldColumn column = new JsonFieldColumn(f, path);

            // Assert
            column.Column.Should()
            .BeSameAs(f);
            column.Path.Should()
            .Be(path);
        }
예제 #3
0
        public void Clone_Performs_A_Deep_Clone()
        {
            // Arrange
            FieldColumn     f        = new FieldColumn("prop1");
            JsonFieldColumn original = new JsonFieldColumn(f, "path");

            // Act
            IColumn clone = original.Clone();

            // Assert
            clone.Should()
            .BeOfType <JsonFieldColumn>().And
            .NotBeSameAs(original).And
            .Be(original);
        }
예제 #4
0
        protected virtual string RenderJsonColumn(JsonFieldColumn json, bool renderAlias)
        {
            string[] columnParts = json.Path.Split('.');
            string   result;

            if (columnParts.Length == 1)
            {
                result = $"{RenderColumn(json.Column, renderAlias: false)} {(json.RenderAsString ? "->>" : "->")} '{columnParts.Single()}'";
            }
            else
            {
                string path = $"{string.Join(" -> ", columnParts.Take(columnParts.Length - 1).Select(EscapeName))} {(json.RenderAsString ? "->>" : "->")} '{ columnParts.Last() }'";
                result = $"{RenderColumn(json.Column, renderAlias: false)} -> {path}";
            }

            return($"{result}{(renderAlias && !string.IsNullOrWhiteSpace(json.Alias) ? $" AS {EscapeName(json.Alias)}" : string.Empty)}");
        }
 /// <summary>
 /// Builds a <see cref="WhereClause"/> instance.
 /// </summary>
 /// <param name="column"></param>
 /// <param name="constraint"></param>
 /// <returns></returns>
 public static WhereClause EqualTo(this JsonFieldColumn column, ColumnBase constraint) => new WhereClause(column, ClauseOperator.EqualTo, constraint);